{"version":3,"mappings":"ikBAAA;AAAA;AAAA;AAAA;AAAA,GAKA,2BAEA,SAASA,GAAQC,EAAK,CACd,MAAAC,EAA6B,cAAO,IAAI,EAC9C,UAAWC,KAAOF,EAAI,MAAM,GAAG,EAAGC,EAAIC,CAAG,EAAI,EACtC,OAACC,GAAQA,KAAOF,CACzB,CAEA,MAAMG,GAA4E,CAAC,EAC7EC,GAA4E,CAAC,EAC7EC,GAAO,IAAM,CACnB,EACMC,GAAK,IAAM,GACXC,GAAQN,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,MACxEA,EAAI,WAAW,CAAC,EAAI,KAAOA,EAAI,WAAW,CAAC,EAAI,IAC1CO,GAAmBP,GAAQA,EAAI,WAAW,WAAW,EACrDQ,GAAS,OAAO,OAChBC,GAAS,CAACC,EAAKC,IAAO,CACpB,MAAAC,EAAIF,EAAI,QAAQC,CAAE,EACpBC,EAAI,IACFF,EAAA,OAAOE,EAAG,CAAC,CAEnB,EACMC,GAAiB,OAAO,UAAU,eAClCC,GAAS,CAACb,EAAKD,IAAQa,GAAe,KAAKZ,EAAKD,CAAG,EACnDe,GAAU,MAAM,QAChBC,GAASf,GAAQgB,GAAahB,CAAG,IAAM,eACvCiB,GAASjB,GAAQgB,GAAahB,CAAG,IAAM,eAGvCkB,GAAclB,GAAQ,OAAOA,GAAQ,WACrCmB,GAAYnB,GAAQ,OAAOA,GAAQ,SACnCoB,GAAYpB,GAAQ,OAAOA,GAAQ,SACnCqB,GAAYrB,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SACnDsB,GAAatB,IACTqB,GAASrB,CAAG,GAAKkB,GAAWlB,CAAG,IAAMkB,GAAWlB,EAAI,IAAI,GAAKkB,GAAWlB,EAAI,KAAK,EAErFuB,GAAiB,OAAO,UAAU,SAClCP,GAAgBQ,GAAUD,GAAe,KAAKC,CAAK,EACnDC,GAAaD,GACVR,GAAaQ,CAAK,EAAE,MAAM,EAAG,EAAE,EAElCE,GAAiB1B,GAAQgB,GAAahB,CAAG,IAAM,kBAC/C2B,GAAgB5B,GAAQoB,GAASpB,CAAG,GAAKA,IAAQ,OAASA,EAAI,CAAC,IAAM,KAAO,GAAK,SAASA,EAAK,EAAE,IAAMA,EACvG6B,GAAiChC,GAErC,qIACF,EAIMiC,GAAuBC,GAAO,CAC5B,MAAAC,EAA+B,cAAO,IAAI,EAChD,OAAQlC,GACMkC,EAAMlC,CAAG,IACNkC,EAAMlC,CAAG,EAAIiC,EAAGjC,CAAG,EAEtC,EACMmC,GAAa,SACbC,GAAWJ,GACdhC,GACQA,EAAI,QAAQmC,GAAY,CAACE,EAAGC,IAAMA,EAAIA,EAAE,YAAY,EAAI,EAAE,CAErE,EACMC,GAAc,aACdC,GAAYR,GACfhC,GAAQA,EAAI,QAAQuC,GAAa,KAAK,EAAE,YAAY,CACvD,EACME,GAAaT,GAAqBhC,GAC/BA,EAAI,OAAO,CAAC,EAAE,cAAgBA,EAAI,MAAM,CAAC,CACjD,EACK0C,GAAeV,GAClBhC,GACWA,EAAM,KAAKyC,GAAWzC,CAAG,CAAC,GAAK,EAG7C,EACM2C,GAAa,CAAChB,EAAOiB,IAAa,CAAC,OAAO,GAAGjB,EAAOiB,CAAQ,EAC5DC,GAAiB,CAACC,KAAQC,IAAQ,CACtC,QAASjC,EAAI,EAAGA,EAAIgC,EAAI,OAAQhC,IAC1BgC,EAAAhC,CAAC,EAAE,GAAGiC,CAAG,CAEjB,EACMC,GAAM,CAACC,EAAK/C,EAAKyB,EAAOuB,EAAW,KAAU,CAC1C,sBAAeD,EAAK/C,EAAK,CAC9B,aAAc,GACd,WAAY,GACZ,SAAAgD,EACA,MAAAvB,CAAA,CACD,CACH,EACMwB,GAAiBhD,GAAQ,CACvB,MAAAiD,EAAI,WAAWjD,CAAG,EACjB,aAAMiD,CAAC,EAAIjD,EAAMiD,CAC1B,EACMC,GAAYlD,GAAQ,CACxB,MAAMiD,EAAI9B,GAASnB,CAAG,EAAI,OAAOA,CAAG,EAAI,IACjC,aAAMiD,CAAC,EAAIjD,EAAMiD,CAC1B,EACA,IAAIE,GACJ,MAAMC,GAAgB,IACbD,KAAgBA,GAAc,OAAO,WAAe,IAAc,WAAa,OAAO,KAAS,IAAc,KAAO,OAAO,OAAW,IAAc,OAAS,OAAO,OAAW,IAAc,OAAS,IAiJ/M,SAASE,GAAe7B,EAAO,CACzB,GAAAV,GAAQU,CAAK,EAAG,CAClB,MAAM8B,EAAM,CAAC,EACb,QAAS3C,EAAI,EAAGA,EAAIa,EAAM,OAAQb,IAAK,CAC/B,MAAA4C,EAAO/B,EAAMb,CAAC,EACd6C,EAAarC,GAASoC,CAAI,EAAIE,GAAiBF,CAAI,EAAIF,GAAeE,CAAI,EAChF,GAAIC,EACF,UAAWzD,KAAOyD,EACZF,EAAAvD,CAAG,EAAIyD,EAAWzD,CAAG,CAE7B,CAEK,OAAAuD,UACEnC,GAASK,CAAK,GAAKH,GAASG,CAAK,EACnC,OAAAA,CAEX,CACA,MAAMkC,GAAkB,gBAClBC,GAAsB,UACtBC,GAAiB,iBACvB,SAASH,GAAiBI,EAAS,CACjC,MAAMC,EAAM,CAAC,EACL,OAAAD,EAAA,QAAQD,GAAgB,EAAE,EAAE,MAAMF,EAAe,EAAE,QAASH,GAAS,CAC3E,GAAIA,EAAM,CACF,MAAAQ,EAAMR,EAAK,MAAMI,EAAmB,EAC1CI,EAAI,OAAS,IAAMD,EAAIC,EAAI,CAAC,EAAE,KAAK,CAAC,EAAIA,EAAI,CAAC,EAAE,KAAK,GACtD,CACD,EACMD,CACT,CAcA,SAASE,GAAexC,EAAO,CAC7B,IAAI8B,EAAM,GACN,GAAAnC,GAASK,CAAK,EACV8B,EAAA9B,UACGV,GAAQU,CAAK,EACtB,QAASb,EAAI,EAAGA,EAAIa,EAAM,OAAQb,IAAK,CACrC,MAAM6C,EAAaQ,GAAexC,EAAMb,CAAC,CAAC,EACtC6C,IACFF,GAAOE,EAAa,IACtB,SAEOnC,GAASG,CAAK,EACvB,UAAWyC,KAAQzC,EACbA,EAAMyC,CAAI,IACZX,GAAOW,EAAO,KAIpB,OAAOX,EAAI,KAAK,CAClB,CACA,SAASY,IAAeC,EAAO,CACzB,IAACA,EAAc,YACnB,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAU,EAAAF,EAC9B,OAAIC,GAAS,CAACjD,GAASiD,CAAK,IACpBD,EAAA,MAAQH,GAAeI,CAAK,GAEhCC,IACIF,EAAA,MAAQd,GAAegB,CAAK,GAE7BF,CACT,CAWA,MAAMG,GAAsB,8EACtBC,MAA+CD,EAAmB,EAIxE,SAASE,GAAmBhD,EAAO,CAC1B,OAAC,CAACA,GAASA,IAAU,EAC9B,CAyIA,MAAMiD,GAASzE,GACN,CAAC,EAAEA,GAAOA,EAAI,YAAiB,IAElC0E,GAAmB1E,GAChBmB,GAASnB,CAAG,EAAIA,EAAMA,GAAO,KAAO,GAAKc,GAAQd,CAAG,GAAKqB,GAASrB,CAAG,IAAMA,EAAI,WAAauB,IAAkB,CAACL,GAAWlB,EAAI,QAAQ,GAAKyE,GAAMzE,CAAG,EAAI0E,GAAgB1E,EAAI,KAAK,EAAI,KAAK,UAAUA,EAAK2E,GAAU,CAAC,EAAI,OAAO3E,CAAG,EAErO2E,GAAW,CAACC,EAAM5E,IAClByE,GAAMzE,CAAG,EACJ2E,GAASC,EAAM5E,EAAI,KAAK,EACtBe,GAAMf,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,QAAS,GAAE,OACvC,CAAC6E,EAAS,CAAC9E,EAAK+E,CAAI,EAAGnE,KACrBkE,EAAQE,GAAgBhF,EAAKY,CAAC,EAAI,KAAK,EAAImE,EACpCD,GAET,EAAC,CAEL,EACS5D,GAAMjB,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,QAAQ,EAAE,IAAKgF,GAAMD,GAAgBC,CAAC,CAAC,CACvE,EACS5D,GAASpB,CAAG,EACd+E,GAAgB/E,CAAG,EACjBqB,GAASrB,CAAG,GAAK,CAACc,GAAQd,CAAG,GAAK,CAAC0B,GAAc1B,CAAG,EACtD,OAAOA,CAAG,EAEZA,EAEH+E,GAAkB,CAACC,EAAGrE,EAAI,KAAO,CACjC,IAAAsE,EACJ,OAGE7D,GAAS4D,CAAC,EAAI,WAAWC,EAAKD,EAAE,cAAgB,KAAOC,EAAKtE,CAAC,IAAMqE,CAEvE,ECpgBA;AAAA;AAAA;AAAA;AAAA,GAWA,IAAIE,GACJ,MAAMC,EAAY,CAChB,YAAYC,EAAW,GAAO,CAC5B,KAAK,SAAWA,EAIhB,KAAK,QAAU,GAIf,KAAK,QAAU,CAAC,EAIhB,KAAK,SAAW,CAAC,EACjB,KAAK,UAAY,GACjB,KAAK,OAASF,GACV,CAACE,GAAYF,KACf,KAAK,OAASA,GAAkB,SAAWA,GAAkB,OAAS,CAAK,SACzE,MACE,EACN,CAEF,IAAI,QAAS,CACX,OAAO,KAAK,QAEd,OAAQ,CACN,GAAI,KAAK,QAAS,CAChB,KAAK,UAAY,GACjB,IAAIvE,EAAG0E,EACP,GAAI,KAAK,OACF,IAAA1E,EAAI,EAAG0E,EAAI,KAAK,OAAO,OAAQ1E,EAAI0E,EAAG1E,IACpC,YAAOA,CAAC,EAAE,MAAM,EAGpB,IAAAA,EAAI,EAAG0E,EAAI,KAAK,QAAQ,OAAQ1E,EAAI0E,EAAG1E,IACrC,aAAQA,CAAC,EAAE,MAAM,CACxB,CACF,CAKF,QAAS,CACP,GAAI,KAAK,SACH,KAAK,UAAW,CAClB,KAAK,UAAY,GACjB,IAAIA,EAAG0E,EACP,GAAI,KAAK,OACF,IAAA1E,EAAI,EAAG0E,EAAI,KAAK,OAAO,OAAQ1E,EAAI0E,EAAG1E,IACpC,YAAOA,CAAC,EAAE,OAAO,EAGrB,IAAAA,EAAI,EAAG0E,EAAI,KAAK,QAAQ,OAAQ1E,EAAI0E,EAAG1E,IACrC,aAAQA,CAAC,EAAE,OAAO,CACzB,CAEJ,CAEF,IAAImB,EAAI,CACN,GAAI,KAAK,QAAS,CAChB,MAAMwD,EAAqBJ,GACvB,IACkB,OAAAA,GAAA,KACbpD,EAAG,SACV,CACoBoD,GAAAI,CAAA,CACtB,CAGF,CAMF,IAAK,CACiBJ,GAAA,KAMtB,KAAM,CACJA,GAAoB,KAAK,OAE3B,KAAKK,EAAY,CACf,GAAI,KAAK,QAAS,CAChB,KAAK,QAAU,GACf,IAAI5E,EAAG0E,EACF,IAAA1E,EAAI,EAAG0E,EAAI,KAAK,QAAQ,OAAQ1E,EAAI0E,EAAG1E,IACrC,aAAQA,CAAC,EAAE,KAAK,EAGlB,IADL,KAAK,QAAQ,OAAS,EACjBA,EAAI,EAAG0E,EAAI,KAAK,SAAS,OAAQ1E,EAAI0E,EAAG1E,IACtC,cAASA,CAAC,EAAE,EAGnB,GADA,KAAK,SAAS,OAAS,EACnB,KAAK,OAAQ,CACV,IAAAA,EAAI,EAAG0E,EAAI,KAAK,OAAO,OAAQ1E,EAAI0E,EAAG1E,IACzC,KAAK,OAAOA,CAAC,EAAE,KAAK,EAAI,EAE1B,KAAK,OAAO,OAAS,EAEvB,GAAI,CAAC,KAAK,UAAY,KAAK,QAAU,CAAC4E,EAAY,CAChD,MAAMC,EAAO,KAAK,OAAO,OAAO,IAAI,EAChCA,GAAQA,IAAS,OACnB,KAAK,OAAO,OAAO,KAAK,KAAK,EAAIA,EACjCA,EAAK,MAAQ,KAAK,MACpB,CAEF,KAAK,OAAS,OAChB,CAEJ,CACA,SAASC,IAAYL,EAAU,CACtB,WAAID,GAAYC,CAAQ,CACjC,CACA,SAASM,IAAkB,CAClB,OAAAR,EACT,CACA,SAASS,IAAe7D,EAAI8D,EAAe,GAAO,CAC5CV,IACgBA,GAAA,SAAS,KAAKpD,CAAE,CAMtC,CAEA,IAAI+D,GAiBJ,MAAMC,OAAyC,QAC/C,MAAMC,EAAe,CACnB,YAAYjE,EAAI,CACd,KAAK,GAAKA,EAIV,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,EAIb,KAAK,KAAO,OAIZ,KAAK,QAAU,OACf,KAAK,UAAY,OACboD,IAAqBA,GAAkB,QACvBA,GAAA,QAAQ,KAAK,IAAI,CACrC,CAEF,OAAQ,CACN,KAAK,OAAS,GAEhB,QAAS,CACH,KAAK,MAAQ,KACf,KAAK,OAAS,IACVY,GAAmB,IAAI,IAAI,IAC7BA,GAAmB,OAAO,IAAI,EAC9B,KAAK,QAAQ,GAEjB,CAKF,QAAS,CACH,KAAK,MAAQ,GAAK,EAAE,KAAK,MAAQ,KAG/B,KAAK,MAAQ,GACjBE,GAAM,IAAI,CACZ,CAEF,KAAM,CACA,KAAE,KAAK,MAAQ,GACjB,OAAO,KAAK,GAAG,EAEjB,KAAK,OAAS,EACdC,GAAc,IAAI,EAClBC,GAAY,IAAI,EAChB,MAAMC,EAAaN,GACbO,EAAkBC,GACZR,GAAA,KACEQ,GAAA,GACV,IACF,OAAO,KAAK,GAAG,SACf,CAMAC,GAAY,IAAI,EACJT,GAAAM,EACEE,GAAAD,EACd,KAAK,OAAS,EAAC,CACjB,CAEF,MAAO,CACD,QAAK,MAAQ,EAAG,CAClB,QAASG,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QAC3CC,GAAUD,CAAI,EAEX,UAAO,KAAK,SAAW,OAC5BN,GAAc,IAAI,EACb,aAAU,KAAK,OAAO,EAC3B,KAAK,OAAS,EAAC,CACjB,CAEF,SAAU,CACJ,KAAK,MAAQ,GACfH,GAAmB,IAAI,IAAI,EAClB,KAAK,UACd,KAAK,UAAU,EAEf,KAAK,WAAW,CAClB,CAKF,YAAa,CACPW,GAAQ,IAAI,GACd,KAAK,IAAI,CACX,CAEF,IAAI,OAAQ,CACV,OAAOA,GAAQ,IAAI,EAEvB,CACA,IAAIC,GAAa,EACbC,GACAC,GACJ,SAASZ,GAAMa,EAAKC,EAAa,GAAO,CAEtC,GADAD,EAAI,OAAS,EACTC,EAAY,CACdD,EAAI,KAAOD,GACOA,GAAAC,EAClB,OAEFA,EAAI,KAAOF,GACEA,GAAAE,CACf,CACA,SAASE,IAAa,CACpBL,IACF,CACA,SAASM,IAAW,CACd,KAAEN,GAAa,EACjB,OAEF,GAAIE,GAAiB,CACnB,IAAI,EAAIA,GAER,IADkBA,GAAA,OACX,GAAG,CACR,MAAMK,EAAO,EAAE,KACf,EAAE,KAAO,OACT,EAAE,OAAS,GACP,EAAAA,CAAA,CACN,CAEE,IAAAC,EACJ,KAAOP,IAAY,CACjB,IAAI,EAAIA,GAER,IADaA,GAAA,OACN,GAAG,CACR,MAAMM,EAAO,EAAE,KAGX,GAFJ,EAAE,KAAO,OACT,EAAE,OAAS,GACP,EAAE,MAAQ,EACR,IAEF,EAAE,QAAQ,QACHE,EAAK,CACPD,IAAeA,EAAAC,EAAA,CAGpB,EAAAF,CAAA,CACN,CAEF,GAAIC,EAAa,MAAAA,CACnB,CACA,SAAShB,GAAYW,EAAK,CACxB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1CA,EAAK,QAAU,GACVA,EAAA,eAAiBA,EAAK,IAAI,WAC/BA,EAAK,IAAI,WAAaA,CAE1B,CACA,SAASD,GAAYO,EAAK,CACpB,IAAAO,EACAC,EAAOR,EAAI,SACXN,EAAOc,EACX,KAAOd,GAAM,CACX,MAAMe,EAAOf,EAAK,QACdA,EAAK,UAAY,IACfA,IAASc,IAAaA,EAAAC,GAC1Bd,GAAUD,CAAI,EACdgB,GAAUhB,CAAI,GAEPa,EAAAb,EAEJA,EAAA,IAAI,WAAaA,EAAK,eAC3BA,EAAK,eAAiB,OACfA,EAAAe,CAAA,CAETT,EAAI,KAAOO,EACXP,EAAI,SAAWQ,CACjB,CACA,SAASZ,GAAQI,EAAK,CACpB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1C,GAAIA,EAAK,IAAI,UAAYA,EAAK,SAAWA,EAAK,IAAI,WAAaiB,GAAgBjB,EAAK,IAAI,QAAQ,GAAKA,EAAK,IAAI,UAAYA,EAAK,SACtH,SAGX,MAAI,EAAAM,EAAI,MAIV,CACA,SAASW,GAAgBC,EAAU,CAK7BA,GAJAA,EAAS,MAAQ,GAAK,EAAEA,EAAS,MAAQ,MAG7CA,EAAS,OAAS,IACdA,EAAS,gBAAkBC,IAC7B,OAEFD,EAAS,cAAgBC,GACzB,MAAMC,EAAMF,EAAS,IAEjB,GADJA,EAAS,OAAS,EACdE,EAAI,QAAU,GAAK,CAACF,EAAS,OAASA,EAAS,MAAQ,CAAChB,GAAQgB,CAAQ,EAAG,CAC7EA,EAAS,OAAS,GAClB,OAEF,MAAMG,EAAU/B,GACVO,EAAkBC,GACZoB,KACEpB,GAAA,GACV,IACFH,GAAYuB,CAAQ,EACpB,MAAMjG,EAAQiG,EAAS,GAAGA,EAAS,MAAM,GACrCE,EAAI,UAAY,GAAKnF,GAAWhB,EAAOiG,EAAS,MAAM,KACxDA,EAAS,OAASjG,EACdmG,EAAA,iBAECR,EAAK,CACR,MAAAQ,EAAA,UACER,CAAA,QACN,CACYtB,GAAA+B,EACEvB,GAAAD,EACdE,GAAYmB,CAAQ,EACpBA,EAAS,OAAS,EAAC,CAEvB,CACA,SAASjB,GAAUD,EAAMsB,EAAO,GAAO,CACrC,KAAM,CAAE,IAAAF,EAAK,QAAAC,EAAS,QAAAE,CAAY,EAAAvB,EAY9B,GAXAqB,IACFA,EAAQ,QAAUE,EAClBvB,EAAK,QAAU,QAEbuB,IACFA,EAAQ,QAAUF,EAClBrB,EAAK,QAAU,QAKboB,EAAI,OAASpB,IACfoB,EAAI,KAAOC,EACP,CAACA,GAAWD,EAAI,UAAU,CACxBA,EAAA,SAAS,OAAS,GACtB,QAAStC,EAAIsC,EAAI,SAAS,KAAMtC,EAAGA,EAAIA,EAAE,QACvCmB,GAAUnB,EAAG,EAAI,CACnB,CAGA,CAACwC,GAAQ,CAAC,EAAEF,EAAI,IAAMA,EAAI,KACxBA,EAAA,IAAI,OAAOA,EAAI,GAAG,CAE1B,CACA,SAASJ,GAAUhB,EAAM,CACjB,MAAE,QAAAwB,EAAS,QAAAC,CAAA,EAAYzB,EACzBwB,IACFA,EAAQ,QAAUC,EAClBzB,EAAK,QAAU,QAEbyB,IACFA,EAAQ,QAAUD,EAClBxB,EAAK,QAAU,OAEnB,CAsBA,IAAIF,GAAc,GAClB,MAAM4B,GAAa,CAAC,EACpB,SAASC,IAAgB,CACvBD,GAAW,KAAK5B,EAAW,EACbA,GAAA,EAChB,CAKA,SAAS8B,IAAgB,CACjB,MAAA3C,EAAOyC,GAAW,IAAI,EACd5B,GAAAb,IAAS,OAAS,GAAOA,CACzC,CAUA,SAASS,GAAcmC,EAAG,CAClB,MAAE,QAAAC,GAAYD,EAEpB,GADAA,EAAE,QAAU,OACRC,EAAS,CACX,MAAMT,EAAU/B,GACJA,GAAA,OACR,IACMwC,EAAA,SACR,CACYxC,GAAA+B,CAAA,CACd,CAEJ,CAEA,IAAIF,GAAgB,EACpB,MAAMY,EAAK,CACT,YAAYzB,EAAKc,EAAK,CACpB,KAAK,IAAMd,EACX,KAAK,IAAMc,EACX,KAAK,QAAUA,EAAI,QACd,aAAU,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,eAAiB,OAEtF,CACA,MAAMY,EAAI,CACR,YAAYd,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,QAAU,EAIf,KAAK,WAAa,OAIlB,KAAK,KAAO,OAIZ,KAAK,IAAM,OACX,KAAK,IAAM,OAIX,KAAK,GAAK,CAGV,CAEF,MAAMe,EAAW,CACf,GAAI,CAAC3C,IAAa,CAACQ,IAAeR,KAAc,KAAK,SACnD,OAEF,IAAIU,EAAO,KAAK,WAChB,GAAIA,IAAS,QAAUA,EAAK,MAAQV,GAClCU,EAAO,KAAK,WAAa,IAAI+B,GAAKzC,GAAW,IAAI,EAC5CA,GAAU,MAGbU,EAAK,QAAUV,GAAU,SACzBA,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,GAJXV,GAAA,KAAOA,GAAU,SAAWU,EAMxCkC,GAAOlC,CAAI,UACFA,EAAK,UAAY,KAC1BA,EAAK,QAAU,KAAK,QAChBA,EAAK,SAAS,CAChB,MAAMU,EAAOV,EAAK,QAClBU,EAAK,QAAUV,EAAK,QAChBA,EAAK,UACPA,EAAK,QAAQ,QAAUU,GAEzBV,EAAK,QAAUV,GAAU,SACzBU,EAAK,QAAU,OACfV,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,EACjBV,GAAU,OAASU,IACrBV,GAAU,KAAOoB,EACnB,CAaG,OAAAV,CAAA,CAET,QAAQiC,EAAW,CACZ,eACLd,KACA,KAAK,OAAOc,CAAS,EAEvB,OAAOA,EAAW,CACLzB,GAAA,EACP,IAeF,QAASR,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QACvCA,EAAK,IAAI,UAENA,EAAA,IAAI,IAAI,OAAO,CAExB,QACA,CACSS,GAAA,EACX,CAEJ,CACA,SAASyB,GAAOlC,EAAM,CAEhB,GADJA,EAAK,IAAI,KACLA,EAAK,IAAI,MAAQ,EAAG,CAChBkB,QAAWlB,EAAK,IAAI,SAC1B,GAAIkB,GAAY,CAAClB,EAAK,IAAI,KAAM,CAC9BkB,EAAS,OAAS,GAClB,QAASpC,EAAIoC,EAAS,KAAMpC,EAAGA,EAAIA,EAAE,QACnCoD,GAAOpD,CAAC,CACV,CAEI,MAAAqD,EAAcnC,EAAK,IAAI,KACzBmC,IAAgBnC,IAClBA,EAAK,QAAUmC,EACXA,MAAyB,QAAUnC,IAKzCA,EAAK,IAAI,KAAOA,CAAA,CAEpB,CACA,MAAMoC,OAAgC,QAChCC,GAAc,OAC6C,EACjE,EACMC,GAAsB,OACuC,EACnE,EACMC,GAAoB,OACsC,EAChE,EACA,SAASC,GAAMC,EAAQC,EAAMlJ,EAAK,CAChC,GAAIsG,IAAeR,GAAW,CACxB,IAAAqD,EAAUP,GAAU,IAAIK,CAAM,EAC7BE,GACHP,GAAU,IAAIK,EAAQE,EAA0B,IAAI,GAAK,EAEvD,IAAAvB,EAAMuB,EAAQ,IAAInJ,CAAG,EACpB4H,IACHuB,EAAQ,IAAInJ,EAAK4H,EAAM,IAAIY,EAAK,EAChCZ,EAAI,IAAMuB,EACVvB,EAAI,IAAM5H,GASV4H,EAAI,MAAM,CACZ,CAEJ,CACA,SAASwB,GAAQH,EAAQC,EAAMlJ,EAAKqJ,EAAU3G,EAAU4G,EAAW,CAC3D,MAAAH,EAAUP,GAAU,IAAIK,CAAM,EACpC,GAAI,CAACE,EAAS,CACZxB,KACA,OAEI,MAAA4B,EAAO3B,GAAQ,CACfA,GAWAA,EAAI,QAAQ,CAGlB,EAEA,GADWZ,GAAA,EACPkC,IAAS,QACXC,EAAQ,QAAQI,CAAG,MACd,CACC,MAAAC,EAAgBzI,GAAQkI,CAAM,EAC9BQ,EAAeD,GAAiB5H,GAAa5B,CAAG,EAClD,GAAAwJ,GAAiBxJ,IAAQ,SAAU,CAC/B,MAAA0J,EAAY,OAAOL,CAAQ,EACzBF,EAAA,QAAQ,CAACvB,EAAK+B,IAAS,EACzBA,IAAS,UAAYA,IAASZ,IAAqB,CAAC1H,GAASsI,CAAI,GAAKA,GAAQD,IAChFH,EAAI3B,CAAG,CACT,CACD,MAQD,SANI5H,IAAQ,QAAUmJ,EAAQ,IAAI,MAAM,IAClCI,EAAAJ,EAAQ,IAAInJ,CAAG,CAAC,EAElByJ,GACEF,EAAAJ,EAAQ,IAAIJ,EAAiB,CAAC,EAE5BG,EAAM,CACZ,IAAK,MACEM,EAKMC,GACLF,EAAAJ,EAAQ,IAAI,QAAQ,CAAC,GALrBI,EAAAJ,EAAQ,IAAIN,EAAW,CAAC,EACxB7H,GAAMiI,CAAM,GACVM,EAAAJ,EAAQ,IAAIL,EAAmB,CAAC,GAKxC,MACF,IAAK,SACEU,IACCD,EAAAJ,EAAQ,IAAIN,EAAW,CAAC,EACxB7H,GAAMiI,CAAM,GACVM,EAAAJ,EAAQ,IAAIL,EAAmB,CAAC,GAGxC,MACF,IAAK,MACC9H,GAAMiI,CAAM,GACVM,EAAAJ,EAAQ,IAAIN,EAAW,CAAC,EAE9B,MAEN,CAEO5B,GAAA,CACX,CACA,SAAS2C,GAAmBC,EAAQ7J,EAAK,CACjC,MAAA8J,EAASlB,GAAU,IAAIiB,CAAM,EAC5B,OAAAC,GAAUA,EAAO,IAAI9J,CAAG,CACjC,CAEA,SAAS+J,GAAkBC,EAAO,CAC1B,MAAAC,EAAMC,GAAMF,CAAK,EACnB,OAAAC,IAAQD,EAAcC,GACpBjB,GAAAiB,EAAK,UAAWlB,EAAiB,EAChCoB,GAAUH,CAAK,EAAIC,EAAMA,EAAI,IAAIG,EAAU,EACpD,CACA,SAASC,GAAiB3J,EAAK,CAC7B,OAAAsI,GAAMtI,EAAMwJ,GAAMxJ,CAAG,EAAG,UAAWqI,EAAiB,EAC7CrI,CACT,CACA,MAAM4J,GAAwB,CAC5B,UAAW,KACX,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOC,GAAS,KAAM,OAAO,SAAUH,EAAU,CACnD,EACA,UAAUI,EAAM,CACP,OAAAT,GAAkB,IAAI,EAAE,OAC7B,GAAGS,EAAK,IAAKC,GAAM1J,GAAQ0J,CAAC,EAAIV,GAAkBU,CAAC,EAAIA,CAAC,CAC1D,CACF,EACA,SAAU,CACR,OAAOF,GAAS,KAAM,UAAY9I,IAChCA,EAAM,CAAC,EAAI2I,GAAW3I,EAAM,CAAC,CAAC,EACvBA,EACR,CACH,EACA,MAAMM,EAAI2I,EAAS,CACjB,OAAOC,GAAM,KAAM,QAAS5I,EAAI2I,EAAS,OAAQ,SAAS,CAC5D,EACA,OAAO3I,EAAI2I,EAAS,CACX,OAAAC,GAAM,KAAM,SAAU5I,EAAI2I,EAAUzF,GAAMA,EAAE,IAAImF,EAAU,EAAG,SAAS,CAC/E,EACA,KAAKrI,EAAI2I,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQ5I,EAAI2I,EAASN,GAAY,SAAS,CAC/D,EACA,UAAUrI,EAAI2I,EAAS,CACrB,OAAOC,GAAM,KAAM,YAAa5I,EAAI2I,EAAS,OAAQ,SAAS,CAChE,EACA,SAAS3I,EAAI2I,EAAS,CACpB,OAAOC,GAAM,KAAM,WAAY5I,EAAI2I,EAASN,GAAY,SAAS,CACnE,EACA,cAAcrI,EAAI2I,EAAS,CACzB,OAAOC,GAAM,KAAM,gBAAiB5I,EAAI2I,EAAS,OAAQ,SAAS,CACpE,EAEA,QAAQ3I,EAAI2I,EAAS,CACnB,OAAOC,GAAM,KAAM,UAAW5I,EAAI2I,EAAS,OAAQ,SAAS,CAC9D,EACA,YAAYF,EAAM,CACT,OAAAI,GAAY,KAAM,WAAYJ,CAAI,CAC3C,EACA,WAAWA,EAAM,CACR,OAAAI,GAAY,KAAM,UAAWJ,CAAI,CAC1C,EACA,KAAKK,EAAW,CACd,OAAOd,GAAkB,IAAI,EAAE,KAAKc,CAAS,CAC/C,EAEA,eAAeL,EAAM,CACZ,OAAAI,GAAY,KAAM,cAAeJ,CAAI,CAC9C,EACA,IAAIzI,EAAI2I,EAAS,CACf,OAAOC,GAAM,KAAM,MAAO5I,EAAI2I,EAAS,OAAQ,SAAS,CAC1D,EACA,KAAM,CACG,OAAAI,GAAW,KAAM,KAAK,CAC/B,EACA,QAAQN,EAAM,CACL,OAAAM,GAAW,KAAM,OAAQN,CAAI,CACtC,EACA,OAAOzI,KAAOyI,EAAM,CAClB,OAAOO,GAAO,KAAM,SAAUhJ,EAAIyI,CAAI,CACxC,EACA,YAAYzI,KAAOyI,EAAM,CACvB,OAAOO,GAAO,KAAM,cAAehJ,EAAIyI,CAAI,CAC7C,EACA,OAAQ,CACC,OAAAM,GAAW,KAAM,OAAO,CACjC,EAEA,KAAK/I,EAAI2I,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQ5I,EAAI2I,EAAS,OAAQ,SAAS,CAC3D,EACA,UAAUF,EAAM,CACP,OAAAM,GAAW,KAAM,SAAUN,CAAI,CACxC,EACA,YAAa,CACJ,OAAAT,GAAkB,IAAI,EAAE,WAAW,CAC5C,EACA,SAASiB,EAAU,CACjB,OAAOjB,GAAkB,IAAI,EAAE,SAASiB,CAAQ,CAClD,EACA,aAAaR,EAAM,CACjB,OAAOT,GAAkB,IAAI,EAAE,UAAU,GAAGS,CAAI,CAClD,EACA,WAAWA,EAAM,CACR,OAAAM,GAAW,KAAM,UAAWN,CAAI,CACzC,EACA,QAAS,CACA,OAAAD,GAAS,KAAM,SAAUH,EAAU,EAE9C,EACA,SAASG,GAASU,EAAMC,EAAQC,EAAW,CACnC,MAAAzK,EAAM2J,GAAiBY,CAAI,EAC3BG,EAAO1K,EAAIwK,CAAM,EAAE,EACzB,OAAIxK,IAAQuK,GAAQ,CAACd,GAAUc,CAAI,IACjCG,EAAK,MAAQA,EAAK,KAClBA,EAAK,KAAO,IAAM,CACV,MAAAC,EAASD,EAAK,MAAM,EAC1B,OAAIC,EAAO,QACFA,EAAA,MAAQF,EAAUE,EAAO,KAAK,GAEhCA,CACT,GAEKD,CACT,CACA,MAAME,GAAa,MAAM,UACzB,SAASX,GAAMM,EAAMC,EAAQnJ,EAAI2I,EAASa,EAAcf,EAAM,CACtD,MAAA9J,EAAM2J,GAAiBY,CAAI,EAC3BO,EAAY9K,IAAQuK,GAAQ,CAACd,GAAUc,CAAI,EAC3CQ,EAAW/K,EAAIwK,CAAM,EACvB,GAAAO,IAAaH,GAAWJ,CAAM,EAAG,CACnC,MAAMQ,EAAUD,EAAS,MAAMR,EAAMT,CAAI,EAClC,OAAAgB,EAAYpB,GAAWsB,CAAO,EAAIA,CAAA,CAE3C,IAAIC,EAAY5J,EACZrB,IAAQuK,IACNO,EACUG,EAAA,SAASnI,EAAMoI,EAAO,CAChC,OAAO7J,EAAG,KAAK,KAAMqI,GAAW5G,CAAI,EAAGoI,EAAOX,CAAI,CACpD,EACSlJ,EAAG,OAAS,IACT4J,EAAA,SAASnI,EAAMoI,EAAO,CAChC,OAAO7J,EAAG,KAAK,KAAMyB,EAAMoI,EAAOX,CAAI,CACxC,IAGJ,MAAMI,EAASI,EAAS,KAAK/K,EAAKiL,EAAWjB,CAAO,EACpD,OAAOc,GAAaD,EAAeA,EAAaF,CAAM,EAAIA,CAC5D,CACA,SAASN,GAAOE,EAAMC,EAAQnJ,EAAIyI,EAAM,CAChC,MAAA9J,EAAM2J,GAAiBY,CAAI,EACjC,IAAIU,EAAY5J,EAChB,OAAIrB,IAAQuK,IACLd,GAAUc,CAAI,EAIRlJ,EAAG,OAAS,IACT4J,EAAA,SAASE,EAAKrI,EAAMoI,EAAO,CACrC,OAAO7J,EAAG,KAAK,KAAM8J,EAAKrI,EAAMoI,EAAOX,CAAI,CAC7C,GANYU,EAAA,SAASE,EAAKrI,EAAMoI,EAAO,CAC9B,OAAA7J,EAAG,KAAK,KAAM8J,EAAKzB,GAAW5G,CAAI,EAAGoI,EAAOX,CAAI,CACzD,GAOGvK,EAAIwK,CAAM,EAAES,EAAW,GAAGnB,CAAI,CACvC,CACA,SAASI,GAAYK,EAAMC,EAAQV,EAAM,CACjC,MAAA9J,EAAMwJ,GAAMe,CAAI,EAChBjC,GAAAtI,EAAK,UAAWqI,EAAiB,EACvC,MAAMxF,EAAM7C,EAAIwK,CAAM,EAAE,GAAGV,CAAI,EAC1B,OAAAjH,IAAQ,IAAMA,IAAQ,KAAUuI,GAAQtB,EAAK,CAAC,CAAC,GAClDA,EAAK,CAAC,EAAIN,GAAMM,EAAK,CAAC,CAAC,EAChB9J,EAAIwK,CAAM,EAAE,GAAGV,CAAI,GAErBjH,CACT,CACA,SAASuH,GAAWG,EAAMC,EAAQV,EAAO,GAAI,CAC7BrC,GAAA,EACHnB,GAAA,EACL,MAAAzD,EAAM2G,GAAMe,CAAI,EAAEC,CAAM,EAAE,MAAMD,EAAMT,CAAI,EACvC,OAAAvD,GAAA,EACKmB,GAAA,EACP7E,CACT,CAEA,MAAMwI,MAA6C,6BAA6B,EAC1EC,GAAiB,IAAI,IACT,OAAO,oBAAoB,MAAM,EAAE,OAAQhM,GAAQA,IAAQ,aAAeA,IAAQ,QAAQ,EAAE,IAAKA,GAAQ,OAAOA,CAAG,CAAC,EAAE,OAAOqB,EAAQ,CACvJ,EACA,SAASR,GAAeb,EAAK,CACtBqB,GAASrB,CAAG,IAAGA,EAAM,OAAOA,CAAG,GAC9B,MAAA+C,EAAMmH,GAAM,IAAI,EAChB,OAAAlB,GAAAjG,EAAK,MAAO/C,CAAG,EACd+C,EAAI,eAAe/C,CAAG,CAC/B,CACA,MAAMiM,EAAoB,CACxB,YAAYC,EAAc,GAAOC,EAAa,GAAO,CACnD,KAAK,YAAcD,EACnB,KAAK,WAAaC,CAAA,CAEpB,IAAIlD,EAAQjJ,EAAKoM,EAAU,CACzB,GAAIpM,IAAQ,WAAmB,OAAAiJ,EAAO,SACtC,MAAMoD,EAAc,KAAK,YAAaC,EAAa,KAAK,WACxD,GAAItM,IAAQ,iBACV,MAAO,CAACqM,EACV,GAAWrM,IAAQ,iBACV,OAAAqM,EACT,GAAWrM,IAAQ,gBACV,OAAAsM,EACT,GAAWtM,IAAQ,UACb,OAAAoM,KAAcC,EAAcC,EAAaC,GAAqBC,GAAcF,EAAaG,GAAqBC,IAAa,IAAIzD,CAAM,GAEzI,OAAO,eAAeA,CAAM,IAAM,OAAO,eAAemD,CAAQ,EACvDnD,EAET,OAEI,MAAAO,EAAgBzI,GAAQkI,CAAM,EACpC,GAAI,CAACoD,EAAa,CACZ,IAAAtK,EACJ,GAAIyH,IAAkBzH,EAAKuI,GAAsBtK,CAAG,GAC3C,OAAA+B,EAET,GAAI/B,IAAQ,iBACH,OAAAa,EACT,CAEF,MAAM0C,EAAM,QAAQ,IAClB0F,EACAjJ,EAIA0E,GAAMuE,CAAM,EAAIA,EAASmD,CAC3B,EAOA,OANI/K,GAASrB,CAAG,EAAIgM,GAAe,IAAIhM,CAAG,EAAI+L,GAAmB/L,CAAG,KAG/DqM,GACGrD,GAAAC,EAAQ,MAAOjJ,CAAG,EAEtBsM,GACK/I,EAELmB,GAAMnB,CAAG,EACJiG,GAAiB5H,GAAa5B,CAAG,EAAIuD,EAAMA,EAAI,MAEpDjC,GAASiC,CAAG,EACP8I,EAAcM,GAASpJ,CAAG,EAAIqJ,GAASrJ,CAAG,EAE5CA,CAAA,CAEX,CACA,MAAMsJ,WAA+BZ,EAAoB,CACvD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAOA,CAAU,EAEzB,IAAIrD,EAAQjJ,EAAKyB,EAAO2K,EAAU,CAC5B,IAAA1J,EAAWuG,EAAOjJ,CAAG,EACrB,IAAC,KAAK,WAAY,CACd,MAAA8M,EAAqBC,GAAWrK,CAAQ,EAK1C,GAJA,CAACyH,GAAU1I,CAAK,GAAK,CAACsL,GAAWtL,CAAK,IACxCiB,EAAWwH,GAAMxH,CAAQ,EACzBjB,EAAQyI,GAAMzI,CAAK,GAEjB,CAACV,GAAQkI,CAAM,GAAKvE,GAAMhC,CAAQ,GAAK,CAACgC,GAAMjD,CAAK,EACrD,OAAIqL,EACK,IAEPpK,EAAS,MAAQjB,EACV,GAEX,CAEF,MAAMuL,EAASjM,GAAQkI,CAAM,GAAKrH,GAAa5B,CAAG,EAAI,OAAOA,CAAG,EAAIiJ,EAAO,OAASnI,GAAOmI,EAAQjJ,CAAG,EAChGqL,EAAS,QAAQ,IACrBpC,EACAjJ,EACAyB,EACAiD,GAAMuE,CAAM,EAAIA,EAASmD,CAC3B,EACI,OAAAnD,IAAWiB,GAAMkC,CAAQ,IACtBY,EAEMvK,GAAWhB,EAAOiB,CAAQ,GACnC0G,GAAQH,EAAQ,MAAOjJ,EAAKyB,CAAe,EAFnC2H,GAAAH,EAAQ,MAAOjJ,EAAKyB,CAAK,GAK9B4J,CAAA,CAET,eAAepC,EAAQjJ,EAAK,CACpB,MAAAgN,EAASlM,GAAOmI,EAAQjJ,CAAG,EAChBiJ,EAAOjJ,CAAG,EAC3B,MAAMqL,EAAS,QAAQ,eAAepC,EAAQjJ,CAAG,EACjD,OAAIqL,GAAU2B,GACZ5D,GAAQH,EAAQ,SAAUjJ,EAAK,MAAgB,EAE1CqL,CAAA,CAET,IAAIpC,EAAQjJ,EAAK,CACf,MAAMqL,EAAS,QAAQ,IAAIpC,EAAQjJ,CAAG,EAClC,QAACqB,GAASrB,CAAG,GAAK,CAACgM,GAAe,IAAIhM,CAAG,IACrCgJ,GAAAC,EAAQ,MAAOjJ,CAAG,EAEnBqL,CAAA,CAET,QAAQpC,EAAQ,CACd,OAAAD,GACEC,EACA,UACAlI,GAAQkI,CAAM,EAAI,SAAWJ,EAC/B,EACO,QAAQ,QAAQI,CAAM,EAEjC,CACA,MAAMgE,WAAgChB,EAAoB,CACxD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAMA,CAAU,EAExB,IAAIrD,EAAQjJ,EAAK,CAOR,SAET,eAAeiJ,EAAQjJ,EAAK,CAOnB,SAEX,CACA,MAAMkN,OAAsCL,GACtCM,OAAuCF,GACvCG,GAA8C,IAAAP,GAAuB,EAAI,EAG/E,MAAMQ,GAAa5L,GAAUA,EACvB6L,GAAYrI,GAAM,QAAQ,eAAeA,CAAC,EAChD,SAASsI,GAAqBrC,EAAQmB,EAAaC,EAAY,CAC7D,OAAO,YAAY9B,EAAM,CACjB,MAAAvB,EAAS,KAAK,QACduE,EAAYtD,GAAMjB,CAAM,EACxBwE,EAAczM,GAAMwM,CAAS,EAC7BE,EAASxC,IAAW,WAAaA,IAAW,OAAO,UAAYuC,EAC/DE,EAAYzC,IAAW,QAAUuC,EACjCG,EAAgB3E,EAAOiC,CAAM,EAAE,GAAGV,CAAI,EACtCqD,EAAOvB,EAAae,GAAYhB,EAAcyB,GAAa1D,GACjE,OAACiC,GAAerD,GACdwE,EACA,UACAG,EAAY7E,GAAsBD,EACpC,EACO,CAEL,MAAO,CACL,KAAM,CAAE,MAAApH,EAAO,KAAAsM,GAASH,EAAc,KAAK,EAC3C,OAAOG,EAAO,CAAE,MAAAtM,EAAO,KAAAsM,GAAS,CAC9B,MAAOL,EAAS,CAACG,EAAKpM,EAAM,CAAC,CAAC,EAAGoM,EAAKpM,EAAM,CAAC,CAAC,CAAC,EAAIoM,EAAKpM,CAAK,EAC7D,KAAAsM,CACF,CACF,EAEA,CAAC,OAAO,QAAQ,GAAI,CACX,YAEX,CACF,CACF,CACA,SAASC,GAAqB9E,EAAM,CAClC,OAAO,YAAYsB,EAAM,CAQvB,OAAOtB,IAAS,SAAW,GAAQA,IAAS,QAAU,OAAS,IACjE,CACF,CACA,SAAS+E,GAAuBtB,EAAUuB,EAAS,CACjD,MAAMC,EAAmB,CACvB,IAAInO,EAAK,CACD,MAAAiJ,EAAS,KAAK,QACduE,EAAYtD,GAAMjB,CAAM,EACxBmF,EAASlE,GAAMlK,CAAG,EACnB2M,IACClK,GAAWzC,EAAKoO,CAAM,GAClBpF,GAAAwE,EAAW,MAAOxN,CAAG,EAEvBgJ,GAAAwE,EAAW,MAAOY,CAAM,GAEhC,KAAM,CAAE,IAAAC,CAAA,EAAQf,GAASE,CAAS,EAC5BK,EAAOK,EAAUb,GAAYV,EAAWmB,GAAa1D,GAC3D,GAAIiE,EAAI,KAAKb,EAAWxN,CAAG,EACzB,OAAO6N,EAAK5E,EAAO,IAAIjJ,CAAG,CAAC,EAClB,GAAAqO,EAAI,KAAKb,EAAWY,CAAM,EACnC,OAAOP,EAAK5E,EAAO,IAAImF,CAAM,CAAC,EACrBnF,IAAWuE,GACpBvE,EAAO,IAAIjJ,CAAG,CAElB,EACA,IAAI,MAAO,CACH,MAAAiJ,EAAS,KAAK,QACpB,OAAC0D,GAAY3D,GAAMkB,GAAMjB,CAAM,EAAG,UAAWJ,EAAW,EACjD,QAAQ,IAAII,EAAQ,OAAQA,CAAM,CAC3C,EACA,IAAIjJ,EAAK,CACD,MAAAiJ,EAAS,KAAK,QACduE,EAAYtD,GAAMjB,CAAM,EACxBmF,EAASlE,GAAMlK,CAAG,EACxB,OAAK2M,IACClK,GAAWzC,EAAKoO,CAAM,GAClBpF,GAAAwE,EAAW,MAAOxN,CAAG,EAEvBgJ,GAAAwE,EAAW,MAAOY,CAAM,GAEzBpO,IAAQoO,EAASnF,EAAO,IAAIjJ,CAAG,EAAIiJ,EAAO,IAAIjJ,CAAG,GAAKiJ,EAAO,IAAImF,CAAM,CAChF,EACA,QAAQE,EAAU5D,EAAS,CACzB,MAAM6D,EAAW,KACXtF,EAASsF,EAAS,QAClBf,EAAYtD,GAAMjB,CAAM,EACxB4E,EAAOK,EAAUb,GAAYV,EAAWmB,GAAa1D,GAC3D,OAACuC,GAAY3D,GAAMwE,EAAW,UAAW3E,EAAW,EAC7CI,EAAO,QAAQ,CAACxH,EAAOzB,IACrBsO,EAAS,KAAK5D,EAASmD,EAAKpM,CAAK,EAAGoM,EAAK7N,CAAG,EAAGuO,CAAQ,CAC/D,EAEL,EACA/N,UACE2N,EACAxB,EAAW,CACT,IAAKqB,GAAqB,KAAK,EAC/B,IAAKA,GAAqB,KAAK,EAC/B,OAAQA,GAAqB,QAAQ,EACrC,MAAOA,GAAqB,OAAO,GACjC,CACF,IAAIvM,EAAO,CACL,CAACyM,GAAW,CAAC/D,GAAU1I,CAAK,GAAK,CAACsL,GAAWtL,CAAK,IACpDA,EAAQyI,GAAMzI,CAAK,GAEf,MAAAwH,EAASiB,GAAM,IAAI,EAGzB,OAFcoD,GAASrE,CAAM,EACR,IAAI,KAAKA,EAAQxH,CAAK,IAEzCwH,EAAO,IAAIxH,CAAK,EACR2H,GAAAH,EAAQ,MAAOxH,EAAOA,CAAK,GAE9B,IACT,EACA,IAAIzB,EAAKyB,EAAO,CACV,CAACyM,GAAW,CAAC/D,GAAU1I,CAAK,GAAK,CAACsL,GAAWtL,CAAK,IACpDA,EAAQyI,GAAMzI,CAAK,GAEf,MAAAwH,EAASiB,GAAM,IAAI,EACnB,CAAE,IAAAmE,EAAK,IAAAG,GAAQlB,GAASrE,CAAM,EACpC,IAAI+D,EAASqB,EAAI,KAAKpF,EAAQjJ,CAAG,EAC5BgN,IACHhN,EAAMkK,GAAMlK,CAAG,EACNgN,EAAAqB,EAAI,KAAKpF,EAAQjJ,CAAG,GAI/B,MAAM0C,EAAW8L,EAAI,KAAKvF,EAAQjJ,CAAG,EAC9B,OAAAiJ,EAAA,IAAIjJ,EAAKyB,CAAK,EAChBuL,EAEMvK,GAAWhB,EAAOiB,CAAQ,GACnC0G,GAAQH,EAAQ,MAAOjJ,EAAKyB,CAAe,EAFnC2H,GAAAH,EAAQ,MAAOjJ,EAAKyB,CAAK,EAI5B,IACT,EACA,OAAOzB,EAAK,CACJ,MAAAiJ,EAASiB,GAAM,IAAI,EACnB,CAAE,IAAAmE,EAAK,IAAAG,GAAQlB,GAASrE,CAAM,EACpC,IAAI+D,EAASqB,EAAI,KAAKpF,EAAQjJ,CAAG,EAC5BgN,IACHhN,EAAMkK,GAAMlK,CAAG,EACNgN,EAAAqB,EAAI,KAAKpF,EAAQjJ,CAAG,GAIdwO,GAAMA,EAAI,KAAKvF,EAAQjJ,CAAG,EACrC,MAAAqL,EAASpC,EAAO,OAAOjJ,CAAG,EAChC,OAAIgN,GACF5D,GAAQH,EAAQ,SAAUjJ,EAAK,MAAgB,EAE1CqL,CACT,EACA,OAAQ,CACA,MAAApC,EAASiB,GAAM,IAAI,EACnBuE,EAAWxF,EAAO,OAAS,EAE3BoC,EAASpC,EAAO,MAAM,EAC5B,OAAIwF,GACFrF,GACEH,EACA,QACA,OACA,MAEF,EAEKoC,CAAA,CACT,CAEJ,EACwB,CACtB,OACA,SACA,UACA,OAAO,QACT,EACgB,QAASH,GAAW,CAClCiD,EAAiBjD,CAAM,EAAIqC,GAAqBrC,EAAQyB,EAAUuB,CAAO,EAC1E,EACMC,CACT,CACA,SAASO,GAA4BrC,EAAa6B,EAAS,CACnD,MAAAC,EAAmBF,GAAuB5B,EAAa6B,CAAO,EAC7D,OAACjF,EAAQjJ,EAAKoM,IACfpM,IAAQ,iBACH,CAACqM,EACCrM,IAAQ,iBACVqM,EACErM,IAAQ,UACViJ,EAEF,QAAQ,IACbnI,GAAOqN,EAAkBnO,CAAG,GAAKA,KAAOiJ,EAASkF,EAAmBlF,EACpEjJ,EACAoM,CACF,CAEJ,CACA,MAAMuC,GAA4B,CAChC,IAAiDD,GAAA,GAAO,EAAK,CAC/D,EACME,GAA4B,CAChC,IAAiDF,GAAA,GAAO,EAAI,CAC9D,EACMG,GAA6B,CACjC,IAAiDH,GAAA,GAAM,EAAK,CAC9D,EAcA,MAAMhC,OAAkC,QAClCD,OAAyC,QACzCD,OAAkC,QAClCD,OAAyC,QAC/C,SAASuC,GAAcC,EAAS,CAC9B,OAAQA,EAAS,CACf,IAAK,SACL,IAAK,QACI,SACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACI,SACT,QACS,SAEb,CACA,SAASC,GAAcvN,EAAO,CAC5B,OAAOA,EAAM,UAAe,CAAC,OAAO,aAAaA,CAAK,EAAI,EAAkBqN,GAAcpN,GAAUD,CAAK,CAAC,CAC5G,CACA,SAASmL,GAAS3D,EAAQ,CACpB,OAAA8D,GAAW9D,CAAM,EACZA,EAEFgG,GACLhG,EACA,GACAiE,GACAyB,GACAjC,EACF,CACF,CACA,SAASwC,GAAgBjG,EAAQ,CACxB,OAAAgG,GACLhG,EACA,GACAmE,GACAwB,GACAnC,EACF,CACF,CACA,SAASE,GAAS1D,EAAQ,CACjB,OAAAgG,GACLhG,EACA,GACAkE,GACA0B,GACArC,EACF,CACF,CAUA,SAASyC,GAAqBhG,EAAQoD,EAAa8C,EAAcC,EAAoBC,EAAU,CAW7F,GAVI,CAAC/N,GAAS2H,CAAM,GAUhBA,EAAO,SAAc,EAAEoD,GAAepD,EAAO,gBACxC,OAAAA,EAEH,MAAAqG,EAAgBD,EAAS,IAAIpG,CAAM,EACzC,GAAIqG,EACK,OAAAA,EAEH,MAAAC,EAAaP,GAAc/F,CAAM,EACvC,GAAIsG,IAAe,EACV,OAAAtG,EAET,MAAMuG,EAAQ,IAAI,MAChBvG,EACAsG,IAAe,EAAqBH,EAAqBD,CAC3D,EACS,OAAAE,EAAA,IAAIpG,EAAQuG,CAAK,EACnBA,CACT,CACA,SAASC,GAAWhO,EAAO,CACrB,OAAAsL,GAAWtL,CAAK,EACXgO,GAAWhO,EAAM,OAAU,EAE7B,CAAC,EAAEA,GAASA,EAAM,eAC3B,CACA,SAASsL,GAAWtL,EAAO,CACzB,MAAO,CAAC,EAAEA,GAASA,EAAM,eAC3B,CACA,SAAS0I,GAAU1I,EAAO,CACxB,MAAO,CAAC,EAAEA,GAASA,EAAM,cAC3B,CACA,SAASqK,GAAQrK,EAAO,CACtB,OAAOA,EAAQ,CAAC,CAACA,EAAM,QAAa,EACtC,CACA,SAASyI,GAAMqE,EAAU,CACjB,MAAAtE,EAAMsE,GAAYA,EAAS,QAC1B,OAAAtE,EAAMC,GAAMD,CAAG,EAAIsE,CAC5B,CACA,SAASmB,GAAQjO,EAAO,CAClB,OAACX,GAAOW,EAAO,UAAU,GAAK,OAAO,aAAaA,CAAK,GACrDqB,GAAArB,EAAO,WAAY,EAAI,EAEtBA,CACT,CACA,MAAM2I,GAAc3I,GAAUH,GAASG,CAAK,EAAImL,GAASnL,CAAK,EAAIA,EAC5DqM,GAAcrM,GAAUH,GAASG,CAAK,EAAIkL,GAASlL,CAAK,EAAIA,EAElE,SAASiD,GAAMiL,EAAG,CAChB,OAAOA,EAAIA,EAAE,YAAiB,GAAO,EACvC,CACA,SAASC,GAAInO,EAAO,CACX,OAAAoO,GAAUpO,EAAO,EAAK,CAC/B,CACA,SAASqO,GAAWrO,EAAO,CAClB,OAAAoO,GAAUpO,EAAO,EAAI,CAC9B,CACA,SAASoO,GAAUE,EAAU7B,EAAS,CAChC,OAAAxJ,GAAMqL,CAAQ,EACTA,EAEF,IAAIC,GAAQD,EAAU7B,CAAO,CACtC,CACA,MAAM8B,EAAQ,CACZ,YAAYvO,EAAO6K,EAAY,CACxB,SAAM,IAAI9D,GACf,KAAK,UAAe,GACpB,KAAK,cAAmB,GACxB,KAAK,UAAY8D,EAAa7K,EAAQyI,GAAMzI,CAAK,EACjD,KAAK,OAAS6K,EAAa7K,EAAQ2I,GAAW3I,CAAK,EACnD,KAAK,cAAmB6K,CAAA,CAE1B,IAAI,OAAQ,CAQR,YAAK,IAAI,MAAM,EAEV,KAAK,OAEd,IAAI,MAAMjD,EAAU,CAClB,MAAM3G,EAAW,KAAK,UAChBuN,EAAiB,KAAK,eAAoB9F,GAAUd,CAAQ,GAAK0D,GAAW1D,CAAQ,EAC/EA,EAAA4G,EAAiB5G,EAAWa,GAAMb,CAAQ,EACjD5G,GAAW4G,EAAU3G,CAAQ,IAC/B,KAAK,UAAY2G,EACjB,KAAK,OAAS4G,EAAiB5G,EAAWe,GAAWf,CAAQ,EAU3D,KAAK,IAAI,QAAQ,EAErB,CAEJ,CAeA,SAAS6G,GAAMC,EAAM,CACnB,OAAOzL,GAAMyL,CAAI,EAAIA,EAAK,MAAQA,CACpC,CAIA,MAAMC,GAAwB,CAC5B,IAAK,CAACnH,EAAQjJ,EAAKoM,IAAapM,IAAQ,UAAYiJ,EAASiH,GAAM,QAAQ,IAAIjH,EAAQjJ,EAAKoM,CAAQ,CAAC,EACrG,IAAK,CAACnD,EAAQjJ,EAAKyB,EAAO2K,IAAa,CAC/B,MAAA1J,EAAWuG,EAAOjJ,CAAG,EAC3B,OAAI0E,GAAMhC,CAAQ,GAAK,CAACgC,GAAMjD,CAAK,GACjCiB,EAAS,MAAQjB,EACV,IAEA,QAAQ,IAAIwH,EAAQjJ,EAAKyB,EAAO2K,CAAQ,CACjD,CAEJ,EACA,SAASiE,GAAUC,EAAgB,CACjC,OAAOb,GAAWa,CAAc,EAAIA,EAAiB,IAAI,MAAMA,EAAgBF,EAAqB,CACtG,CACA,MAAMG,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,UAAe,GACpB,KAAK,OAAS,OACd,MAAM5I,EAAM,KAAK,IAAM,IAAIY,GACrB,CAAE,IAAAgG,EAAK,IAAAiC,CAAI,EAAID,EAAQ5I,EAAI,MAAM,KAAKA,CAAG,EAAGA,EAAI,QAAQ,KAAKA,CAAG,CAAC,EACvE,KAAK,KAAO4G,EACZ,KAAK,KAAOiC,CAAA,CAEd,IAAI,OAAQ,CACH,YAAK,OAAS,KAAK,KAAK,EAEjC,IAAI,MAAMC,EAAQ,CAChB,KAAK,KAAKA,CAAM,EAEpB,CACA,SAASC,GAAUH,EAAS,CACnB,WAAID,GAAcC,CAAO,CAClC,CACA,SAASI,IAAO/G,EAAQ,CAIhB,MAAA9F,EAAMhD,GAAQ8I,CAAM,EAAI,IAAI,MAAMA,EAAO,MAAM,EAAI,CAAC,EAC1D,UAAW7J,KAAO6J,EAChB9F,EAAI/D,CAAG,EAAI6Q,GAAchH,EAAQ7J,CAAG,EAE/B,OAAA+D,CACT,CACA,MAAM+M,EAAc,CAClB,YAAYC,EAASlM,EAAMmM,EAAe,CACxC,KAAK,QAAUD,EACf,KAAK,KAAOlM,EACZ,KAAK,cAAgBmM,EACrB,KAAK,UAAe,GACpB,KAAK,OAAS,OAEhB,IAAI,OAAQ,CACV,MAAM/Q,EAAM,KAAK,QAAQ,KAAK,IAAI,EAClC,OAAO,KAAK,OAASA,IAAQ,OAAS,KAAK,cAAgBA,CAAA,CAE7D,IAAI,MAAMyQ,EAAQ,CACX,aAAQ,KAAK,IAAI,EAAIA,CAAA,CAE5B,IAAI,KAAM,CACR,OAAO9G,GAAmBM,GAAM,KAAK,OAAO,EAAG,KAAK,IAAI,EAE5D,CACA,MAAM+G,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,UAAe,GACpB,KAAK,eAAoB,GACzB,KAAK,OAAS,OAEhB,IAAI,OAAQ,CACH,YAAK,OAAS,KAAK,QAAQ,EAEtC,CACA,SAASC,IAAMC,EAAQpR,EAAKqR,EAAc,CACpC,OAAA3M,GAAM0M,CAAM,EACPA,EACEjQ,GAAWiQ,CAAM,EACnB,IAAIH,GAAcG,CAAM,EACtB9P,GAAS8P,CAAM,GAAK,UAAU,OAAS,EACzCP,GAAcO,EAAQpR,EAAKqR,CAAY,EAEvCzB,GAAIwB,CAAM,CAErB,CACA,SAASP,GAAcO,EAAQpR,EAAKqR,EAAc,CAC1C,MAAApR,EAAMmR,EAAOpR,CAAG,EACf,OAAA0E,GAAMzE,CAAG,EAAIA,EAAM,IAAI6Q,GAAcM,EAAQpR,EAAKqR,CAAY,CACvE,CAEA,MAAMC,EAAgB,CACpB,YAAYvP,EAAIwP,EAAQC,EAAO,CAC7B,KAAK,GAAKzP,EACV,KAAK,OAASwP,EAId,KAAK,OAAS,OAIT,SAAM,IAAI/I,GAAI,IAAI,EAIvB,KAAK,UAAY,GAMjB,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,GAIb,KAAK,cAAgBb,GAAgB,EAIrC,KAAK,KAAO,OAEZ,KAAK,OAAS,KACT,oBAAoB,CAAC4J,EAC1B,KAAK,MAAQC,CAAA,CAKf,QAAS,CAEH,GADJ,KAAK,OAAS,GACV,EAAE,KAAK,MAAQ,IACnB1L,KAAc,KACZ,OAAAG,GAAM,KAAM,EAAI,EACT,EAC6C,CAExD,IAAI,OAAQ,CACV,MAAMO,EAID,KAAK,IAAI,MAAM,EACpB,OAAAiB,GAAgB,IAAI,EAChBjB,IACGA,EAAA,QAAU,KAAK,IAAI,SAEnB,KAAK,OAEd,IAAI,MAAM6C,EAAU,CACd,KAAK,QACP,KAAK,OAAOA,CAAQ,CAGtB,CAEJ,CACA,SAAS3B,GAAS+J,EAAiBC,EAAcF,EAAQ,GAAO,CAC1D,IAAAG,EACAJ,EACA,OAAApQ,GAAWsQ,CAAe,EACnBE,EAAAF,GAETE,EAASF,EAAgB,IACzBF,EAASE,EAAgB,KAEd,IAAIH,GAAgBK,EAAQJ,EAAQC,CAAK,CAMxD,CA8BA,MAAMI,GAAwB,CAAC,EACzBC,OAAiC,QACvC,IAAIC,GAIJ,SAASC,GAAiBC,EAAWnM,EAAe,GAAOoM,EAAQH,GAAe,CAChF,GAAIG,EAAO,CACL,IAAAC,EAAWL,GAAW,IAAII,CAAK,EAC9BC,GAAUL,GAAW,IAAII,EAAOC,EAAW,EAAE,EAClDA,EAAS,KAAKF,CAAS,EAM3B,CACA,SAASG,GAAMf,EAAQgB,EAAIC,EAAUnS,GAAW,CAC9C,KAAM,CAAE,UAAAoS,EAAW,KAAAC,EAAM,KAAAC,EAAM,UAAAC,EAAW,WAAAC,EAAY,KAAAC,GAASN,EAQzDO,EAAkBC,GAClBN,EAAaM,EACb1I,GAAU0I,CAAO,GAAKN,IAAS,IAASA,IAAS,EAC5CO,GAASD,EAAS,CAAC,EACrBC,GAASD,CAAO,EAErBE,MACApB,EACArJ,EACA0K,EACAC,EAAe,GACfC,EAAgB,GA+CpB,GA9CIxO,GAAM0M,CAAM,GACdO,EAAS,IAAMP,EAAO,MACtB6B,EAAe9I,GAAUiH,CAAM,GACtB3B,GAAW2B,CAAM,GACjBO,EAAA,IAAMiB,EAAexB,CAAM,EACrB6B,EAAA,IACNlS,GAAQqQ,CAAM,GACP8B,EAAA,GACDD,EAAA7B,EAAO,KAAM+B,GAAM1D,GAAW0D,CAAC,GAAKhJ,GAAUgJ,CAAC,CAAC,EAC/DxB,EAAS,IAAMP,EAAO,IAAK+B,GAAM,CAC3B,GAAAzO,GAAMyO,CAAC,EACT,OAAOA,EAAE,MACX,GAAW1D,GAAW0D,CAAC,EACrB,OAAOP,EAAeO,CAAC,EACzB,GAAWhS,GAAWgS,CAAC,EACrB,OAAOR,EAAOA,EAAKQ,EAAG,CAAC,EAAIA,EAAE,CAG/B,CACD,GACQhS,GAAWiQ,CAAM,EACtBgB,EACFT,EAASgB,EAAO,IAAMA,EAAKvB,EAAQ,CAAC,EAAIA,EAExCO,EAAS,IAAM,CACb,GAAIrJ,EAAS,CACGH,GAAA,EACV,IACMG,EAAA,SACR,CACcF,GAAA,EAChB,CAEF,MAAMgL,EAAgBtB,GACNiB,KACZ,IACK,OAAAJ,EAAOA,EAAKvB,EAAQ,EAAG,CAAC4B,CAAY,CAAC,EAAI5B,EAAO4B,CAAY,SACnE,CACgBlB,GAAAsB,CAAA,CAEpB,EAGOzB,EAAAvR,GAGPgS,GAAMG,EAAM,CACd,MAAMc,EAAa1B,EACb2B,EAAQf,IAAS,GAAO,IAAWA,EACzCZ,EAAS,IAAMmB,GAASO,EAAW,EAAGC,CAAK,EAE7C,MAAMC,EAAQ5N,GAAgB,EACxB6N,EAAc,IAAM,CACxBT,EAAO,KAAK,EACRQ,GAASA,EAAM,QACV9S,GAAA8S,EAAM,QAASR,CAAM,CAEhC,EACA,GAAIP,GAAQJ,EAAI,CACd,MAAMqB,EAAMrB,EACZA,EAAK,IAAI5H,IAAS,CAChBiJ,EAAI,GAAGjJ,CAAI,EACCgJ,EAAA,CACd,EAEE,IAAA9Q,EAAWwQ,EAAgB,IAAI,MAAM9B,EAAO,MAAM,EAAE,KAAKQ,EAAqB,EAAIA,GAChF,MAAA8B,EAAOC,GAAsB,CAC7B,OAAEZ,EAAO,MAAQ,IAAM,CAACA,EAAO,OAAS,CAACY,GAG7C,GAAIvB,EAAI,CACA,MAAA/I,EAAW0J,EAAO,IAAI,EAC5B,GAAIR,GAAQU,IAAiBC,EAAgB7J,EAAS,KAAK,CAACpE,EAAGrE,IAAM6B,GAAWwC,EAAGvC,EAAS9B,CAAC,CAAC,CAAC,EAAI6B,GAAW4G,EAAU3G,CAAQ,GAAI,CAC9H4F,GACMA,EAAA,EAEV,MAAMsL,EAAiB9B,GACPiB,KACZ,IACF,MAAMvI,EAAO,CACXnB,EAEA3G,IAAakP,GAAwB,OAASsB,GAAiBxQ,EAAS,CAAC,IAAMkP,GAAwB,GAAKlP,EAC5GsQ,CACF,EACOL,IAAKP,EAAI,EAAG5H,CAAI,EAErB4H,EAAG,GAAG5H,CAAI,EAED9H,EAAA2G,CAAA,QACX,CACgByI,GAAA8B,CAAA,CAClB,CACF,MAEAb,EAAO,IAAI,CAEf,EACA,OAAIL,GACFA,EAAWgB,CAAG,EAEhBX,EAAS,IAAI/M,GAAe2L,CAAM,EAClCoB,EAAO,UAAYN,EAAY,IAAMA,EAAUiB,EAAK,EAAK,EAAIA,EAC7DV,EAAgBjR,GAAOgQ,GAAiBhQ,EAAI,GAAOgR,CAAM,EAC/CA,IAAO,OAAS,IAAM,CACxB,MAAAb,EAAWL,GAAW,IAAIkB,CAAM,EACtC,GAAIb,EAAU,CACZ,GAAIS,EACFA,EAAKT,EAAU,CAAC,MAEL,WAAA2B,KAAY3B,EAAmB2B,EAAA,EAE5ChC,GAAW,OAAOkB,CAAM,EAE5B,EAKIX,EACEE,EACFoB,EAAI,EAAI,EAERhR,EAAWqQ,EAAO,IAAI,EAEfN,EACTA,EAAUiB,EAAI,KAAK,KAAM,EAAI,EAAG,EAAI,EAEpCX,EAAO,IAAI,EAEbS,EAAY,MAAQT,EAAO,MAAM,KAAKA,CAAM,EAC5CS,EAAY,OAAST,EAAO,OAAO,KAAKA,CAAM,EAC9CS,EAAY,KAAOA,EACZA,CACT,CACA,SAASV,GAASrR,EAAO6R,EAAQ,IAAUQ,EAAM,CAK3C,GAJAR,GAAS,GAAK,CAAChS,GAASG,CAAK,GAAKA,EAAM,WAGrCqS,SAA4B,IAC/BA,EAAK,IAAIrS,CAAK,GACT,OAAAA,EAIL,GAFJqS,EAAK,IAAIrS,CAAK,EACd6R,IACI5O,GAAMjD,CAAK,EACJqR,GAAArR,EAAM,MAAO6R,EAAOQ,CAAI,UACxB/S,GAAQU,CAAK,EACtB,QAASb,EAAI,EAAGA,EAAIa,EAAM,OAAQb,IAChCkS,GAASrR,EAAMb,CAAC,EAAG0S,EAAOQ,CAAI,UAEvB5S,GAAMO,CAAK,GAAKT,GAAMS,CAAK,EAC9BA,EAAA,QAASwD,GAAM,CACV6N,GAAA7N,EAAGqO,EAAOQ,CAAI,EACxB,UACQnS,GAAcF,CAAK,EAAG,CAC/B,UAAWzB,KAAOyB,EAChBqR,GAASrR,EAAMzB,CAAG,EAAGsT,EAAOQ,CAAI,EAElC,UAAW9T,KAAO,OAAO,sBAAsByB,CAAK,EAC9C,OAAO,UAAU,qBAAqB,KAAKA,EAAOzB,CAAG,GACvD8S,GAASrR,EAAMzB,CAAG,EAAGsT,EAAOQ,CAAI,CAEpC,CAEK,OAAArS,CACT,CCr2DA;AAAA;AAAA;AAAA;GAoMA,SAASsS,GAAsBhS,EAAIiS,EAAU9K,EAAMsB,EAAM,CACnD,IACF,OAAOA,EAAOzI,EAAG,GAAGyI,CAAI,EAAIzI,EAAG,QACxBqF,EAAK,CACA6M,GAAA7M,EAAK4M,EAAU9K,CAAI,EAEnC,CACA,SAASgL,GAA2BnS,EAAIiS,EAAU9K,EAAMsB,EAAM,CACxD,GAAArJ,GAAWY,CAAE,EAAG,CAClB,MAAMwB,EAAMwQ,GAAsBhS,EAAIiS,EAAU9K,EAAMsB,CAAI,EACtD,OAAAjH,GAAOhC,GAAUgC,CAAG,GAClBA,EAAA,MAAO6D,GAAQ,CACL6M,GAAA7M,EAAK4M,EAAU9K,CAAI,EAChC,EAEI3F,CAAA,CAEL,GAAAxC,GAAQgB,CAAE,EAAG,CACf,MAAMoS,EAAS,CAAC,EAChB,QAASvT,EAAI,EAAGA,EAAImB,EAAG,OAAQnB,IACtBuT,EAAA,KAAKD,GAA2BnS,EAAGnB,CAAC,EAAGoT,EAAU9K,EAAMsB,CAAI,CAAC,EAE9D,OAAA2J,CAAA,CAMX,CACA,SAASF,GAAY7M,EAAK4M,EAAU9K,EAAMkL,EAAa,GAAM,CACrD,MAAAC,EAAeL,EAAWA,EAAS,MAAQ,KAC3C,CAAE,aAAAM,EAAc,gCAAAC,GAAoCP,GAAYA,EAAS,WAAW,QAAU9T,GACpG,GAAI8T,EAAU,CACZ,IAAIQ,EAAMR,EAAS,OACnB,MAAMS,EAAkBT,EAAS,MAC3BU,EAAmF,8CAA8CxL,CAAI,GAC3I,KAAOsL,GAAK,CACV,MAAMG,EAAqBH,EAAI,GAC/B,GAAIG,GACF,QAAS/T,EAAI,EAAGA,EAAI+T,EAAmB,OAAQ/T,IAC7C,GAAI+T,EAAmB/T,CAAC,EAAEwG,EAAKqN,EAAiBC,CAAS,IAAM,GAC7D,OAINF,EAAMA,EAAI,OAEZ,GAAIF,EAAc,CACFnM,GAAA,EACQ4L,GAAAO,EAAc,KAAM,GAAI,CAC5ClN,EACAqN,EACAC,CAAA,CACD,EACatM,GAAA,EACd,OACF,CAEFwM,GAASxN,EAAK8B,EAAMmL,EAAcD,EAAYG,CAA+B,CAC/E,CACA,SAASK,GAASxN,EAAK8B,EAAMmL,EAAcD,EAAa,GAAMS,EAAc,GAAO,IAetEA,EACH,MAAAzN,EAEN,QAAQ,MAAMA,CAAG,CAErB,CAEA,MAAM0N,GAAQ,CAAC,EACf,IAAIC,GAAa,GACjB,MAAMC,GAAsB,CAAC,EAC7B,IAAIC,GAAqB,KACrBC,GAAiB,EACrB,MAAMC,WAA0C,QAAQ,EACxD,IAAIC,GAAsB,KAE1B,SAASC,GAAStT,EAAI,CACpB,MAAMuT,EAAIF,IAAuBD,GAC1B,OAAApT,EAAKuT,EAAE,KAAK,KAAOvT,EAAG,KAAK,IAAI,EAAIA,CAAE,EAAIuT,CAClD,CACA,SAASC,GAAmBC,EAAI,CAC9B,IAAIC,EAAQV,GAAa,EACrBW,EAAMZ,GAAM,OAChB,KAAOW,EAAQC,GAAK,CACZ,MAAAC,EAASF,EAAQC,IAAQ,EACzBE,EAAYd,GAAMa,CAAM,EACxBE,EAAcC,GAAMF,CAAS,EAC/BC,EAAcL,GAAMK,IAAgBL,GAAMI,EAAU,MAAQ,EAC9DH,EAAQE,EAAS,EAEXD,EAAAC,CACR,CAEK,OAAAF,CACT,CACA,SAASM,GAASrC,EAAK,CACjB,KAAEA,EAAI,MAAQ,GAAI,CACd,MAAAsC,EAAQF,GAAMpC,CAAG,EACjBuC,EAAUnB,GAAMA,GAAM,OAAS,CAAC,EAClC,CAACmB,GACL,EAAEvC,EAAI,MAAQ,IAAMsC,GAASF,GAAMG,CAAO,EACxCnB,GAAM,KAAKpB,CAAG,EAEdoB,GAAM,OAAOS,GAAmBS,CAAK,EAAG,EAAGtC,CAAG,EAEhDA,EAAI,OAAS,EACFwC,GAAA,EAEf,CACA,SAASA,IAAa,CACfd,KACmBA,GAAAD,GAAgB,KAAKgB,EAAS,EAExD,CACA,SAASC,GAAiBhE,EAAI,CACvBrR,GAAQqR,CAAE,EAQO4C,GAAA,KAAK,GAAG5C,CAAE,EAP1B6C,IAAsB7C,EAAG,KAAO,GAClC6C,GAAmB,OAAOC,GAAiB,EAAG,EAAG9C,CAAE,EACxCA,EAAG,MAAQ,IACtB4C,GAAoB,KAAK5C,CAAE,EAC3BA,EAAG,OAAS,GAKL8D,GAAA,CACb,CACA,SAASG,GAAiBrC,EAAUF,EAAMlT,EAAImU,GAAa,EAAG,CAIrD,KAAAnU,EAAIkU,GAAM,OAAQlU,IAAK,CACtB,MAAAwR,EAAK0C,GAAMlU,CAAC,EACd,GAAAwR,GAAMA,EAAG,MAAQ,EAAG,CACtB,GAAI4B,GAAY5B,EAAG,KAAO4B,EAAS,IACjC,SAKIc,GAAA,OAAOlU,EAAG,CAAC,EACjBA,IACIwR,EAAG,MAAQ,IACbA,EAAG,OAAS,IAEXA,EAAA,EACGA,EAAG,MAAQ,IACfA,EAAG,OAAS,GACd,CACF,CAEJ,CACA,SAASkE,GAAkBxC,EAAM,CAC/B,GAAIkB,GAAoB,OAAQ,CAC9B,MAAMuB,EAAU,CAAC,GAAG,IAAI,IAAIvB,EAAmB,CAAC,EAAE,KAChD,CAACwB,EAAGC,IAAMX,GAAMU,CAAC,EAAIV,GAAMW,CAAC,CAC9B,EAEA,GADAzB,GAAoB,OAAS,EACzBC,GAAoB,CACHA,GAAA,KAAK,GAAGsB,CAAO,EAClC,OAMF,IAJqBtB,GAAAsB,EAIhBrB,GAAiB,EAAGA,GAAiBD,GAAmB,OAAQC,KAAkB,CAC/E,MAAA9C,EAAK6C,GAAmBC,EAAc,EAIxC9C,EAAG,MAAQ,IACbA,EAAG,OAAS,IAERA,EAAG,MAAQ,GAAOA,EAAA,EACxBA,EAAG,OAAS,EAAC,CAEM6C,GAAA,KACJC,GAAA,EAErB,CACA,MAAMY,GAASpC,GAAQA,EAAI,IAAM,KAAOA,EAAI,MAAQ,EAAI,GAAK,IAAWA,EAAI,GAC5E,SAASyC,GAAUrC,EAAM,CAKnB,IACF,IAAKiB,GAAa,EAAGA,GAAaD,GAAM,OAAQC,KAAc,CACtD,MAAArB,EAAMoB,GAAMC,EAAU,EACxBrB,GAAO,EAAEA,EAAI,MAAQ,KAInBA,EAAI,MAAQ,IACdA,EAAI,OAAS,IAEfK,GACEL,EACAA,EAAI,EACJA,EAAI,EAAI,GAAK,EACf,EACMA,EAAI,MAAQ,IAChBA,EAAI,OAAS,IAEjB,CACF,QACA,CACO,KAAAqB,GAAaD,GAAM,OAAQC,KAAc,CACxC,MAAArB,EAAMoB,GAAMC,EAAU,EACxBrB,IACFA,EAAI,OAAS,GACf,CAEWqB,GAAA,GACbD,GAAM,OAAS,EACfwB,GAAsB,EACAlB,GAAA,MAClBN,GAAM,QAAUE,GAAoB,SACtCmB,GAAc,CAChB,CAEJ,CAwOA,IAAIO,GAA2B,KAC3BC,GAAiB,KACrB,SAASC,GAA4B5C,EAAU,CAC7C,MAAMzM,EAAOmP,GACc,OAAAA,GAAA1C,EACV2C,GAAA3C,GAAYA,EAAS,KAAK,WAAa,KACjDzM,CACT,CAQA,SAASsP,GAAQ9U,EAAI+U,EAAMJ,GAA0BK,EAAiB,CAEpE,GADI,CAACD,GACD/U,EAAG,GACE,OAAAA,EAEH,MAAAiV,EAAsB,IAAIxM,IAAS,CACnCwM,EAAoB,IACtBC,GAAiB,EAAE,EAEf,MAAAC,EAAeN,GAA4BE,CAAG,EAChD,IAAAvT,EACA,IACIA,EAAAxB,EAAG,GAAGyI,CAAI,SAChB,CACAoM,GAA4BM,CAAY,EACpCF,EAAoB,IACtBC,GAAiB,CAAC,CACpB,CAKK,OAAA1T,CACT,EACA,OAAAyT,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GAClBA,CACT,CAOA,SAASG,IAAeC,EAAOC,EAAY,CACzC,GAAIX,KAA6B,KAExB,OAAAU,EAEH,MAAApD,EAAWsD,GAA2BZ,EAAwB,EAC9Da,EAAWH,EAAM,OAASA,EAAM,KAAO,IAC7C,QAAS,EAAI,EAAG,EAAIC,EAAW,OAAQ,IAAK,CACtC,IAACG,EAAK/V,EAAOoB,EAAK4U,EAAYvX,EAAS,EAAImX,EAAW,CAAC,EACvDG,IACErW,GAAWqW,CAAG,IACVA,EAAA,CACJ,QAASA,EACT,QAASA,CACX,GAEEA,EAAI,MACN1E,GAASrR,CAAK,EAEhB8V,EAAS,KAAK,CACZ,IAAAC,EACA,SAAAxD,EACA,MAAAvS,EACA,SAAU,OACV,IAAAoB,EACA,UAAA4U,CAAA,CACD,EACH,CAEK,OAAAL,CACT,CACA,SAASM,GAAoBN,EAAOO,EAAW3D,EAAU9P,EAAM,CAC7D,MAAMqT,EAAWH,EAAM,KACjBQ,EAAcD,GAAaA,EAAU,KAC3C,QAAS/W,EAAI,EAAGA,EAAI2W,EAAS,OAAQ3W,IAAK,CAClC,MAAAiX,EAAUN,EAAS3W,CAAC,EACtBgX,IACMC,EAAA,SAAWD,EAAYhX,CAAC,EAAE,OAEhC,IAAAkX,EAAOD,EAAQ,IAAI3T,CAAI,EACvB4T,IACY3P,GAAA,EACa+L,GAAA4D,EAAM9D,EAAU,EAAG,CAC5CoD,EAAM,GACNS,EACAT,EACAO,CAAA,CACD,EACavP,GAAA,EAChB,CAEJ,CAEA,MAAM2P,GAAiB,OAAO,MAAM,EAC9BC,GAAc9O,GAASA,EAAK,aAC5B+O,GAAsB7T,GAAUA,IAAUA,EAAM,UAAYA,EAAM,WAAa,IAC/E8T,GAAsB9T,GAAUA,IAAUA,EAAM,OAASA,EAAM,QAAU,IACzE+T,GAAelP,GAAW,OAAO,WAAe,KAAeA,aAAkB,WACjFmP,GAAkBnP,GAAW,OAAO,eAAkB,YAAcA,aAAkB,cACtFoP,GAAgB,CAACjU,EAAOkU,IAAW,CACjC,MAAAC,EAAiBnU,GAASA,EAAM,GAClC,OAAAhD,GAASmX,CAAc,EACpBD,EAMYA,EAAOC,CAAc,EAF7B,KAcFA,CAEX,EACMC,GAAe,CACnB,KAAM,WACN,aAAc,GACd,QAAQC,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,EAAWC,EAAW,CAC3G,MACJ,GAAIC,EACJ,GAAIC,EACJ,IAAKC,EACL,EAAG,CAAE,OAAAC,EAAQ,cAAAC,EAAe,WAAAC,EAAY,cAAAC,CAAc,GACpDP,EACEQ,EAAWzB,GAAmBS,EAAG,KAAK,EAC5C,GAAI,CAAE,UAAAiB,EAAW,SAAAC,EAAU,gBAAAC,CAAoB,EAAAnB,EAK/C,GAAID,GAAM,KAAM,CACR,MAAAqB,EAAcpB,EAAG,GAAmFc,EAAW,EAAE,EACjHO,EAAarB,EAAG,OAAqFc,EAAW,EAAE,EACjHF,EAAAQ,EAAanB,EAAWC,CAAM,EAC9BU,EAAAS,EAAYpB,EAAWC,CAAM,EAC9B,MAAAoB,EAAQ,CAACC,EAAYC,IAAY,CACjCP,EAAY,KACVd,GAAmBA,EAAgB,OACrCA,EAAgB,GAAG,gBAAkBoB,GAEvCd,EACES,EACAK,EACAC,EACArB,EACAC,EACAC,EACAC,EACAC,CACF,EAEJ,EACMkB,EAAgB,IAAM,CAC1B,MAAMlR,EAASyP,EAAG,OAASL,GAAcK,EAAG,MAAOa,CAAa,EAC1Da,EAAeC,GAAcpR,EAAQyP,EAAIc,EAAYF,CAAM,EAC7DrQ,IACE8P,IAAc,OAASZ,GAAYlP,CAAM,EAC/B8P,EAAA,MACHA,IAAc,UAAYX,GAAenP,CAAM,IAC5C8P,EAAA,UAETW,IACHM,EAAM/Q,EAAQmR,CAAY,EAC1BE,GAAc5B,EAAI,EAAK,GAS7B,EACIgB,IACFM,EAAMrB,EAAWoB,CAAU,EAC3BO,GAAc5B,EAAI,EAAI,GAEpBR,GAAmBQ,EAAG,KAAK,EAC7B6B,GAAsB,IAAM,CACZJ,EAAA,EACdzB,EAAG,GAAG,YAAc,IACnBI,CAAc,EAEHqB,EAAA,CAChB,KACK,CACL,GAAIjC,GAAmBQ,EAAG,KAAK,GAAK,CAACD,EAAG,GAAG,YAAa,CACtD8B,GAAsB,IAAM,CACb/B,GAAA,QACXC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CACF,EACA,OAAOT,EAAG,GAAG,aACZK,CAAc,EACjB,OAEFJ,EAAG,GAAKD,EAAG,GACXC,EAAG,YAAcD,EAAG,YACd,MAAAsB,EAAarB,EAAG,OAASD,EAAG,OAC5BxP,EAASyP,EAAG,OAASD,EAAG,OACxB2B,EAAe1B,EAAG,aAAeD,EAAG,aACpC+B,EAAcvC,GAAmBQ,EAAG,KAAK,EACzCgC,EAAmBD,EAAc7B,EAAY1P,EAC7CyR,EAAgBF,EAAcT,EAAaK,EA8BjD,GA7BIrB,IAAc,OAASZ,GAAYlP,CAAM,EAC/B8P,EAAA,OACHA,IAAc,UAAYX,GAAenP,CAAM,KAC5C8P,EAAA,UAEVc,GACFR,EACEZ,EAAG,gBACHoB,EACAY,EACA5B,EACAC,EACAC,EACAC,CACF,EACuB2B,GAAAlC,EAAIC,EAAI,EAAI,GACzBO,GACVG,EACEX,EACAC,EACA+B,EACAC,EACA7B,EACAC,EACAC,EACAC,EACA,EACF,EAEEU,EACGc,EASC9B,EAAG,OAASD,EAAG,OAASC,EAAG,MAAM,KAAOD,EAAG,MAAM,KAChDC,EAAA,MAAM,GAAKD,EAAG,MAAM,IATzBmC,GACElC,EACAC,EACAoB,EACAb,EACA,CACF,WAOGR,EAAG,OAASA,EAAG,MAAM,OAASD,EAAG,OAASA,EAAG,MAAM,IAAK,CACrD,MAAAoC,EAAanC,EAAG,OAASL,GAC7BK,EAAG,MACHa,CACF,EACIsB,GACFD,GACElC,EACAmC,EACA,KACA3B,EACA,CACF,OAQOsB,GACTI,GACElC,EACAzP,EACAmR,EACAlB,EACA,CACF,EAGJoB,GAAc5B,EAAIgB,CAAQ,EAE9B,EACA,OAAOtC,EAAOyB,EAAiBC,EAAgB,CAAE,GAAIgC,EAAS,EAAG,CAAE,OAAQC,CAAW,GAAKC,EAAU,CAC7F,MACJ,UAAArB,EACA,SAAAC,EACA,OAAAhB,EACA,YAAAqC,EACA,aAAAb,EACA,OAAAnR,EACA,MAAA7E,CAAA,EACEgT,EAMJ,GALInO,IACF8R,EAAWE,CAAW,EACtBF,EAAWX,CAAY,GAEzBY,GAAYD,EAAWnC,CAAM,EACzBe,EAAY,GAAI,CAClB,MAAMuB,EAAeF,GAAY,CAAC/C,GAAmB7T,CAAK,EAC1D,QAASxD,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IAAK,CAClC,MAAAua,EAAQvB,EAAShZ,CAAC,EACxBka,EACEK,EACAtC,EACAC,EACAoC,EACA,CAAC,CAACC,EAAM,eACV,EACF,CAEJ,EACA,KAAMP,GACN,QAASQ,EACX,EACA,SAASR,GAAaxD,EAAOuB,EAAW0C,EAAc,CAAE,EAAG,CAAE,OAAA/B,CAAA,EAAU,EAAGgC,GAAQC,EAAW,EAAG,CAC1FA,IAAa,GACRjC,EAAAlC,EAAM,aAAcuB,EAAW0C,CAAY,EAEpD,KAAM,CAAE,GAAA1a,EAAI,OAAAiY,EAAQ,UAAAe,EAAW,SAAAC,EAAU,MAAAxV,GAAUgT,EAC7CoE,EAAYD,IAAa,EAI/B,GAHIC,GACKlC,EAAA3Y,EAAIgY,EAAW0C,CAAY,GAEhC,CAACG,GAAavD,GAAmB7T,CAAK,IACpCuV,EAAY,GACd,QAAS/Y,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IACnC0a,EACE1B,EAAShZ,CAAC,EACV+X,EACA0C,EACA,CACF,EAIFG,GACKlC,EAAAV,EAAQD,EAAW0C,CAAY,CAE1C,CACA,SAASD,GAAgBK,EAAMrE,EAAOyB,EAAiBC,EAAgBE,EAAcC,EAAW,CAC9F,EAAG,CAAE,YAAAyC,EAAa,WAAAC,EAAY,cAAApC,EAAe,OAAAD,EAAQ,WAAAE,CAAW,CAClE,EAAGoC,EAAiB,CACZ,MAAA3S,EAASmO,EAAM,OAASiB,GAC5BjB,EAAM,MACNmC,CACF,EACA,GAAItQ,EAAQ,CACJ,MAAAyQ,EAAWzB,GAAmBb,EAAM,KAAK,EACzCyE,EAAa5S,EAAO,MAAQA,EAAO,WACrC,GAAAmO,EAAM,UAAY,GACpB,GAAIsC,EACFtC,EAAM,OAASwE,EACbF,EAAYD,CAAI,EAChBrE,EACAuE,EAAWF,CAAI,EACf5C,EACAC,EACAE,EACAC,CACF,EACA7B,EAAM,YAAcyE,EACdzE,EAAA,aAAeyE,GAAcH,EAAYG,CAAU,MACpD,CACCzE,EAAA,OAASsE,EAAYD,CAAI,EAC/B,IAAIrB,EAAeyB,EACnB,KAAOzB,GAAc,CACf,GAAAA,GAAgBA,EAAa,WAAa,GACxC,GAAAA,EAAa,OAAS,wBACxBhD,EAAM,YAAcgD,UACXA,EAAa,OAAS,kBAAmB,CAClDhD,EAAM,aAAegD,EACrBnR,EAAO,KAAOmO,EAAM,cAAgBsE,EAAYtE,EAAM,YAAY,EAClE,OAGJgD,EAAesB,EAAYtB,CAAY,EAEpChD,EAAM,cACKiD,GAAApR,EAAQmO,EAAOoC,EAAYF,CAAM,EAEjDsC,EACEC,GAAcH,EAAYG,CAAU,EACpCzE,EACAnO,EACA4P,EACAC,EACAE,EACAC,CACF,EAGJqB,GAAclD,EAAOsC,CAAQ,EAE/B,OAAOtC,EAAM,QAAUsE,EAAYtE,EAAM,MAAM,CACjD,CACA,MAAM0E,GAAWtD,GACjB,SAAS8B,GAAclD,EAAO2E,EAAY,CACxC,MAAMjF,EAAMM,EAAM,IACd,GAAAN,GAAOA,EAAI,GAAI,CACjB,IAAI2E,EAAM7C,EAQH,IAPHmD,GACFN,EAAOrE,EAAM,GACbwB,EAASxB,EAAM,SAEfqE,EAAOrE,EAAM,YACbwB,EAASxB,EAAM,cAEVqE,GAAQA,IAAS7C,GAClB6C,EAAK,WAAa,KAAQ,aAAa,eAAgB3E,EAAI,GAAG,EAClE2E,EAAOA,EAAK,YAEd3E,EAAI,GAAG,EAEX,CACA,SAASuD,GAAcpR,EAAQmO,EAAOoC,EAAYF,EAAQ,CACxD,MAAM2B,EAAc7D,EAAM,YAAcoC,EAAW,EAAE,EAC/CY,EAAehD,EAAM,aAAeoC,EAAW,EAAE,EACvD,OAAAyB,EAAYlD,EAAc,EAAIqC,EAC1BnR,IACFqQ,EAAO2B,EAAahS,CAAM,EAC1BqQ,EAAOc,EAAcnR,CAAM,GAEtBmR,CACT,CAEA,MAAM4B,GAAa,OAAO,UAAU,EAC9BC,GAAa,OAAO,UAAU,EACpC,SAASC,IAAqB,CAC5B,MAAMC,EAAQ,CACZ,UAAW,GACX,UAAW,GACX,aAAc,GACd,kBAAmC,GACrC,EACA,OAAAC,GAAU,IAAM,CACdD,EAAM,UAAY,GACnB,EACDE,GAAgB,IAAM,CACpBF,EAAM,aAAe,GACtB,EACMA,CACT,CACA,MAAMG,GAA0B,CAAC,SAAU,KAAK,EAC1CC,GAAgC,CACpC,KAAM,OACN,OAAQ,QACR,UAAW,QAEX,cAAeD,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,cAAeA,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,eAAgBA,GAChB,SAAUA,GACV,cAAeA,GACf,kBAAmBA,EACrB,EACME,GAAuBxI,GAAa,CACxC,MAAMyI,EAAUzI,EAAS,QACzB,OAAOyI,EAAQ,UAAYD,GAAoBC,EAAQ,SAAS,EAAIA,CACtE,EACMC,GAAqB,CACzB,KAAM,iBACN,MAAOH,GACP,MAAMnY,EAAO,CAAE,MAAAuY,GAAS,CACtB,MAAM3I,EAAW4I,GAAmB,EAC9BT,EAAQD,GAAmB,EACjC,MAAO,IAAM,CACX,MAAMtC,EAAW+C,EAAM,SAAWE,GAAyBF,EAAM,UAAW,EAAI,EAChF,GAAI,CAAC/C,GAAY,CAACA,EAAS,OACzB,OAEI,MAAAuB,EAAQ2B,GAAoBlD,CAAQ,EACpCmD,EAAW7S,GAAM9F,CAAK,EACtB,CAAE,KAAA4Y,GAASD,EAIjB,GAAIZ,EAAM,UACR,OAAOc,GAAiB9B,CAAK,EAEzB,MAAA+B,EAAaC,GAAgBhC,CAAK,EACxC,GAAI,CAAC+B,EACH,OAAOD,GAAiB9B,CAAK,EAE/B,IAAIiC,EAAaC,GACfH,EACAH,EACAZ,EACAnI,EAECsJ,GAAUF,EAAaE,CAC1B,EACIJ,EAAW,OAASK,IACtBC,GAAmBN,EAAYE,CAAU,EAE3C,IAAIK,EAAgBzJ,EAAS,SAAWmJ,GAAgBnJ,EAAS,OAAO,EACxE,GAAIyJ,GAAiBA,EAAc,OAASF,IAAW,CAACG,GAAgBR,EAAYO,CAAa,GAAKjB,GAAoBxI,CAAQ,EAAE,OAASuJ,GAAS,CACpJ,IAAII,EAAeN,GACjBI,EACAV,EACAZ,EACAnI,CACF,EAEA,GADAwJ,GAAmBC,EAAeE,CAAY,EAC1CX,IAAS,UAAYE,EAAW,OAASK,GAC3C,OAAApB,EAAM,UAAY,GAClBwB,EAAa,WAAa,IAAM,CAC9BxB,EAAM,UAAY,GACZnI,EAAS,IAAI,MAAQ,GACzBA,EAAS,OAAO,EAElB,OAAO2J,EAAa,WACJF,EAAA,MAClB,EACOR,GAAiB9B,CAAK,EACpB6B,IAAS,UAAYE,EAAW,OAASK,GAClDI,EAAa,WAAa,CAAChd,EAAIid,EAAaC,IAAiB,CAC3D,MAAMC,EAAqBC,GACzB5B,EACAsB,CACF,EACAK,EAAmB,OAAOL,EAAc,GAAG,CAAC,EAAIA,EAC7C9c,EAAAqb,EAAU,EAAI,IAAM,CACT4B,EAAA,EACZjd,EAAGqb,EAAU,EAAI,OACjB,OAAOoB,EAAW,aACFK,EAAA,MAClB,EACAL,EAAW,aAAe,IAAM,CACjBS,EAAA,EACb,OAAOT,EAAW,aACFK,EAAA,MAClB,CACF,EAEgBA,EAAA,YAETA,IACOA,EAAA,QAEX,OAAAtC,CACT,EAEJ,EACA,SAAS2B,GAAoBlD,EAAU,CACjC,IAAAuB,EAAQvB,EAAS,CAAC,EAClB,GAAAA,EAAS,OAAS,GAEpB,UAAWxX,KAAKwX,EACV,GAAAxX,EAAE,OAASmb,GAAS,CAOdpC,EAAA/Y,EAEwC,OAI/C,OAAA+Y,CACT,CACA,MAAM6C,GAAiBtB,GACvB,SAASqB,GAAuB5B,EAAO/E,EAAO,CACtC,MAAE,cAAA6G,GAAkB9B,EAC1B,IAAI2B,EAAqBG,EAAc,IAAI7G,EAAM,IAAI,EACrD,OAAK0G,IACkCA,EAAA,OAAO,OAAO,IAAI,EACzCG,EAAA,IAAI7G,EAAM,KAAM0G,CAAkB,GAE3CA,CACT,CACA,SAAST,GAAuBjG,EAAOhT,EAAO+X,EAAOnI,EAAUkK,EAAW,CAClE,MACJ,OAAAC,EACA,KAAAnB,EACA,UAAAoB,EAAY,GACZ,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,SAAAC,EACA,cAAAC,EACA,kBAAAC,CAAA,EACE5a,EACEpE,EAAM,OAAOoX,EAAM,GAAG,EACtB0G,EAAqBC,GAAuB5B,EAAO/E,CAAK,EACxD6H,EAAW,CAACnH,EAAMtN,IAAS,CACvBsN,GAAA5D,GACN4D,EACA9D,EACA,EACAxJ,CACF,CACF,EACM0U,EAAgB,CAACpH,EAAMtN,IAAS,CAC9B,MAAAuD,EAAOvD,EAAK,CAAC,EACnByU,EAASnH,EAAMtN,CAAI,EACfzJ,GAAQ+W,CAAI,EACVA,EAAK,MAAOqH,GAAUA,EAAM,QAAU,CAAC,GAAQpR,EAAA,EAC1C+J,EAAK,QAAU,GACnB/J,EAAA,CAET,EACMuP,EAAQ,CACZ,KAAAN,EACA,UAAAoB,EACA,YAAYzd,EAAI,CACd,IAAImX,EAAOuG,EACP,IAAClC,EAAM,UACT,GAAIgC,EACFrG,EAAO+G,GAAkBR,MAEzB,QAGA1d,EAAGqb,EAAU,GACfrb,EAAGqb,EAAU,EACX,EAEF,EAEI,MAAAoD,EAAetB,EAAmB9d,CAAG,EACvCof,GAAgB1B,GAAgBtG,EAAOgI,CAAY,GAAKA,EAAa,GAAGpD,EAAU,GACvEoD,EAAA,GAAGpD,EAAU,EAAE,EAE9BiD,EAASnH,EAAM,CAACnX,CAAE,CAAC,CACrB,EACA,MAAMA,EAAI,CACR,IAAImX,EAAOwG,EACPe,EAAYd,EACZe,EAAad,EACb,IAACrC,EAAM,UACT,GAAIgC,EACFrG,EAAOgH,GAAYR,EACnBe,EAAYN,GAAiBR,EAC7Be,EAAaN,GAAqBR,MAElC,QAGJ,IAAIe,EAAS,GACb,MAAMxR,EAAOpN,EAAGsb,EAAU,EAAKuD,GAAc,CACvCD,IACKA,EAAA,GACLC,EACFP,EAASK,EAAY,CAAC3e,CAAE,CAAC,EAEzBse,EAASI,EAAW,CAAC1e,CAAE,CAAC,EAEtB2c,EAAM,cACRA,EAAM,aAAa,EAErB3c,EAAGsb,EAAU,EAAI,OACnB,EACInE,EACFoH,EAAcpH,EAAM,CAACnX,EAAIoN,CAAI,CAAC,EAEzBA,EAAA,CAET,EACA,MAAMpN,EAAIF,EAAQ,CACV,MAAAkJ,EAAO,OAAOyN,EAAM,GAAG,EAO7B,GANIzW,EAAGsb,EAAU,GACftb,EAAGsb,EAAU,EACX,EAEF,EAEEE,EAAM,aACR,OAAO1b,EAAO,EAEhBwe,EAASR,EAAe,CAAC9d,CAAE,CAAC,EAC5B,IAAI4e,EAAS,GACb,MAAMxR,EAAOpN,EAAGqb,EAAU,EAAKwD,GAAc,CACvCD,IACKA,EAAA,GACT9e,EAAO,EACH+e,EACFP,EAASL,EAAkB,CAACje,CAAE,CAAC,EAE/Bse,EAASN,EAAc,CAAChe,CAAE,CAAC,EAE7BA,EAAGqb,EAAU,EAAI,OACb8B,EAAmBnU,CAAI,IAAMyN,GAC/B,OAAO0G,EAAmBnU,CAAI,EAElC,EACAmU,EAAmBnU,CAAI,EAAIyN,EACvBsH,EACFQ,EAAcR,EAAS,CAAC/d,EAAIoN,CAAI,CAAC,EAE5BA,EAAA,CAET,EACA,MAAM0R,EAAQ,CACZ,MAAMC,EAASrC,GACboC,EACArb,EACA+X,EACAnI,EACAkK,CACF,EACI,OAAAA,KAAqBwB,CAAM,EACxBA,CAAA,CAEX,EACO,OAAApC,CACT,CACA,SAASL,GAAiB7F,EAAO,CAC3B,GAAAuI,GAAYvI,CAAK,EACnB,OAAAA,EAAQwI,GAAWxI,CAAK,EACxBA,EAAM,SAAW,KACVA,CAEX,CACA,SAAS+F,GAAgB/F,EAAO,CAC1B,IAACuI,GAAYvI,CAAK,EACpB,OAAIY,GAAWZ,EAAM,IAAI,GAAKA,EAAM,SAC3B0F,GAAoB1F,EAAM,QAAQ,EAEpCA,EAKH,MAAE,UAAAuC,EAAW,SAAAC,CAAA,EAAaxC,EAChC,GAAIwC,EAAU,CACZ,GAAID,EAAY,GACd,OAAOC,EAAS,CAAC,EAEnB,GAAID,EAAY,IAAMxY,GAAWyY,EAAS,OAAO,EAC/C,OAAOA,EAAS,QAAQ,CAC1B,CAEJ,CACA,SAAS4D,GAAmBpG,EAAOkG,EAAO,CACpClG,EAAM,UAAY,GAAKA,EAAM,WAC/BA,EAAM,WAAakG,EACAE,GAAApG,EAAM,UAAU,QAASkG,CAAK,GACxClG,EAAM,UAAY,KAC3BA,EAAM,UAAU,WAAakG,EAAM,MAAMlG,EAAM,SAAS,EACxDA,EAAM,WAAW,WAAakG,EAAM,MAAMlG,EAAM,UAAU,GAE1DA,EAAM,WAAakG,CAEvB,CACA,SAAST,GAAyBjD,EAAUiG,EAAc,GAAOC,EAAW,CAC1E,IAAI/b,EAAM,CAAC,EACPgc,EAAqB,EACzB,QAASnf,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IAAK,CACpC,IAAAua,EAAQvB,EAAShZ,CAAC,EACtB,MAAMZ,EAAM8f,GAAa,KAAO3E,EAAM,IAAM,OAAO2E,CAAS,EAAI,OAAO3E,EAAM,KAAO,KAAOA,EAAM,IAAMva,CAAC,EACpGua,EAAM,OAAS6E,IACb7E,EAAM,UAAY,KAAK4E,IAC3Bhc,EAAMA,EAAI,OACR8Y,GAAyB1B,EAAM,SAAU0E,EAAa7f,CAAG,CAC3D,IACS6f,GAAe1E,EAAM,OAASoC,KACnCxZ,EAAA,KAAK/D,GAAO,KAAO4f,GAAWzE,EAAO,CAAE,IAAAnb,EAAK,EAAImb,CAAK,CAC3D,CAEF,GAAI4E,EAAqB,EACvB,QAASnf,EAAI,EAAGA,EAAImD,EAAI,OAAQnD,IAC1BmD,EAAAnD,CAAC,EAAE,UAAY,GAGhB,OAAAmD,CACT,CAEA,2BAEA,SAASkc,GAAgB5N,EAAS6N,EAAc,CAC9C,OAAO/e,GAAWkR,CAAO,EAGA7R,GAAO,CAAE,KAAM6R,EAAQ,IAAQ,EAAA6N,EAAc,CAAE,MAAO7N,EAAS,EACpFA,CACN,CAaA,SAAS8N,GAAkBnM,EAAU,CACnCA,EAAS,IAAM,CAACA,EAAS,IAAI,CAAC,EAAIA,EAAS,IAAI,CAAC,IAAM,IAAK,EAAG,CAAC,CACjE,CA8BA,SAASoM,GAAOC,EAAQC,EAAWxH,EAAgB1B,EAAOmJ,EAAY,GAAO,CACvE,GAAAxf,GAAQsf,CAAM,EAAG,CACZA,EAAA,QACL,CAAC1Q,EAAG/O,IAAMwf,GACRzQ,EACA2Q,IAAcvf,GAAQuf,CAAS,EAAIA,EAAU1f,CAAC,EAAI0f,GAClDxH,EACA1B,EACAmJ,CAAA,CAEJ,EACA,OAEF,GAAIC,GAAepJ,CAAK,GAAK,CAACmJ,EAAW,CACnCnJ,EAAM,UAAY,KAAOA,EAAM,KAAK,iBAAmBA,EAAM,UAAU,QAAQ,WACjFgJ,GAAOC,EAAQC,EAAWxH,EAAgB1B,EAAM,UAAU,OAAO,EAEnE,OAEI,MAAAqJ,EAAWrJ,EAAM,UAAY,EAAIE,GAA2BF,EAAM,SAAS,EAAIA,EAAM,GACrF3V,EAAQ8e,EAAY,KAAOE,EAC3B,CAAE,EAAGxO,EAAO,EAAGrC,CAAQ,EAAAyQ,EAOvBK,EAASJ,GAAaA,EAAU,EAChCK,EAAO1O,EAAM,OAAS/R,GAAY+R,EAAM,KAAO,GAAKA,EAAM,KAC1D2O,EAAa3O,EAAM,WACnB4O,EAAgB3W,GAAM0W,CAAU,EAChCE,EAAiBF,IAAe1gB,GAAY,IAAM,GAASF,GAWxDc,GAAO+f,EAAe7gB,CAAG,EAY9B,GAVA0gB,GAAU,MAAQA,IAAW9Q,IAC3BxO,GAASsf,CAAM,GACjBC,EAAKD,CAAM,EAAI,KACXI,EAAeJ,CAAM,IACvBE,EAAWF,CAAM,EAAI,OAEdhc,GAAMgc,CAAM,IACrBA,EAAO,MAAQ,OAGfvf,GAAWyO,CAAG,EAChBmE,GAAsBnE,EAAKqC,EAAO,GAAI,CAACxQ,EAAOkf,CAAI,CAAC,MAC9C,CACC,MAAAI,EAAY3f,GAASwO,CAAG,EACxBoR,EAAStc,GAAMkL,CAAG,EACxB,GAAImR,GAAaC,EAAQ,CACvB,MAAMC,EAAQ,IAAM,CAClB,GAAIZ,EAAO,EAAG,CACN,MAAAa,EAAWH,EAAYD,EAAelR,CAAG,EAAIgR,EAAWhR,CAAG,EAAI+Q,EAAK/Q,CAAG,EAAIA,EAAI,MACjF2Q,EACFxf,GAAQmgB,CAAQ,GAAKzgB,GAAOygB,EAAUT,CAAQ,EAEzC1f,GAAQmgB,CAAQ,EAUTA,EAAS,SAAST,CAAQ,GACpCS,EAAS,KAAKT,CAAQ,EAVlBM,GACGnR,GAAG,EAAI,CAAC6Q,CAAQ,EACjBK,EAAelR,CAAG,IACTA,GAAG,EAAI+Q,EAAK/Q,CAAG,KAG5BA,EAAI,MAAQ,CAAC6Q,CAAQ,EACjBJ,EAAO,IAAGM,EAAKN,EAAO,CAAC,EAAIzQ,EAAI,aAMhCmR,GACTJ,EAAK/Q,CAAG,EAAInO,EACRqf,EAAelR,CAAG,IACpBgR,EAAWhR,CAAG,EAAInO,IAEXuf,IACTpR,EAAI,MAAQnO,EACR4e,EAAO,IAAQM,EAAAN,EAAO,CAAC,EAAI5e,GAInC,EACIA,GACFwf,EAAM,GAAK,GACX1G,GAAsB0G,EAAOnI,CAAc,GAErCmI,EAAA,CACR,CAGF,CAEJ,CAuoB4B5d,GAAgB,sBACjBA,GAAc,EAAE,mBA0F3C,MAAMmd,GAAkB5f,GAAM,CAAC,CAACA,EAAE,KAAK,cA4JjC+e,GAAevI,GAAUA,EAAM,KAAK,cAwN1C,SAAS+J,GAAYrJ,EAAM7O,EAAQ,CACXmY,GAAAtJ,EAAM,IAAK7O,CAAM,CACzC,CACA,SAASoY,GAAcvJ,EAAM7O,EAAQ,CACbmY,GAAAtJ,EAAM,KAAM7O,CAAM,CAC1C,CACA,SAASmY,GAAsBtJ,EAAM5O,EAAMD,EAASqY,GAAiB,CACnE,MAAMC,EAAczJ,EAAK,QAAUA,EAAK,MAAQ,IAAM,CACpD,IAAI0J,EAAUvY,EACd,KAAOuY,GAAS,CACd,GAAIA,EAAQ,cACV,OAEFA,EAAUA,EAAQ,OAEpB,OAAO1J,EAAK,IAGd,GADW2J,GAAAvY,EAAMqY,EAAatY,CAAM,EAChCA,EAAQ,CACV,IAAIuY,EAAUvY,EAAO,OACd,KAAAuY,GAAWA,EAAQ,QACpB7B,GAAY6B,EAAQ,OAAO,KAAK,GACZE,GAAAH,EAAarY,EAAMD,EAAQuY,CAAO,EAE1DA,EAAUA,EAAQ,MACpB,CAEJ,CACA,SAASE,GAAsB5J,EAAM5O,EAAMD,EAAQ0Y,EAAe,CAChE,MAAMC,EAAWH,GACfvY,EACA4O,EACA6J,EACA,EAEF,EACAE,GAAY,IAAM,CACTphB,GAAAkhB,EAAczY,CAAI,EAAG0Y,CAAQ,GACnC3Y,CAAM,CACX,CASA,SAASwY,GAAWvY,EAAM4O,EAAM7O,EAASqY,GAAiBQ,EAAU,GAAO,CACzE,GAAI7Y,EAAQ,CACV,MAAMqU,EAAQrU,EAAOC,CAAI,IAAMD,EAAOC,CAAI,EAAI,IACxCqY,EAAczJ,EAAK,QAAUA,EAAK,MAAQ,IAAItN,IAAS,CAC7CrC,GAAA,EACR,MAAA4Z,EAAQC,GAAmB/Y,CAAM,EACjC1F,EAAM2Q,GAA2B4D,EAAM7O,EAAQC,EAAMsB,CAAI,EACzD,OAAAuX,EAAA,EACQ3Z,GAAA,EACP7E,CAAA,GAET,OAAIue,EACFxE,EAAM,QAAQiE,CAAW,EAEzBjE,EAAM,KAAKiE,CAAW,EAEjBA,CAAA,CAOX,CACA,MAAMU,GAAcC,GAAc,CAACpK,EAAM7O,EAASqY,KAAoB,EAChE,CAACa,IAAyBD,IAAc,OAC1CT,GAAWS,EAAW,IAAI1X,IAASsN,EAAK,GAAGtN,CAAI,EAAGvB,CAAM,CAE5D,EACMmZ,GAAgBH,GAAW,IAAI,EAC/B7F,GAAY6F,GAAW,GAAG,EAC1BI,GAAiBJ,GACrB,IACF,EACMK,GAAYL,GAAW,GAAG,EAC1B5F,GAAkB4F,GACtB,KACF,EACMJ,GAAcI,GAAW,IAAI,EAC7BM,GAAmBN,GACvB,IACF,EACMO,GAAoBP,GAAW,KAAK,EACpCQ,GAAkBR,GAAW,KAAK,EACxC,SAASS,GAAgB5K,EAAM7O,EAASqY,GAAiB,CAC5CG,GAAA,KAAM3J,EAAM7O,CAAM,CAC/B,CAEA,MAAM0Z,GAAa,aACbC,GAAa,aACnB,SAASC,IAAiB3e,EAAM4e,EAAoB,CAClD,OAAOC,GAAaJ,GAAYze,EAAM,GAAM4e,CAAkB,GAAK5e,CACrE,CACA,MAAM8e,GAAyB,OAAO,IAAI,OAAO,EACjD,SAASC,IAAwBC,EAAW,CACtC,OAAA9hB,GAAS8hB,CAAS,EACbH,GAAaJ,GAAYO,EAAW,EAAK,GAAKA,EAE9CA,GAAaF,EAExB,CACA,SAASG,IAAiBjf,EAAM,CACvB,OAAA6e,GAAaH,GAAY1e,CAAI,CACtC,CACA,SAAS6e,GAAa7Z,EAAMhF,EAAMkf,EAAc,GAAMN,EAAqB,GAAO,CAChF,MAAM9O,EAAW0C,IAA4B4K,GAC7C,GAAItN,EAAU,CACZ,MAAMqP,EAAYrP,EAAS,KAC3B,GAAI9K,IAASyZ,GAAY,CACvB,MAAMW,EAAWC,GACfF,EACA,EACF,EACA,GAAIC,IAAaA,IAAapf,GAAQof,IAAaphB,GAASgC,CAAI,GAAKof,IAAa/gB,GAAWL,GAASgC,CAAI,CAAC,GAClG,OAAAmf,CACT,CAEI,MAAA9f,EAGJigB,GAAQxP,EAAS9K,CAAI,GAAKma,EAAUna,CAAI,EAAGhF,CAAI,GAC/Csf,GAAQxP,EAAS,WAAW9K,CAAI,EAAGhF,CAAI,EAErC,OAACX,GAAOuf,EACHO,EAOF9f,CAAA,CAMX,CACA,SAASigB,GAAQC,EAAUvf,EAAM,CAC/B,OAAOuf,IAAaA,EAASvf,CAAI,GAAKuf,EAASvhB,GAASgC,CAAI,CAAC,GAAKuf,EAASlhB,GAAWL,GAASgC,CAAI,CAAC,CAAC,EACvG,CAEA,SAASwf,IAAWtS,EAAQuS,EAAY3hB,EAAO4J,EAAO,CAChD,IAAA7H,EACE,MAAA6f,EAAS5hB,EACT6hB,EAAgB9iB,GAAQqQ,CAAM,EAChC,GAAAyS,GAAiBziB,GAASgQ,CAAM,EAAG,CAC/B,MAAA0S,EAAwBD,GAAiBpU,GAAW2B,CAAM,EAChE,IAAI5F,EAAY,GACZsY,IACUtY,EAAA,CAACrB,GAAUiH,CAAM,EAC7BA,EAAS/G,GAAiB+G,CAAM,GAE5BrN,EAAA,IAAI,MAAMqN,EAAO,MAAM,EAC7B,QAASxQ,EAAI,EAAG0E,EAAI8L,EAAO,OAAQxQ,EAAI0E,EAAG1E,IACxCmD,EAAInD,CAAC,EAAI+iB,EACPnY,EAAYpB,GAAWgH,EAAOxQ,CAAC,CAAC,EAAIwQ,EAAOxQ,CAAC,EAC5CA,EACA,OACAgjB,CACF,CACF,SACS,OAAOxS,GAAW,SAAU,CAI/BrN,EAAA,IAAI,MAAMqN,CAAM,EACtB,QAASxQ,EAAI,EAAGA,EAAIwQ,EAAQxQ,IACtBmD,EAAAnD,CAAC,EAAI+iB,EAAW/iB,EAAI,EAAGA,EAAG,OAAQgjB,CAAmB,CAC3D,SACStiB,GAAS8P,CAAM,EACpB,GAAAA,EAAO,OAAO,QAAQ,EACxBrN,EAAM,MAAM,KACVqN,EACA,CAAC5N,EAAM5C,IAAM+iB,EAAWngB,EAAM5C,EAAG,OAAQgjB,CAAmB,CAC9D,MACK,CACC,MAAAG,EAAO,OAAO,KAAK3S,CAAM,EACzBrN,EAAA,IAAI,MAAMggB,EAAK,MAAM,EAC3B,QAASnjB,EAAI,EAAG0E,EAAIye,EAAK,OAAQnjB,EAAI0E,EAAG1E,IAAK,CACrC,MAAAZ,EAAM+jB,EAAKnjB,CAAC,EACdmD,EAAAnD,CAAC,EAAI+iB,EAAWvS,EAAOpR,CAAG,EAAGA,EAAKY,EAAGgjB,CAAmB,EAC9D,MAGF7f,EAAM,CAAC,EAKF,OAAAA,CACT,CAoBA,SAASigB,IAAWrH,EAAOzY,EAAME,EAAQ,CAAC,EAAG6f,EAAUC,EAAW,CAC5D,GAAAxN,GAAyB,IAAMA,GAAyB,QAAU8J,GAAe9J,GAAyB,MAAM,GAAKA,GAAyB,OAAO,GACnJ,OAAAxS,IAAS,YAAWE,EAAM,KAAOF,GAC9BigB,GAAa,EAAAC,GAClBpE,GACA,KACA,CAACqE,GAAY,OAAQjgB,EAAO6f,GAAYA,EAAU,EAAC,EACnD,EACF,EAEE,IAAAK,EAAO3H,EAAMzY,CAAI,EAOjBogB,GAAQA,EAAK,KACfA,EAAK,GAAK,IAEFH,GAAA,EACV,MAAMI,EAAmBD,GAAQE,GAAiBF,EAAKlgB,CAAK,CAAC,EACvDqgB,EAAUrgB,EAAM,KAEtBmgB,GAAoBA,EAAiB,IAC/BG,EAAWN,GACfpE,GACA,CACE,KAAMyE,GAAW,CAACpjB,GAASojB,CAAO,EAAIA,EAAU,IAAIvgB,CAAI,KACvD,CAACqgB,GAAoBN,EAAW,MAAQ,GAC3C,EACAM,IAAqBN,EAAWA,EAAS,EAAI,IAC7CM,GAAoB5H,EAAM,IAAM,EAAI,GAAK,EAC3C,EACI,OAACuH,GAAaQ,EAAS,UACzBA,EAAS,aAAe,CAACA,EAAS,QAAU,IAAI,GAE9CJ,GAAQA,EAAK,KACfA,EAAK,GAAK,IAELI,CACT,CACA,SAASF,GAAiBG,EAAQ,CACzB,OAAAA,EAAO,KAAMxJ,GACbyJ,GAAQzJ,CAAK,EACd,EAAAA,EAAM,OAASoC,IACfpC,EAAM,OAAS6E,IAAY,CAACwE,GAAiBrJ,EAAM,QAAQ,GAFnC,EAK7B,EAAIwJ,EAAS,IAChB,CAcA,MAAME,GAAqBjkB,GACpBA,EACDkkB,GAAoBlkB,CAAC,EAAU0W,GAA2B1W,CAAC,EACxDikB,GAAkBjkB,EAAE,MAAM,EAFlB,KAIXmkB,GAGmCvkB,GAAA,OAAO,OAAO,IAAI,EAAG,CAC1D,EAAII,GAAMA,EACV,IAAMA,GAAMA,EAAE,MAAM,GACpB,MAAQA,GAAMA,EAAE,KAChB,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,MAAQA,GAA4EA,EAAE,KACtF,QAAUA,GAAMikB,GAAkBjkB,EAAE,MAAM,EAC1C,MAAQA,GAAMikB,GAAkBjkB,EAAE,IAAI,EACtC,MAAQA,GAAMA,EAAE,GAChB,MAAQA,GAAMA,EAAE,KAChB,SAAWA,GAA4BokB,GAAqBpkB,CAAC,EAC7D,aAAeA,GAAMA,EAAE,IAAMA,EAAE,EAAI,IAAM,CACvCmV,GAASnV,EAAE,MAAM,IAEnB,UAAYA,GAAMA,EAAE,IAAMA,EAAE,EAAIyU,GAAS,KAAKzU,EAAE,KAAK,GACrD,OAASA,GAA4BqkB,GAAc,KAAKrkB,CAAC,CAC1D,GAGGskB,GAAkB,CAAC/I,EAAOnc,IAAQmc,IAAUjc,IAAa,CAACic,EAAM,iBAAmBrb,GAAOqb,EAAOnc,CAAG,EACpGmlB,GAA8B,CAClC,IAAI,CAAE,EAAGnR,CAAA,EAAYhU,EAAK,CACxB,GAAIA,IAAQ,WACH,SAEH,MAAE,IAAA8W,EAAK,WAAA8J,EAAY,KAAAwE,EAAM,MAAAhhB,EAAO,YAAAihB,EAAa,KAAAnc,EAAM,WAAAoc,GAAetR,EAIpE,IAAAuR,EACA,GAAAvlB,EAAI,CAAC,IAAM,IAAK,CACZ,MAAAkD,EAAImiB,EAAYrlB,CAAG,EACzB,GAAIkD,IAAM,OACR,OAAQA,EAAG,CACT,IAAK,GACH,OAAO0d,EAAW5gB,CAAG,EACvB,IAAK,GACH,OAAOolB,EAAKplB,CAAG,EACjB,IAAK,GACH,OAAO8W,EAAI9W,CAAG,EAChB,IAAK,GACH,OAAOoE,EAAMpE,CAAG,MAEX,IAAAklB,GAAgBtE,EAAY5gB,CAAG,EACxC,OAAAqlB,EAAYrlB,CAAG,EAAI,EACZ4gB,EAAW5gB,CAAG,KACZolB,IAASllB,IAAaY,GAAOskB,EAAMplB,CAAG,EAC/C,OAAAqlB,EAAYrlB,CAAG,EAAI,EACZolB,EAAKplB,CAAG,EACjB,IAGGulB,EAAkBvR,EAAS,aAAa,CAAC,IAAMlT,GAAOykB,EAAiBvlB,CAAG,EAE3E,OAAAqlB,EAAYrlB,CAAG,EAAI,EACZoE,EAAMpE,CAAG,KACP8W,IAAQ5W,IAAaY,GAAOgW,EAAK9W,CAAG,EAC7C,OAAAqlB,EAAYrlB,CAAG,EAAI,EACZ8W,EAAI9W,CAAG,EACmBwlB,KACjCH,EAAYrlB,CAAG,EAAI,GACrB,CAEI,MAAAylB,EAAeV,GAAoB/kB,CAAG,EAC5C,IAAI0lB,EAAWC,EACf,GAAIF,EACF,OAAIzlB,IAAQ,UACJgJ,GAAAgL,EAAS,MAAO,MAAO,EAAE,EAK1ByR,EAAazR,CAAQ,EAC9B,IAEG0R,EAAYxc,EAAK,gBAAkBwc,EAAYA,EAAU1lB,CAAG,GAEtD,OAAA0lB,KACE5O,IAAQ5W,IAAaY,GAAOgW,EAAK9W,CAAG,EAC7C,OAAAqlB,EAAYrlB,CAAG,EAAI,EACZ8W,EAAI9W,CAAG,EAChB,GAEE2lB,EAAmBL,EAAW,OAAO,iBAAkBxkB,GAAO6kB,EAAkB3lB,CAAG,EAGjF,OAAO2lB,EAAiB3lB,CAAG,CAiBjC,EACA,IAAI,CAAE,EAAGgU,CAAS,EAAGhU,EAAKyB,EAAO,CAC/B,KAAM,CAAE,KAAA2jB,EAAM,WAAAxE,EAAY,IAAA9J,CAAQ,EAAA9C,EAC9B,OAAAkR,GAAgBtE,EAAY5gB,CAAG,GACjC4gB,EAAW5gB,CAAG,EAAIyB,EACX,IAIE2jB,IAASllB,IAAaY,GAAOskB,EAAMplB,CAAG,GAC/ColB,EAAKplB,CAAG,EAAIyB,EACL,IACEX,GAAOkT,EAAS,MAAOhU,CAAG,GAIjCA,EAAI,CAAC,IAAM,KAAOA,EAAI,MAAM,CAAC,IAAKgU,EAI7B,IASL8C,EAAI9W,CAAG,EAAIyB,EAGR,GACT,EACA,IAAI,CACF,EAAG,CAAE,KAAA2jB,EAAM,WAAAxE,EAAY,YAAAyE,EAAa,IAAAvO,EAAK,WAAAwO,EAAY,aAAAM,CAAa,GACjE5lB,EAAK,CACF,IAAAulB,EACJ,MAAO,CAAC,CAACF,EAAYrlB,CAAG,GAAKolB,IAASllB,IAAaY,GAAOskB,EAAMplB,CAAG,GAAKklB,GAAgBtE,EAAY5gB,CAAG,IAAMulB,EAAkBK,EAAa,CAAC,IAAM9kB,GAAOykB,EAAiBvlB,CAAG,GAAKc,GAAOgW,EAAK9W,CAAG,GAAKc,GAAOikB,GAAqB/kB,CAAG,GAAKc,GAAOwkB,EAAW,OAAO,iBAAkBtlB,CAAG,CAC3R,EACA,eAAeiJ,EAAQjJ,EAAK6lB,EAAY,CAClC,OAAAA,EAAW,KAAO,KACb5c,EAAA,EAAE,YAAYjJ,CAAG,EAAI,EACnBc,GAAO+kB,EAAY,OAAO,GACnC,KAAK,IAAI5c,EAAQjJ,EAAK6lB,EAAW,MAAO,IAAI,EAEvC,QAAQ,eAAe5c,EAAQjJ,EAAK6lB,CAAU,EAEzD,EA+HA,SAASC,KAAW,CAClB,OAAOC,GAAa,OACtB,CACA,SAASC,KAAW,CAClB,OAAOD,GAAa,OACtB,CACA,SAASA,IAAa,CACpB,MAAMnlB,EAAIgc,GAAmB,EAI7B,OAAOhc,EAAE,eAAiBA,EAAE,aAAeqlB,GAAmBrlB,CAAC,EACjE,CACA,SAASslB,GAAsB9hB,EAAO,CAC7B,OAAArD,GAAQqD,CAAK,EAAIA,EAAM,OAC5B,CAACX,EAAY6R,KAAO7R,EAAW6R,CAAC,EAAI,KAAM7R,GAC1C,EAAC,EACCW,CACN,CACA,SAAS+hB,IAAclc,EAAKmc,EAAU,CAC9B,MAAAhiB,EAAQ8hB,GAAsBjc,CAAG,EACvC,UAAWjK,KAAOomB,EAAU,CACtB,GAAApmB,EAAI,WAAW,QAAQ,EAAG,SAC1B,IAAAqmB,EAAMjiB,EAAMpE,CAAG,EACfqmB,EACEtlB,GAAQslB,CAAG,GAAKllB,GAAWklB,CAAG,EAC1BA,EAAAjiB,EAAMpE,CAAG,EAAI,CAAE,KAAMqmB,EAAK,QAASD,EAASpmB,CAAG,CAAE,EAEnDqmB,EAAA,QAAUD,EAASpmB,CAAG,EAEnBqmB,IAAQ,OACjBA,EAAMjiB,EAAMpE,CAAG,EAAI,CAAE,QAASomB,EAASpmB,CAAG,CAAE,GAI1CqmB,GAAOD,EAAS,UAAUpmB,CAAG,EAAE,IACjCqmB,EAAI,YAAc,GACpB,CAEK,OAAAjiB,CACT,CACA,SAASkiB,IAAY9P,EAAGC,EAAG,CACzB,MAAI,CAACD,GAAK,CAACC,EAAUD,GAAKC,EACtB1V,GAAQyV,CAAC,GAAKzV,GAAQ0V,CAAC,EAAUD,EAAE,OAAOC,CAAC,EACxCjW,GAAO,GAAI0lB,GAAsB1P,CAAC,EAAG0P,GAAsBzP,CAAC,CAAC,CACtE,CAyCA,IAAI+O,GAAoB,GACxB,SAASe,GAAavS,EAAU,CACxB,MAAA3B,EAAU2S,GAAqBhR,CAAQ,EACvCwS,EAAaxS,EAAS,MACtB8C,EAAM9C,EAAS,IACDwR,GAAA,GAChBnT,EAAQ,cACD4M,GAAA5M,EAAQ,aAAc2B,EAAU,IAAI,EAEzC,MAEJ,KAAMyS,EACN,SAAUC,EACV,QAAAC,EACA,MAAOC,EACP,QAASC,EACT,OAAQC,EAER,QAAAC,EACA,YAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAAC,EACA,UAAAC,EACA,OAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,eAAAC,EAEA,OAAAC,EACA,aAAAC,EAEA,WAAAC,EACA,WAAA5Q,EACA,QAAA6Q,CAAA,EACE7V,EAaJ,GAHIyU,GACgBqB,GAAArB,EAAehQ,EAVqE,IAUxC,EAE5D6P,EACF,UAAW3mB,KAAO2mB,EAAS,CACnB,MAAAyB,GAAgBzB,EAAQ3mB,CAAG,EAC7BmB,GAAWinB,EAAa,IASxBtR,EAAI9W,CAAG,EAAIooB,GAAc,KAAK5B,CAAU,EAS5C,CAGJ,GAAIC,EAAa,CAMf,MAAMrB,EAAOqB,EAAY,KAAKD,EAAYA,CAAU,EAM/CllB,GAAS8jB,CAAI,IAGPpR,EAAA,KAAOpH,GAASwY,CAAI,EAc/B,CAGF,GADoBI,GAAA,GAChBkB,EACF,UAAW1mB,KAAO0mB,EAAiB,CAC3B,MAAAL,GAAMK,EAAgB1mB,CAAG,EACzBwO,GAAMrN,GAAWklB,EAAG,EAAIA,GAAI,KAAKG,EAAYA,CAAU,EAAIrlB,GAAWklB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAKG,EAAYA,CAAU,EAAIpmB,GAIxHqQ,EAAM,CAACtP,GAAWklB,EAAG,GAAKllB,GAAWklB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAKG,CAAU,EAIzEpmB,GACEgC,EAAIsF,GAAS,CACjB,IAAA8G,GACA,IAAAiC,CAAA,CACD,EACM,sBAAeqG,EAAK9W,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAMoC,EAAE,MACb,IAAM6C,GAAM7C,EAAE,MAAQ6C,CAAA,CACvB,CAGD,CAGJ,GAAI2hB,EACF,UAAW5mB,KAAO4mB,EAChByB,GAAczB,EAAa5mB,CAAG,EAAG8W,EAAK0P,EAAYxmB,CAAG,EAGzD,GAAI6mB,EAAgB,CAClB,MAAMyB,EAAWnnB,GAAW0lB,CAAc,EAAIA,EAAe,KAAKL,CAAU,EAAIK,EAChF,QAAQ,QAAQyB,CAAQ,EAAE,QAAStoB,IAAQ,CACjCuoB,GAAAvoB,GAAKsoB,EAAStoB,EAAG,CAAC,EAC3B,EAEC+mB,GACO9H,GAAA8H,EAAS/S,EAAU,GAAG,EAExB,SAAAwU,EAAsBC,EAAU3Q,GAAM,CACzC/W,GAAQ+W,EAAI,EACTA,GAAA,QAAS4Q,IAAUD,EAASC,GAAM,KAAKlC,CAAU,CAAC,CAAC,EAC/C1O,IACA2Q,EAAA3Q,GAAK,KAAK0O,CAAU,CAAC,CAChC,CAcE,GAZJgC,EAAsBpG,GAAe4E,CAAW,EAChDwB,EAAsBpM,GAAW6K,CAAO,EACxCuB,EAAsBnG,GAAgB6E,CAAY,EAClDsB,EAAsBlG,GAAW6E,CAAO,EACxCqB,EAAsBrH,GAAaiG,CAAS,EAC5CoB,EAAsBnH,GAAegG,CAAW,EAChDmB,EAAsB9F,GAAiBmF,CAAa,EACpDW,EAAsB/F,GAAiBkF,CAAa,EACpDa,EAAsBhG,GAAmBoF,CAAe,EACxDY,EAAsBnM,GAAiBkL,CAAa,EACpDiB,EAAsB3G,GAAa4F,CAAS,EAC5Ce,EAAsBjG,GAAkBuF,CAAc,EAClD/mB,GAAQgnB,CAAM,EAChB,GAAIA,EAAO,OAAQ,CACjB,MAAMY,EAAU3U,EAAS,UAAYA,EAAS,QAAU,IACjD+T,EAAA,QAAS/nB,IAAQ,CACf,sBAAe2oB,EAAS3oB,GAAK,CAClC,IAAK,IAAMwmB,EAAWxmB,EAAG,EACzB,IAAMC,IAAQumB,EAAWxmB,EAAG,EAAIC,EAAA,CACjC,EACF,OACS+T,EAAS,UACnBA,EAAS,QAAU,CAAC,GAGpB0T,GAAU1T,EAAS,SAAW5T,KAChC4T,EAAS,OAAS0T,GAEhBM,GAAgB,OAClBhU,EAAS,aAAegU,GAEtBC,MAAqB,WAAaA,GAClC5Q,MAAqB,WAAaA,GAClCyQ,GACF3H,GAAkBnM,CAAQ,CAE9B,CACA,SAASmU,GAAkBrB,EAAehQ,EAAK8R,EAA2BxoB,GAAM,CAC1EW,GAAQ+lB,CAAa,IACvBA,EAAgB+B,GAAgB/B,CAAa,GAE/C,UAAW9mB,KAAO8mB,EAAe,CACzB,MAAAT,EAAMS,EAAc9mB,CAAG,EACzB,IAAA4hB,EACAtgB,GAAS+kB,CAAG,EACV,YAAaA,EACJzE,EAAAkH,GACTzC,EAAI,MAAQrmB,EACZqmB,EAAI,QACJ,EACF,EAEWzE,EAAAkH,GAAOzC,EAAI,MAAQrmB,CAAG,EAGnC4hB,EAAWkH,GAAOzC,CAAG,EAEnB3hB,GAAMkd,CAAQ,EACT,sBAAe9K,EAAK9W,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAM4hB,EAAS,MACpB,IAAM3c,GAAM2c,EAAS,MAAQ3c,CAAA,CAC9B,EAED6R,EAAI9W,CAAG,EAAI4hB,CAIb,CAEJ,CACA,SAAS3C,GAASnH,EAAM9D,EAAU9K,EAAM,CACtCgL,GACEnT,GAAQ+W,CAAI,EAAIA,EAAK,IAAKiR,GAAMA,EAAE,KAAK/U,EAAS,KAAK,CAAC,EAAI8D,EAAK,KAAK9D,EAAS,KAAK,EAClFA,EACA9K,CACF,CACF,CACA,SAASmf,GAAcpe,EAAK6M,EAAK0P,EAAYxmB,EAAK,CAC5C,IAAA2R,EAAS3R,EAAI,SAAS,GAAG,EAAIgpB,GAAiBxC,EAAYxmB,CAAG,EAAI,IAAMwmB,EAAWxmB,CAAG,EACrF,GAAAoB,GAAS6I,CAAG,EAAG,CACX,MAAAgf,EAAUnS,EAAI7M,CAAG,EACnB9I,GAAW8nB,CAAO,GAElB9W,GAAMR,EAAQsX,CAAO,CAIzB,SACS9nB,GAAW8I,CAAG,EAErBkI,GAAMR,EAAQ1H,EAAI,KAAKuc,CAAU,CAAC,UAE3BllB,GAAS2I,CAAG,EACjB,GAAAlJ,GAAQkJ,CAAG,EACTA,EAAA,QAAS0F,GAAM0Y,GAAc1Y,EAAGmH,EAAK0P,EAAYxmB,CAAG,CAAC,MACpD,CACL,MAAMipB,EAAU9nB,GAAW8I,EAAI,OAAO,EAAIA,EAAI,QAAQ,KAAKuc,CAAU,EAAI1P,EAAI7M,EAAI,OAAO,EACpF9I,GAAW8nB,CAAO,GACd9W,GAAAR,EAAQsX,EAAShf,CAAG,CAG5B,CAKN,CACA,SAAS+a,GAAqBhR,EAAU,CACtC,MAAMkV,EAAOlV,EAAS,KAChB,CAAE,OAAAmV,EAAQ,QAASC,CAAmB,EAAAF,EACtC,CACJ,OAAQG,EACR,aAAcrnB,EACd,OAAQ,CAAE,sBAAAsnB,CAAsB,GAC9BtV,EAAS,WACP4P,EAAS5hB,EAAM,IAAIknB,CAAI,EACzB,IAAAK,EACJ,OAAI3F,EACS2F,EAAA3F,EACF,CAACyF,EAAa,QAAU,CAACF,GAAU,CAACC,EAEhCG,EAAAL,GAGbK,EAAW,CAAC,EACRF,EAAa,QACFA,EAAA,QACVG,GAAMC,GAAaF,EAAUC,EAAGF,EAAuB,EAAI,CAC9D,EAEWG,GAAAF,EAAUL,EAAMI,CAAqB,GAEhDhoB,GAAS4nB,CAAI,GACTlnB,EAAA,IAAIknB,EAAMK,CAAQ,EAEnBA,CACT,CACA,SAASE,GAAaC,EAAIC,EAAMC,EAAQC,EAAU,GAAO,CACvD,KAAM,CAAE,OAAAV,EAAQ,QAASC,CAAmB,EAAAO,EACxCP,GACWK,GAAAC,EAAIN,EAAgBQ,EAAQ,EAAI,EAE3CT,GACKA,EAAA,QACJK,GAAMC,GAAaC,EAAIF,EAAGI,EAAQ,EAAI,CACzC,EAEF,UAAW5pB,KAAO2pB,EACZ,KAAAE,GAAW7pB,IAAQ,UAIhB,CACL,MAAM8pB,EAAQC,GAA0B/pB,CAAG,GAAK4pB,GAAUA,EAAO5pB,CAAG,EACpE0pB,EAAG1pB,CAAG,EAAI8pB,EAAQA,EAAMJ,EAAG1pB,CAAG,EAAG2pB,EAAK3pB,CAAG,CAAC,EAAI2pB,EAAK3pB,CAAG,EAGnD,OAAA0pB,CACT,CACA,MAAMK,GAA4B,CAChC,KAAMC,GACN,MAAOC,GACP,MAAOA,GAEP,QAASC,GACT,SAAUA,GAEV,aAAcC,GACd,QAASA,GACT,YAAaA,GACb,QAASA,GACT,aAAcA,GACd,QAASA,GACT,cAAeA,GACf,cAAeA,GACf,UAAWA,GACX,UAAWA,GACX,UAAWA,GACX,YAAaA,GACb,cAAeA,GACf,eAAgBA,GAEhB,WAAYD,GACZ,WAAYA,GAEZ,MAAOE,GAEP,QAASJ,GACT,OAAQK,EACV,EACA,SAASL,GAAYN,EAAIC,EAAM,CAC7B,OAAKA,EAGAD,EAGE,UAAwB,CACrB,OAAAlpB,GACNW,GAAWuoB,CAAE,EAAIA,EAAG,KAAK,KAAM,IAAI,EAAIA,EACvCvoB,GAAWwoB,CAAI,EAAIA,EAAK,KAAK,KAAM,IAAI,EAAIA,CAC7C,CACF,EAPSA,EAHAD,CAWX,CACA,SAASW,GAAYX,EAAIC,EAAM,CAC7B,OAAOO,GAAmBrB,GAAgBa,CAAE,EAAGb,GAAgBc,CAAI,CAAC,CACtE,CACA,SAASd,GAAgB5e,EAAK,CACxB,GAAAlJ,GAAQkJ,CAAG,EAAG,CAChB,MAAM1G,EAAM,CAAC,EACb,QAAS3C,EAAI,EAAGA,EAAIqJ,EAAI,OAAQrJ,IAC9B2C,EAAI0G,EAAIrJ,CAAC,CAAC,EAAIqJ,EAAIrJ,CAAC,EAEd,OAAA2C,CAAA,CAEF,OAAA0G,CACT,CACA,SAASkgB,GAAaT,EAAIC,EAAM,CAC9B,OAAOD,EAAK,CAAC,GAAG,IAAI,IAAI,GAAG,OAAOA,EAAIC,CAAI,CAAC,CAAC,EAAIA,CAClD,CACA,SAASO,GAAmBR,EAAIC,EAAM,CAC7B,OAAAD,EAAKlpB,GAA8B,cAAO,IAAI,EAAGkpB,EAAIC,CAAI,EAAIA,CACtE,CACA,SAASM,GAAyBP,EAAIC,EAAM,CAC1C,OAAID,EACE3oB,GAAQ2oB,CAAE,GAAK3oB,GAAQ4oB,CAAI,EACtB,CAAC,GAAmB,IAAI,IAAI,CAAC,GAAGD,EAAI,GAAGC,CAAI,CAAC,CAAC,EAE/CnpB,GACW,OAAO,OAAO,IAAI,EAClC0lB,GAAsBwD,CAAE,EACxBxD,GAAsByD,GAAsB,CAAE,EAChD,EAEOA,CAEX,CACA,SAASS,GAAkBV,EAAIC,EAAM,CAC/B,IAACD,EAAW,OAAAC,EACZ,IAACA,EAAa,OAAAD,EAClB,MAAMY,EAAS9pB,GAAuB,OAAO,OAAO,IAAI,EAAGkpB,CAAE,EAC7D,UAAW1pB,KAAO2pB,EACTW,EAAAtqB,CAAG,EAAImqB,GAAaT,EAAG1pB,CAAG,EAAG2pB,EAAK3pB,CAAG,CAAC,EAExC,OAAAsqB,CACT,CAEA,SAASC,IAAmB,CACnB,OACL,IAAK,KACL,OAAQ,CACN,YAAalqB,GACb,YAAa,GACb,iBAAkB,CAAC,EACnB,sBAAuB,CAAC,EACxB,aAAc,OACd,YAAa,OACb,gBAAiB,EACnB,EACA,OAAQ,CAAC,EACT,WAAY,CAAC,EACb,WAAY,CAAC,EACb,SAAiC,cAAO,IAAI,EAC5C,iBAAkC,QAClC,eAAgC,QAChC,eAAgC,OAClC,CACF,CACA,IAAImqB,GAAQ,EACZ,SAASC,GAAa/C,EAAQgD,EAAS,CACrC,OAAO,SAAmBC,EAAeC,EAAY,KAAM,CACpDzpB,GAAWwpB,CAAa,IACXA,EAAAnqB,GAAO,CAAC,EAAGmqB,CAAa,GAEtCC,GAAa,MAAQ,CAACtpB,GAASspB,CAAS,IAE9BA,EAAA,MAEd,MAAMC,EAAUN,GAAiB,EAC3BO,MAAuC,QACvCC,EAAmB,CAAC,EAC1B,IAAIC,EAAY,GACV,MAAAC,EAAMJ,EAAQ,IAAM,CACxB,KAAML,KACN,WAAYG,EACZ,OAAQC,EACR,WAAY,KACZ,SAAUC,EACV,UAAW,aACXK,GACA,IAAI,QAAS,CACX,OAAOL,EAAQ,MACjB,EACA,IAAI,OAAO5lB,EAAG,CAMd,EACA,IAAIkmB,KAAW9Y,EAAS,CAClB,OAAAyY,EAAiB,IAAIK,CAAM,IAEpBA,GAAUhqB,GAAWgqB,EAAO,OAAO,GAC5CL,EAAiB,IAAIK,CAAM,EACpBA,EAAA,QAAQF,EAAK,GAAG5Y,CAAO,GACrBlR,GAAWgqB,CAAM,IAC1BL,EAAiB,IAAIK,CAAM,EACpBA,EAAAF,EAAK,GAAG5Y,CAAO,IAMjB4Y,CACT,EACA,MAAMG,EAAO,CAET,OAAKP,EAAQ,OAAO,SAASO,CAAK,GACxBP,EAAA,OAAO,KAAKO,CAAK,EAStBH,CACT,EACA,UAAU/mB,EAAMgf,EAAW,CAIzB,OAAKA,GAMG2H,EAAA,WAAW3mB,CAAI,EAAIgf,EACpB+H,GANEJ,EAAQ,WAAW3mB,CAAI,CAOlC,EACA,UAAUA,EAAMmnB,EAAW,CAIzB,OAAKA,GAMGR,EAAA,WAAW3mB,CAAI,EAAImnB,EACpBJ,GANEJ,EAAQ,WAAW3mB,CAAI,CAOlC,EACA,MAAMonB,EAAeC,EAAWxS,EAAW,CACzC,GAAI,CAACiS,EAAW,CAOd,MAAM5T,EAAQ6T,EAAI,UAAY5G,GAAYsG,EAAeC,CAAS,EAClE,OAAAxT,EAAM,WAAayT,EACf9R,IAAc,GACJA,EAAA,MACHA,IAAc,KACXA,EAAA,QAWVwS,GAAab,EACfA,EAAQtT,EAAOkU,CAAa,EAErB5D,EAAAtQ,EAAOkU,EAAevS,CAAS,EAE5BiS,EAAA,GACZC,EAAI,WAAaK,EACjBA,EAAc,YAAcL,EAKrB3T,GAA2BF,EAAM,SAAS,EAOrD,EACA,UAAUpF,EAAW,CAMnB+Y,EAAiB,KAAK/Y,CAAS,CACjC,EACA,SAAU,CACJgZ,IACF9W,GACE6W,EACAE,EAAI,UACJ,EACF,EACOvD,EAAA,KAAMuD,EAAI,UAAU,EAK3B,OAAOA,EAAI,WAAW,YAI1B,EACA,QAAQjrB,EAAKyB,EAAO,CAMV,OAAAopB,EAAA,SAAS7qB,CAAG,EAAIyB,EACjBwpB,CACT,EACA,eAAelpB,EAAI,CACjB,MAAMypB,EAAUC,GACHA,GAAAR,EACT,IACF,OAAOlpB,EAAG,SACV,CACa0pB,GAAAD,CAAA,CACf,CAEJ,EACO,OAAAP,CACT,CACF,CACA,IAAIQ,GAAa,KAEjB,SAASlD,GAAQvoB,EAAKyB,EAAO,CAC3B,GAAK6f,GAIE,CACL,IAAIgH,EAAWhH,GAAgB,SAC/B,MAAMoK,EAAiBpK,GAAgB,QAAUA,GAAgB,OAAO,SACpEoK,IAAmBpD,IACrBA,EAAWhH,GAAgB,SAAW,OAAO,OAAOoK,CAAc,GAEpEpD,EAAStoB,CAAG,EAAIyB,CAAA,CAEpB,CACA,SAASqnB,GAAO9oB,EAAKqR,EAAcsa,EAAwB,GAAO,CAChE,MAAM3X,EAAWsN,IAAmB5K,GACpC,GAAI1C,GAAYyX,GAAY,CAC1B,MAAMnD,EAAWmD,GAAaA,GAAW,SAAS,SAAWzX,EAAWA,EAAS,QAAU,KAAOA,EAAS,MAAM,YAAcA,EAAS,MAAM,WAAW,SAAWA,EAAS,OAAO,SAAW,OAC3L,GAAAsU,GAAYtoB,KAAOsoB,EACrB,OAAOA,EAAStoB,CAAG,EACrB,GAAW,UAAU,OAAS,EACrB,OAAA2rB,GAAyBxqB,GAAWkQ,CAAY,EAAIA,EAAa,KAAK2C,GAAYA,EAAS,KAAK,EAAI3C,CAG7G,CAIJ,CAKA,MAAMua,GAAsB,CAAC,EACvBC,GAAuB,IAAM,OAAO,OAAOD,EAAmB,EAC9DE,GAAoB/oB,GAAQ,OAAO,eAAeA,CAAG,IAAM6oB,GAEjE,SAASG,GAAU/X,EAAU+I,EAAUiP,EAAYxa,EAAQ,GAAO,CAChE,MAAMpN,EAAQ,CAAC,EACT6nB,EAAQJ,GAAqB,EAC1B7X,EAAA,cAAuC,cAAO,IAAI,EAC9CkY,GAAAlY,EAAU+I,EAAU3Y,EAAO6nB,CAAK,EAC7C,UAAWjsB,KAAOgU,EAAS,aAAa,CAAC,EACjChU,KAAOoE,IACXA,EAAMpE,CAAG,EAAI,QAMbgsB,EACFhY,EAAS,MAAQxC,EAAQpN,EAAQ8K,GAAgB9K,CAAK,EAEjD4P,EAAS,KAAK,MAGjBA,EAAS,MAAQ5P,EAFjB4P,EAAS,MAAQiY,EAKrBjY,EAAS,MAAQiY,CACnB,CAOA,SAASE,GAAYnY,EAAU+I,EAAUqP,EAAcnT,EAAW,CAC1D,MACJ,MAAA7U,EACA,MAAA6nB,EACA,MAAO,CAAE,UAAAI,CAAU,GACjBrY,EACEsY,EAAkBpiB,GAAM9F,CAAK,EAC7B,CAACiO,CAAO,EAAI2B,EAAS,aAC3B,IAAIuY,EAAkB,GACtB,IAI+EtT,GAAaoT,EAAY,IAAM,EAAEA,EAAY,KAE1H,GAAIA,EAAY,EAAG,CACX,MAAAG,EAAgBxY,EAAS,MAAM,aACrC,QAASpT,EAAI,EAAGA,EAAI4rB,EAAc,OAAQ5rB,IAAK,CACzC,IAAAZ,EAAMwsB,EAAc5rB,CAAC,EACzB,GAAI6rB,GAAezY,EAAS,aAAchU,CAAG,EAC3C,SAEI,MAAAyB,EAAQsb,EAAS/c,CAAG,EAC1B,GAAIqS,EACE,GAAAvR,GAAOmrB,EAAOjsB,CAAG,EACfyB,IAAUwqB,EAAMjsB,CAAG,IACrBisB,EAAMjsB,CAAG,EAAIyB,EACK8qB,EAAA,QAEf,CACC,MAAAG,EAAexqB,GAASlC,CAAG,EACjCoE,EAAMsoB,CAAY,EAAIC,GACpBta,EACAia,EACAI,EACAjrB,EACAuS,EACA,EACF,OAGEvS,IAAUwqB,EAAMjsB,CAAG,IACrBisB,EAAMjsB,CAAG,EAAIyB,EACK8qB,EAAA,GAEtB,CACF,MAEG,CACDL,GAAalY,EAAU+I,EAAU3Y,EAAO6nB,CAAK,IAC7BM,EAAA,IAEhB,IAAAK,EACJ,UAAW5sB,KAAOssB,GACZ,CAACvP,GACL,CAACjc,GAAOic,EAAU/c,CAAG,KAEnB4sB,EAAWtqB,GAAUtC,CAAG,KAAOA,GAAO,CAACc,GAAOic,EAAU6P,CAAQ,MAC5Dva,EACE+Z,IACHA,EAAapsB,CAAG,IAAM,QACvBosB,EAAaQ,CAAQ,IAAM,UACzBxoB,EAAMpE,CAAG,EAAI2sB,GACXta,EACAia,EACAtsB,EACA,OACAgU,EACA,EACF,GAGF,OAAO5P,EAAMpE,CAAG,GAItB,GAAIisB,IAAUK,EACZ,UAAWtsB,KAAOisB,GACZ,CAAClP,GAAY,CAACjc,GAAOic,EAAU/c,CAAG,KACpC,OAAOisB,EAAMjsB,CAAG,EACEusB,EAAA,GAGxB,CAEEA,GACMnjB,GAAA4K,EAAS,MAAO,MAAO,EAAE,CAKrC,CACA,SAASkY,GAAalY,EAAU+I,EAAU3Y,EAAO6nB,EAAO,CACtD,KAAM,CAAC5Z,EAASwa,CAAY,EAAI7Y,EAAS,aACzC,IAAIuY,EAAkB,GAClBO,EACJ,GAAI/P,EACF,QAAS/c,KAAO+c,EAAU,CACpB,GAAAlb,GAAe7B,CAAG,EACpB,SAEI,MAAAyB,EAAQsb,EAAS/c,CAAG,EACtB,IAAA+sB,EACA1a,GAAWvR,GAAOuR,EAAS0a,EAAW7qB,GAASlC,CAAG,CAAC,EACjD,CAAC6sB,GAAgB,CAACA,EAAa,SAASE,CAAQ,EAClD3oB,EAAM2oB,CAAQ,EAAItrB,GAEjBqrB,IAAkBA,EAAgB,CAAC,IAAIC,CAAQ,EAAItrB,EAE5CgrB,GAAezY,EAAS,aAAchU,CAAG,IAC/C,EAAEA,KAAOisB,IAAUxqB,IAAUwqB,EAAMjsB,CAAG,KACxCisB,EAAMjsB,CAAG,EAAIyB,EACK8qB,EAAA,GAEtB,CAGJ,GAAIM,EAAc,CACV,MAAAP,EAAkBpiB,GAAM9F,CAAK,EAC7B4oB,EAAaF,GAAiB5sB,GACpC,QAASU,EAAI,EAAGA,EAAIisB,EAAa,OAAQjsB,IAAK,CACtC,MAAAZ,EAAM6sB,EAAajsB,CAAC,EAC1BwD,EAAMpE,CAAG,EAAI2sB,GACXta,EACAia,EACAtsB,EACAgtB,EAAWhtB,CAAG,EACdgU,EACA,CAAClT,GAAOksB,EAAYhtB,CAAG,CACzB,EACF,CAEK,OAAAusB,CACT,CACA,SAASI,GAAiBta,EAASjO,EAAOpE,EAAKyB,EAAOuS,EAAUiZ,EAAU,CAClE,MAAA5G,EAAMhU,EAAQrS,CAAG,EACvB,GAAIqmB,GAAO,KAAM,CACT,MAAA6G,EAAapsB,GAAOulB,EAAK,SAAS,EACpC,GAAA6G,GAAczrB,IAAU,OAAQ,CAClC,MAAM4P,EAAegV,EAAI,QACrB,GAAAA,EAAI,OAAS,UAAY,CAACA,EAAI,aAAellB,GAAWkQ,CAAY,EAAG,CACnE,MAAE,cAAA8b,GAAkBnZ,EAC1B,GAAIhU,KAAOmtB,EACT1rB,EAAQ0rB,EAAcntB,CAAG,MACpB,CACC,MAAA+hB,EAAQC,GAAmBhO,CAAQ,EACjCvS,EAAA0rB,EAAcntB,CAAG,EAAIqR,EAAa,KACxC,KACAjN,CACF,EACM2d,EAAA,EACR,MAEQtgB,EAAA4P,EAEN2C,EAAS,IACFA,EAAA,GAAG,SAAShU,EAAKyB,CAAK,CACjC,CAEE4kB,EAAI,KACF4G,GAAY,CAACC,EACPzrB,EAAA,GACC4kB,EAAI,KAA4B5kB,IAAU,IAAMA,IAAUa,GAAUtC,CAAG,KACxEyB,EAAA,IAEZ,CAEK,OAAAA,CACT,CACA,MAAM2rB,OAAsC,QAC5C,SAASC,GAAsBC,EAAMhI,EAAYuE,EAAU,GAAO,CAC1D,MAAA7nB,EAA+B6nB,EAAUuD,GAAkB9H,EAAW,WACtE1B,EAAS5hB,EAAM,IAAIsrB,CAAI,EAC7B,GAAI1J,EACK,OAAAA,EAET,MAAM3Z,EAAMqjB,EAAK,MACX7pB,EAAa,CAAC,EACdopB,EAAe,CAAC,EACtB,IAAIU,EAAa,GACU,IAACpsB,GAAWmsB,CAAI,EAAG,CACtC,MAAAE,EAAeC,GAAS,CACfF,EAAA,GACb,KAAM,CAACnpB,EAAO2f,CAAI,EAAIsJ,GAAsBI,EAAMnI,EAAY,EAAI,EAClE9kB,GAAOiD,EAAYW,CAAK,EACpB2f,GAAM8I,EAAa,KAAK,GAAG9I,CAAI,CACrC,EACI,CAAC8F,GAAWvE,EAAW,OAAO,QACrBA,EAAA,OAAO,QAAQkI,CAAW,EAEnCF,EAAK,SACPE,EAAYF,EAAK,OAAO,EAEtBA,EAAK,QACFA,EAAA,OAAO,QAAQE,CAAW,CACjC,CAEE,IAACvjB,GAAO,CAACsjB,EACP,OAAAjsB,GAASgsB,CAAI,GACTtrB,EAAA,IAAIsrB,EAAMntB,EAAS,EAEpBA,GAEL,GAAAY,GAAQkJ,CAAG,EACb,QAASrJ,EAAI,EAAGA,EAAIqJ,EAAI,OAAQrJ,IAAK,CAInC,MAAM8sB,EAAgBxrB,GAAS+H,EAAIrJ,CAAC,CAAC,EACjC+sB,GAAiBD,CAAa,IAChCjqB,EAAWiqB,CAAa,EAAIxtB,GAC9B,SAEO+J,EAIT,UAAWjK,KAAOiK,EAAK,CACf,MAAAyjB,EAAgBxrB,GAASlC,CAAG,EAC9B,GAAA2tB,GAAiBD,CAAa,EAAG,CAC7B,MAAArH,EAAMpc,EAAIjK,CAAG,EACb4tB,EAAOnqB,EAAWiqB,CAAa,EAAI3sB,GAAQslB,CAAG,GAAKllB,GAAWklB,CAAG,EAAI,CAAE,KAAMA,GAAQ7lB,GAAO,GAAI6lB,CAAG,EACnGwH,EAAWD,EAAK,KACtB,IAAIE,EAAa,GACbC,EAAiB,GACjB,GAAAhtB,GAAQ8sB,CAAQ,EAClB,QAASjiB,EAAQ,EAAGA,EAAQiiB,EAAS,OAAQ,EAAEjiB,EAAO,CAC9C,MAAA1C,EAAO2kB,EAASjiB,CAAK,EACrBoiB,EAAW7sB,GAAW+H,CAAI,GAAKA,EAAK,KAC1C,GAAI8kB,IAAa,UAAW,CACbF,EAAA,GACb,WACSE,IAAa,WACLD,EAAA,GACnB,MAGFD,EAAa3sB,GAAW0sB,CAAQ,GAAKA,EAAS,OAAS,UAEzDD,EAAK,GAAsBE,EAC3BF,EAAK,GAA0BG,GAC3BD,GAAchtB,GAAO8sB,EAAM,SAAS,IACtCf,EAAa,KAAKa,CAAa,CACjC,CACF,CAGE,MAAAnqB,EAAM,CAACE,EAAYopB,CAAY,EACjC,OAAAvrB,GAASgsB,CAAI,GACTtrB,EAAA,IAAIsrB,EAAM/pB,CAAG,EAEdA,CACT,CACA,SAASoqB,GAAiB3tB,EAAK,CAC7B,OAAIA,EAAI,CAAC,IAAM,KAAO,CAAC6B,GAAe7B,CAAG,CAM3C,CAqHA,MAAMiuB,GAAiBjuB,GAAQA,EAAI,CAAC,IAAM,KAAOA,IAAQ,UACnDkuB,GAAsBzsB,GAAUV,GAAQU,CAAK,EAAIA,EAAM,IAAI0sB,EAAc,EAAI,CAACA,GAAe1sB,CAAK,CAAC,EACnG2sB,GAAgB,CAACpuB,EAAKquB,EAASvX,IAAQ,CAC3C,GAAIuX,EAAQ,GACH,OAAAA,EAEH,MAAA5qB,EAAaoT,GAAQ,IAAIrM,IAMtB0jB,GAAmBG,EAAQ,GAAG7jB,CAAI,CAAC,EACzCsM,CAAG,EACN,OAAArT,EAAW,GAAK,GACTA,CACT,EACM6qB,GAAuB,CAACC,EAAU5R,EAAO3I,IAAa,CAC1D,MAAM8C,EAAMyX,EAAS,KACrB,UAAWvuB,KAAOuuB,EAAU,CACtB,GAAAN,GAAcjuB,CAAG,EAAG,SAClB,MAAAyB,EAAQ8sB,EAASvuB,CAAG,EACtB,GAAAmB,GAAWM,CAAK,EAClBkb,EAAM3c,CAAG,EAAIouB,GAAcpuB,EAAKyB,EAAOqV,CAAG,UACjCrV,GAAS,KAAM,CAMlB,MAAAgC,EAAayqB,GAAmBzsB,CAAK,EACrCkb,EAAA3c,CAAG,EAAI,IAAMyD,CAAA,CACrB,CAEJ,EACM+qB,GAAsB,CAACxa,EAAU4F,IAAa,CAM5C,MAAAnW,EAAayqB,GAAmBtU,CAAQ,EACrC5F,EAAA,MAAM,QAAU,IAAMvQ,CACjC,EACMgrB,GAAc,CAAC9R,EAAO/C,EAAUX,IAAc,CAClD,UAAWjZ,KAAO4Z,GACZX,GAAajZ,IAAQ,OACjB2c,EAAA3c,CAAG,EAAI4Z,EAAS5Z,CAAG,EAG/B,EACM0uB,GAAY,CAAC1a,EAAU4F,EAAUX,IAAc,CAC7C,MAAA0D,EAAQ3I,EAAS,MAAQ6X,GAAqB,EAChD,GAAA7X,EAAS,MAAM,UAAY,GAAI,CACjC,MAAM9K,EAAO0Q,EAAS,EAClB1Q,GACUulB,GAAA9R,EAAO/C,EAAUX,CAAS,EAClCA,GACEnW,GAAA6Z,EAAO,IAAKzT,EAAM,EAAI,GAG5BolB,GAAqB1U,EAAU+C,CAAK,OAE7B/C,GACT4U,GAAoBxa,EAAU4F,CAAQ,CAE1C,EACM+U,GAAc,CAAC3a,EAAU4F,EAAUX,IAAc,CAC/C,MAAE,MAAA7B,EAAO,MAAAuF,CAAA,EAAU3I,EACzB,IAAI4a,EAAoB,GACpBC,EAA2B3uB,GAC3B,GAAAkX,EAAM,UAAY,GAAI,CACxB,MAAMlO,EAAO0Q,EAAS,EAClB1Q,EAIS+P,GAAa/P,IAAS,EACX0lB,EAAA,GAERH,GAAA9R,EAAO/C,EAAUX,CAAS,GAGxC2V,EAAoB,CAAChV,EAAS,QAC9B0U,GAAqB1U,EAAU+C,CAAK,GAEXkS,EAAAjV,OAClBA,IACT4U,GAAoBxa,EAAU4F,CAAQ,EACXiV,EAAA,CAAE,QAAS,CAAE,GAE1C,GAAID,EACF,UAAW5uB,KAAO2c,EACZ,CAACsR,GAAcjuB,CAAG,GAAK6uB,EAAyB7uB,CAAG,GAAK,MAC1D,OAAO2c,EAAM3c,CAAG,CAIxB,EAkEMua,GAAwBuU,GAC9B,SAASC,GAAe1c,EAAS,CAC/B,OAAO2c,GAAmB3c,CAAO,CACnC,CAIA,SAAS2c,GAAmB3c,EAAS4c,EAAoB,CAIvD,MAAMhmB,EAAS5F,GAAc,EAC7B4F,EAAO,QAAU,GAIX,MACJ,OAAQimB,EACR,OAAQnU,EACR,UAAWoU,EACX,cAAeC,EACf,WAAYC,EACZ,cAAeC,EACf,QAASC,EACT,eAAgBC,EAChB,WAAYC,EACZ,YAAaC,EACb,WAAYC,EAAiBvvB,GAC7B,oBAAqBwvB,CAAA,EACnBvd,EACEwd,EAAQ,CAACpX,GAAIC,GAAIC,GAAWC,GAAS,KAAMC,GAAkB,KAAMC,GAAiB,KAAMC,GAAY,OAAQC,GAAe,KAAMC,GAAiF,CAAC,CAACP,GAAG,kBAAoB,CACjP,GAAID,KAAOC,GACT,OAEED,IAAM,CAACiF,GAAgBjF,GAAIC,EAAE,IAC/BE,GAASkX,EAAgBrX,EAAE,EACnBqC,EAAArC,GAAII,GAAiBC,GAAgB,EAAI,EAC5CL,GAAA,MAEHC,GAAG,YAAc,KACPO,GAAA,GACZP,GAAG,gBAAkB,MAEvB,KAAM,CAAE,KAAAxP,GAAM,IAAA0G,GAAK,UAAA+J,EAAc,EAAAjB,GACjC,OAAQxP,GAAM,CACZ,KAAK6mB,GACSC,EAAAvX,GAAIC,GAAIC,GAAWC,EAAM,EACrC,MACF,KAAK2E,GACgB0S,EAAAxX,GAAIC,GAAIC,GAAWC,EAAM,EAC5C,MACF,KAAKsX,GACCzX,IAAM,MACQ0X,EAAAzX,GAAIC,GAAWC,GAAQG,EAAS,EAIlD,MACF,KAAKiH,GACHoQ,EACE3X,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACA,MACF,QACMU,GAAY,EACd0W,EACE5X,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACSU,GAAY,EACrB2W,EACE7X,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,GACSU,GAAY,IAaZA,GAAY,MAChBzQ,GAAA,QACHuP,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,CAGF,CAEAtJ,IAAO,MAAQiJ,IACVjJ,MAAK6I,IAAMA,GAAG,IAAKK,GAAgBJ,IAAMD,GAAI,CAACC,EAAE,CAE3D,EACMsX,EAAc,CAACvX,GAAIC,GAAIC,GAAWC,KAAW,CACjD,GAAIH,IAAM,KACRyW,EACExW,GAAG,GAAK2W,EAAe3W,GAAG,QAAQ,EAClCC,GACAC,EACF,MACK,CACC,MAAAjY,GAAK+X,GAAG,GAAKD,GAAG,GAClBC,GAAG,WAAaD,GAAG,UACT8W,EAAA5uB,GAAI+X,GAAG,QAAQ,CAC7B,CAEJ,EACMuX,EAAqB,CAACxX,GAAIC,GAAIC,GAAWC,KAAW,CACpDH,IAAM,KACRyW,EACExW,GAAG,GAAK4W,EAAkB5W,GAAG,UAAY,EAAE,EAC3CC,GACAC,EACF,EAEAF,GAAG,GAAKD,GAAG,EAEf,EACM0X,EAAkB,CAACzX,GAAIC,GAAWC,GAAQG,KAAc,CAC5D,CAACL,GAAG,GAAIA,GAAG,MAAM,EAAIkX,EACnBlX,GAAG,SACHC,GACAC,GACAG,GACAL,GAAG,GACHA,GAAG,MACL,CACF,EAgBM6X,EAAiB,CAAC,CAAE,GAAA5vB,GAAI,OAAAiY,EAAO,EAAGD,GAAW+C,KAAgB,CAC7D,IAAAxU,GACG,KAAAvG,IAAMA,KAAOiY,IAClB1R,GAAOwoB,EAAgB/uB,EAAE,EACduuB,EAAAvuB,GAAIgY,GAAW+C,EAAW,EAChC/a,GAAAuG,GAEIgoB,EAAAtW,GAAQD,GAAW+C,EAAW,CAC3C,EACM8U,EAAmB,CAAC,CAAE,GAAA7vB,GAAI,OAAAiY,MAAa,CACvC,IAAA1R,GACG,KAAAvG,IAAMA,KAAOiY,IAClB1R,GAAOwoB,EAAgB/uB,EAAE,EACzBoa,EAAWpa,EAAE,EACRA,GAAAuG,GAEP6T,EAAWnC,EAAM,CACnB,EACMyX,EAAiB,CAAC5X,GAAIC,GAAIC,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CACrHP,GAAG,OAAS,MACFK,GAAA,MACHL,GAAG,OAAS,SACTK,GAAA,UAEVN,IAAM,KACRgY,EACE/X,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAEAyX,EACEjY,GACAC,GACAG,GACAC,GACAC,GACAC,GACAC,EACF,CAEJ,EACMwX,EAAe,CAACrZ,GAAOuB,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CAClH,IAAAtY,GACAgwB,GACJ,KAAM,CAAE,MAAAvsB,GAAO,UAAAuV,GAAW,WAAAiX,GAAY,KAAAC,EAAS,EAAAzZ,GAyB/C,GAxBAzW,GAAKyW,GAAM,GAAKgY,EACdhY,GAAM,KACN2B,GACA3U,IAASA,GAAM,GACfA,EACF,EACIuV,GAAY,EACK6V,EAAA7uB,GAAIyW,GAAM,QAAQ,EAC5BuC,GAAY,IACrBR,EACE/B,GAAM,SACNzW,GACA,KACAkY,GACAC,GACAgY,GAAyB1Z,GAAO2B,EAAS,EACzCC,GACAC,EACF,EAEE4X,IACkBnZ,GAAAN,GAAO,KAAMyB,GAAiB,SAAS,EAE7DkY,EAAWpwB,GAAIyW,GAAOA,GAAM,QAAS4B,GAAcH,EAAe,EAC9DzU,GAAO,CACT,UAAWpE,MAAOoE,GACZpE,KAAQ,SAAW,CAAC6B,GAAe7B,EAAG,GACxCmvB,EAAcxuB,GAAIX,GAAK,KAAMoE,GAAMpE,EAAG,EAAG+Y,GAAWF,EAAe,EAGnE,UAAWzU,IACb+qB,EAAcxuB,GAAI,QAAS,KAAMyD,GAAM,MAAO2U,EAAS,GAErD4X,GAAYvsB,GAAM,qBACJ4sB,GAAAL,GAAW9X,GAAiBzB,EAAK,CACnD,CAMEyZ,IACkBnZ,GAAAN,GAAO,KAAMyB,GAAiB,aAAa,EAE3D,MAAAoY,GAA0BC,GAAepY,GAAgB8X,EAAU,EACrEK,IACFL,GAAW,YAAYjwB,EAAE,EAEhBuuB,EAAAvuB,GAAIgY,GAAWC,EAAM,IAC3B+X,GAAYvsB,IAASA,GAAM,iBAAmB6sB,IAA2BJ,KAC5EtW,GAAsB,IAAM,CACboW,IAAAK,GAAgBL,GAAW9X,GAAiBzB,EAAK,EACnC6Z,IAAAL,GAAW,MAAMjwB,EAAE,EAC9CkwB,IAAQnZ,GAAoBN,GAAO,KAAMyB,GAAiB,SAAS,GAClEC,EAAc,CAErB,EACMiY,EAAa,CAACpwB,GAAIyW,GAAO+Z,GAASnY,GAAcH,KAAoB,CAIxE,GAHIsY,IACFxB,EAAehvB,GAAIwwB,EAAO,EAExBnY,GACF,QAASpY,GAAI,EAAGA,GAAIoY,GAAa,OAAQpY,KACxB+uB,EAAAhvB,GAAIqY,GAAapY,EAAC,CAAC,EAGtC,GAAIiY,GAAiB,CACnB,IAAI4D,GAAU5D,GAAgB,QAI1B,GAAAzB,KAAUqF,IAAW2U,GAAW3U,GAAQ,IAAI,IAAMA,GAAQ,YAAcrF,IAASqF,GAAQ,aAAerF,IAAQ,CAClH,MAAMia,GAAcxY,GAAgB,MACpCkY,EACEpwB,GACA0wB,GACAA,GAAY,QACZA,GAAY,aACZxY,GAAgB,MAClB,EACF,CAEJ,EACMM,EAAgB,CAACS,GAAUjB,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,GAAWxD,GAAQ,IAAM,CACrI,QAAS7U,GAAI6U,GAAO7U,GAAIgZ,GAAS,OAAQhZ,KAAK,CAC5C,MAAMua,GAAQvB,GAAShZ,EAAC,EAAIqY,GAAYqY,GAAe1X,GAAShZ,EAAC,CAAC,EAAIutB,GAAevU,GAAShZ,EAAC,CAAC,EAChGivB,EACE,KACA1U,GACAxC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAEJ,EACMyX,EAAe,CAACjY,GAAIC,GAAIG,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CAC9F,MAAAtY,GAAK+X,GAAG,GAAKD,GAAG,GAItB,GAAI,CAAE,UAAA4T,GAAW,gBAAAxS,GAAiB,KAAAgX,EAAS,EAAAnY,GAC3C2T,IAAa5T,GAAG,UAAY,GACtB,MAAA8Y,GAAW9Y,GAAG,OAASvY,GACvBsxB,GAAW9Y,GAAG,OAASxY,GACzB,IAAAywB,GA2CJ,GA1CmB9X,IAAA4Y,GAAc5Y,GAAiB,EAAK,GACnD8X,GAAYa,GAAS,sBACPR,GAAAL,GAAW9X,GAAiBH,GAAID,EAAE,EAEhDoY,IACkBnZ,GAAAgB,GAAID,GAAII,GAAiB,cAAc,EAE1CA,IAAA4Y,GAAc5Y,GAAiB,EAAI,GAMlD0Y,GAAS,WAAaC,GAAS,WAAa,MAAQD,GAAS,aAAeC,GAAS,aAAe,OACtGhC,EAAmB7uB,GAAI,EAAE,EAEvBkZ,GACFR,EACEZ,GAAG,gBACHoB,GACAlZ,GACAkY,GACAC,GACAgY,GAAyBpY,GAAIK,EAAS,EACtCC,EACF,EAIUC,IACVG,GACEX,GACAC,GACA/X,GACA,KACAkY,GACAC,GACAgY,GAAyBpY,GAAIK,EAAS,EACtCC,GACA,EACF,EAEEqT,GAAY,EAAG,CACjB,GAAIA,GAAY,GACdqF,EAAW/wB,GAAI4wB,GAAUC,GAAU3Y,GAAiBE,EAAS,UAEzDsT,GAAY,GACVkF,GAAS,QAAUC,GAAS,OAC9BrC,EAAcxuB,GAAI,QAAS,KAAM6wB,GAAS,MAAOzY,EAAS,EAG1DsT,GAAY,GACd8C,EAAcxuB,GAAI,QAAS4wB,GAAS,MAAOC,GAAS,MAAOzY,EAAS,EAElEsT,GAAY,EAAG,CACjB,MAAMG,GAAgB9T,GAAG,aACzB,QAAS9X,GAAI,EAAGA,GAAI4rB,GAAc,OAAQ5rB,KAAK,CACvC,MAAAZ,GAAMwsB,GAAc5rB,EAAC,EACrB2G,GAAOgqB,GAASvxB,EAAG,EACnBkH,GAAOsqB,GAASxxB,EAAG,GACrBkH,KAASK,IAAQvH,KAAQ,UAC3BmvB,EAAcxuB,GAAIX,GAAKuH,GAAML,GAAM6R,GAAWF,EAAe,CAC/D,CACF,CAGAwT,GAAY,GACV5T,GAAG,WAAaC,GAAG,UACF8W,EAAA7uB,GAAI+X,GAAG,QAAQ,CAG7B,MAACO,IAAaY,IAAmB,MAC1C6X,EAAW/wB,GAAI4wB,GAAUC,GAAU3Y,GAAiBE,EAAS,IAE1D4X,GAAYa,GAAS,iBAAmBX,KAC3CtW,GAAsB,IAAM,CAC1BoW,IAAaK,GAAgBL,GAAW9X,GAAiBH,GAAID,EAAE,EAC/DoY,IAAQnZ,GAAoBgB,GAAID,GAAII,GAAiB,SAAS,GAC7DC,EAAc,CAErB,EACMO,EAAqB,CAACsY,GAAaC,GAAaC,GAAmBhZ,GAAiBC,GAAgBC,GAAWC,KAAiB,CACpI,QAASpY,GAAI,EAAGA,GAAIgxB,GAAY,OAAQhxB,KAAK,CACrC,MAAAkxB,GAAWH,GAAY/wB,EAAC,EACxBmxB,GAAWH,GAAYhxB,EAAC,EACxB+X,GAGJmZ,GAAS,KAERA,GAAS,OAAS9R,IAEnB,CAACtC,GAAgBoU,GAAUC,EAAQ,GACnCD,GAAS,UAAa,IAAWrC,EAAeqC,GAAS,EAAE,EAGzDD,GAGJhC,EACEiC,GACAC,GACApZ,GACA,KACAE,GACAC,GACAC,GACAC,GACA,EACF,EAEJ,EACM0Y,EAAa,CAAC/wB,GAAI4wB,GAAUC,GAAU3Y,GAAiBE,KAAc,CACzE,GAAIwY,KAAaC,GAAU,CACzB,GAAID,KAAarxB,GACf,UAAWF,MAAOuxB,GACZ,CAAC1vB,GAAe7B,EAAG,GAAK,EAAEA,MAAOwxB,KACnCrC,EACExuB,GACAX,GACAuxB,GAASvxB,EAAG,EACZ,KACA+Y,GACAF,EACF,EAIN,UAAW7Y,MAAOwxB,GAAU,CACtB,GAAA3vB,GAAe7B,EAAG,EAAG,SACnB,MAAAkH,GAAOsqB,GAASxxB,EAAG,EACnBuH,GAAOgqB,GAASvxB,EAAG,EACrBkH,KAASK,IAAQvH,KAAQ,SAC3BmvB,EAAcxuB,GAAIX,GAAKuH,GAAML,GAAM6R,GAAWF,EAAe,CAC/D,CAEE,UAAW2Y,IACbrC,EAAcxuB,GAAI,QAAS4wB,GAAS,MAAOC,GAAS,MAAOzY,EAAS,CACtE,CAEJ,EACMqX,EAAkB,CAAC3X,GAAIC,GAAIC,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CAC1H,MAAM+Y,GAAsBtZ,GAAG,GAAKD,GAAKA,GAAG,GAAK4W,EAAe,EAAE,EAC5D4C,GAAoBvZ,GAAG,OAASD,GAAKA,GAAG,OAAS4W,EAAe,EAAE,EACxE,GAAI,CAAE,UAAAhD,GAAW,gBAAAxS,GAAiB,aAAcqY,EAAyB,EAAAxZ,GAOrEwZ,KACFlZ,GAAeA,GAAeA,GAAa,OAAOkZ,EAAoB,EAAIA,IAExEzZ,IAAM,MACGyW,EAAA8C,GAAqBrZ,GAAWC,EAAM,EACtCsW,EAAA+C,GAAmBtZ,GAAWC,EAAM,EAC/CO,EAKET,GAAG,UAAY,CAAC,EAChBC,GACAsZ,GACApZ,GACAC,GACAC,GACAC,GACAC,EACF,GAEIoT,GAAY,GAAKA,GAAY,IAAMxS,IAEvCpB,GAAG,iBACDY,EACEZ,GAAG,gBACHoB,GACAlB,GACAE,GACAC,GACAC,GACAC,EACF,GAQEN,GAAG,KAAO,MAAQG,IAAmBH,KAAOG,GAAgB,UAE5D8B,GACElC,GACAC,GACA,EAEF,GAGFU,GACEX,GACAC,GACAC,GACAsZ,GACApZ,GACAC,GACAC,GACAC,GACAC,EACF,CAGN,EACMqX,EAAmB,CAAC7X,GAAIC,GAAIC,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CAC3HP,GAAG,aAAeM,GACdP,IAAM,KACJC,GAAG,UAAY,IACjBG,GAAgB,IAAI,SAClBH,GACAC,GACAC,GACAG,GACAE,EACF,EAEAkZ,EACEzZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAE,EACF,EAGcmZ,EAAA3Z,GAAIC,GAAIO,EAAS,CAErC,EACMkZ,EAAiB,CAACE,GAAc1Z,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWE,KAAc,CAC3G,MAAAjF,GAAYqe,GAAa,UAAYC,GACzCD,GACAxZ,GACAC,EACF,EAoBA,GAZI6G,GAAY0S,EAAY,IAC1Bre,GAAS,IAAI,SAAWkF,IAMTqZ,GAAAve,GAAU,GAAOiF,EAAS,EAKvCjF,GAAS,UAGP,GADJ8E,IAAkBA,GAAe,YAAY9E,GAAUwe,EAAmBvZ,EAAS,EAC/E,CAACoZ,GAAa,GAAI,CACpB,MAAMvY,GAAc9F,GAAS,QAAUqQ,GAAY9G,EAAO,EACvC0S,EAAA,KAAMnW,GAAanB,GAAWC,EAAM,QAGzD4Z,EACExe,GACAqe,GACA1Z,GACAC,GACAE,GACAC,GACAE,EACF,CAMJ,EACMmZ,EAAkB,CAAC3Z,GAAIC,GAAIO,KAAc,CACvC,MAAAjF,GAAW0E,GAAG,UAAYD,GAAG,UACnC,GAAIga,GAAsBha,GAAIC,GAAIO,EAAS,EACzC,GAAIjF,GAAS,UAAY,CAACA,GAAS,cAAe,CAIvB0e,EAAA1e,GAAU0E,GAAIO,EAAS,EAIhD,YAEAjF,GAAS,KAAO0E,GAChB1E,GAAS,OAAO,OAGlB0E,GAAG,GAAKD,GAAG,GACXzE,GAAS,MAAQ0E,EAErB,EACM8Z,EAAoB,CAACxe,GAAUqe,GAAc1Z,GAAWC,GAAQE,GAAgBC,GAAWE,KAAc,CAC7G,MAAM0Z,GAAoB,IAAM,CAC1B,GAAC3e,GAAS,UA2FP,CACL,GAAI,CAAE,KAAA9M,GAAM,GAAA0rB,GAAI,EAAAC,GAAG,OAAAC,GAAQ,MAAA1b,IAAUpD,GACrC,CACQ,MAAA+e,GAAuBC,GAA2Bhf,EAAQ,EAChE,GAAI+e,GAAsB,CACpB7rB,KACFA,GAAK,GAAKkQ,GAAM,GACSsb,EAAA1e,GAAU9M,GAAM+R,EAAS,GAE/B8Z,GAAA,SAAS,KAAK,IAAM,CAClC/e,GAAS,aACM2e,GAAA,CACpB,CACD,EACD,OACF,CAEF,IAAIM,GAAa/rB,GACbypB,GAIJc,GAAczd,GAAU,EAAK,EACzB9M,IACFA,GAAK,GAAKkQ,GAAM,GACSsb,EAAA1e,GAAU9M,GAAM+R,EAAS,GAE3C/R,GAAAkQ,GAELwb,IACFjwB,GAAeiwB,EAAE,GAEfjC,GAAYzpB,GAAK,OAASA,GAAK,MAAM,sBACvB8pB,GAAAL,GAAWmC,GAAQ5rB,GAAMkQ,EAAK,EAEhDqa,GAAczd,GAAU,EAAI,EAItB,MAAAkf,GAAWC,GAAoBnf,EAAQ,EAIvCof,GAAWpf,GAAS,QAC1BA,GAAS,QAAUkf,GAInBrD,EACEuD,GACAF,GAEAzD,EAAe2D,GAAS,EAAE,EAE1BtD,EAAgBsD,EAAQ,EACxBpf,GACA8E,GACAC,EACF,EAIA7R,GAAK,GAAKgsB,GAAS,GACfD,KAAe,MACDI,GAAArf,GAAUkf,GAAS,EAAE,EAEnCL,IACFtY,GAAsBsY,GAAG/Z,EAAc,GAErC6X,GAAYzpB,GAAK,OAASA,GAAK,MAAM,iBACvCqT,GACE,IAAMyW,GAAgBL,GAAWmC,GAAQ5rB,GAAMkQ,EAAK,EACpD0B,EACF,CAOF,KA3KuB,CACnB,IAAA6X,GACE,MAAE,GAAAhwB,GAAI,MAAAyD,EAAA,EAAUiuB,GAChB,CAAE,GAAAiB,GAAI,EAAA9J,GAAG,OAAAsJ,GAAQ,KAAAS,GAAM,KAAArqB,IAAS8K,GAChCwf,GAAsBhT,GAAe6R,EAAY,EASvD,GARAZ,GAAczd,GAAU,EAAK,EACzBsf,IACF3wB,GAAe2wB,EAAE,EAEf,CAACE,KAAwB7C,GAAYvsB,IAASA,GAAM,qBACtC4sB,GAAAL,GAAWmC,GAAQT,EAAY,EAEjDZ,GAAczd,GAAU,EAAI,EACxBrT,IAAM8yB,GAAa,CACrB,MAAMC,GAAiB,IAAM,CAIlB1f,GAAA,QAAUmf,GAAoBnf,EAAQ,EAO/Cyf,GACE9yB,GACAqT,GAAS,QACTA,GACA8E,GACA,IACF,CAIF,EACI0a,IAAuBtqB,GAAK,eACzBA,GAAA,eACHvI,GACAqT,GACA0f,EACF,EAEeA,GAAA,CACjB,KACK,CACDH,GAAK,IACFA,GAAA,GAAG,kBAAkBrqB,EAAI,EAKhC,MAAMuT,GAAUzI,GAAS,QAAUmf,GAAoBnf,EAAQ,EAO/D6b,EACE,KACApT,GACA9D,GACAC,GACA5E,GACA8E,GACAC,EACF,EAIAsZ,GAAa,GAAK5V,GAAQ,GAK5B,GAHI+M,IACFjP,GAAsBiP,GAAG1Q,EAAc,EAErC,CAAC0a,KAAwB7C,GAAYvsB,IAASA,GAAM,gBAAiB,CACvE,MAAMuvB,GAAqBtB,GAC3B9X,GACE,IAAMyW,GAAgBL,GAAWmC,GAAQa,EAAkB,EAC3D7a,EACF,GAEEuZ,GAAa,UAAY,KAAOS,IAAUtS,GAAesS,GAAO,KAAK,GAAKA,GAAO,MAAM,UAAY,MACrG9e,GAAS,GAAKuG,GAAsBvG,GAAS,EAAG8E,EAAc,EAEhE9E,GAAS,UAAY,GAIrBqe,GAAe1Z,GAAYC,GAAS,KAmFxC,EACA5E,GAAS,MAAM,GAAG,EAClB,MAAMjB,GAASiB,GAAS,OAAS,IAAIhO,GAAe2sB,EAAiB,EACrE3e,GAAS,MAAM,IAAI,EACnB,MAAM4f,GAAS5f,GAAS,OAASjB,GAAO,IAAI,KAAKA,EAAM,EACjDW,GAAMM,GAAS,IAAMjB,GAAO,WAAW,KAAKA,EAAM,EACxDW,GAAI,EAAIM,GACRN,GAAI,GAAKM,GAAS,IAClBjB,GAAO,UAAY,IAAMgD,GAASrC,EAAG,EACrC+d,GAAczd,GAAU,EAAI,EAKrB4f,GAAA,CACT,EACMlB,EAA2B,CAAC1e,GAAU6f,GAAW5a,KAAc,CACnE4a,GAAU,UAAY7f,GAChB,MAAA8f,GAAY9f,GAAS,MAAM,MACjCA,GAAS,MAAQ6f,GACjB7f,GAAS,KAAO,KAChBmY,GAAYnY,GAAU6f,GAAU,MAAOC,GAAW7a,EAAS,EAC/C0V,GAAA3a,GAAU6f,GAAU,SAAU5a,EAAS,EACrC9Q,GAAA,EACdkO,GAAiBrC,EAAQ,EACX5L,GAAA,CAChB,EACMgR,GAAgB,CAACX,GAAIC,GAAIC,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,GAAY,KAAU,CAC1H,MAAA8a,GAAKtb,IAAMA,GAAG,SACdub,GAAgBvb,GAAKA,GAAG,UAAY,EACpCwb,GAAKvb,GAAG,SACR,CAAE,UAAA2T,GAAW,UAAA1S,EAAA,EAAcjB,GACjC,GAAI2T,GAAY,GACd,GAAIA,GAAY,IAAK,CACnB6H,EACEH,GACAE,GACAtb,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACA,eACSoT,GAAY,IAAK,CAC1B8H,GACEJ,GACAE,GACAtb,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACA,QAGAU,GAAY,GACVqa,GAAgB,IACFI,EAAAL,GAAIlb,GAAiBC,EAAc,EAEjDmb,KAAOF,IACTvE,EAAmB7W,GAAWsb,EAAE,GAG9BD,GAAgB,GACdra,GAAY,GACdua,EACEH,GACAE,GACAtb,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAEgBmb,EAAAL,GAAIlb,GAAiBC,GAAgB,EAAI,GAGvDkb,GAAgB,GAClBxE,EAAmB7W,GAAW,EAAE,EAE9BgB,GAAY,IACdR,EACE8a,GACAtb,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EAIR,EACMkb,GAAuB,CAACJ,GAAIE,GAAItb,GAAWC,GAAQC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CAC/H8a,GAAKA,IAAM5zB,GACX8zB,GAAKA,IAAM9zB,GACX,MAAMk0B,GAAYN,GAAG,OACfrqB,GAAYuqB,GAAG,OACfK,GAAe,KAAK,IAAID,GAAW3qB,EAAS,EAC9C,IAAA9I,GACJ,IAAKA,GAAI,EAAGA,GAAI0zB,GAAc1zB,KAAK,CACjC,MAAM2zB,GAAYN,GAAGrzB,EAAC,EAAIqY,GAAYqY,GAAe2C,GAAGrzB,EAAC,CAAC,EAAIutB,GAAe8F,GAAGrzB,EAAC,CAAC,EAClFivB,EACEkE,GAAGnzB,EAAC,EACJ2zB,GACA5b,GACA,KACAE,GACAC,GACAC,GACAC,GACAC,EACF,EAEEob,GAAY3qB,GACd0qB,EACEL,GACAlb,GACAC,GACA,GACA,GACAwb,EACF,EAEAnb,EACE8a,GACAtb,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAqb,EACF,CAEJ,EACMJ,EAAqB,CAACH,GAAIE,GAAItb,GAAW0C,GAAcxC,GAAiBC,GAAgBC,GAAWC,GAAcC,KAAc,CACnI,IAAIrY,GAAI,EACR,MAAM4zB,GAAKP,GAAG,OACV,IAAAQ,GAAKV,GAAG,OAAS,EACjBW,GAAKF,GAAK,EACP,KAAA5zB,IAAK6zB,IAAM7zB,IAAK8zB,IAAI,CACnB,MAAAjc,GAAKsb,GAAGnzB,EAAC,EACT8X,GAAKub,GAAGrzB,EAAC,EAAIqY,GAAYqY,GAAe2C,GAAGrzB,EAAC,CAAC,EAAIutB,GAAe8F,GAAGrzB,EAAC,CAAC,EACvE,GAAA8c,GAAgBjF,GAAIC,EAAE,EACxBmX,EACEpX,GACAC,GACAC,GACA,KACAE,GACAC,GACAC,GACAC,GACAC,EACF,MAEA,OAEFrY,IAAA,CAEK,KAAAA,IAAK6zB,IAAM7zB,IAAK8zB,IAAI,CACnB,MAAAjc,GAAKsb,GAAGU,EAAE,EACV/b,GAAKub,GAAGS,EAAE,EAAIzb,GAAYqY,GAAe2C,GAAGS,EAAE,CAAC,EAAIvG,GAAe8F,GAAGS,EAAE,CAAC,EAC1E,GAAAhX,GAAgBjF,GAAIC,EAAE,EACxBmX,EACEpX,GACAC,GACAC,GACA,KACAE,GACAC,GACAC,GACAC,GACAC,EACF,MAEA,OAEFwb,KACAC,IAAA,CAEF,GAAI9zB,GAAI6zB,IACN,GAAI7zB,IAAK8zB,GAAI,CACX,MAAMC,GAAUD,GAAK,EACf9b,GAAS+b,GAAUH,GAAKP,GAAGU,EAAO,EAAE,GAAKtZ,GAC/C,KAAOza,IAAK8zB,IACV7E,EACE,KACAoE,GAAGrzB,EAAC,EAAIqY,GAAYqY,GAAe2C,GAAGrzB,EAAC,CAAC,EAAIutB,GAAe8F,GAAGrzB,EAAC,CAAC,EAChE+X,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACArY,IACF,UAEOA,GAAI8zB,GACb,KAAO9zB,IAAK6zB,IACV3Z,EAAQiZ,GAAGnzB,EAAC,EAAGiY,GAAiBC,GAAgB,EAAI,EACpDlY,SAEG,CACL,MAAMg0B,GAAKh0B,GACLi0B,GAAKj0B,GACLk0B,OAAuC,IAC7C,IAAKl0B,GAAIi0B,GAAIj0B,IAAK8zB,GAAI9zB,KAAK,CACzB,MAAM2zB,GAAYN,GAAGrzB,EAAC,EAAIqY,GAAYqY,GAAe2C,GAAGrzB,EAAC,CAAC,EAAIutB,GAAe8F,GAAGrzB,EAAC,CAAC,EAC9E2zB,GAAU,KAAO,MAQFO,GAAA,IAAIP,GAAU,IAAK3zB,EAAC,CACvC,CAEE,IAAAm0B,GACAC,GAAU,EACR,MAAAC,GAAcP,GAAKG,GAAK,EAC9B,IAAIK,GAAQ,GACRC,GAAmB,EACjB,MAAAC,GAAwB,IAAI,MAAMH,EAAW,EACnD,IAAKr0B,GAAI,EAAGA,GAAIq0B,GAAar0B,KAAKw0B,GAAsBx0B,EAAC,EAAI,EAC7D,IAAKA,GAAIg0B,GAAIh0B,IAAK6zB,GAAI7zB,KAAK,CACnB,MAAAy0B,GAAYtB,GAAGnzB,EAAC,EACtB,GAAIo0B,IAAWC,GAAa,CAClBna,EAAAua,GAAWxc,GAAiBC,GAAgB,EAAI,EACxD,SAEE,IAAAwc,GACA,GAAAD,GAAU,KAAO,KACRC,GAAAR,GAAiB,IAAIO,GAAU,GAAG,MAE7C,KAAKN,GAAIF,GAAIE,IAAKL,GAAIK,KAChB,GAAAK,GAAsBL,GAAIF,EAAE,IAAM,GAAKnX,GAAgB2X,GAAWpB,GAAGc,EAAC,CAAC,EAAG,CACjEO,GAAAP,GACX,MAIFO,KAAa,OACPxa,EAAAua,GAAWxc,GAAiBC,GAAgB,EAAI,GAElCsc,GAAAE,GAAWT,EAAE,EAAIj0B,GAAI,EACvC00B,IAAYH,GACKA,GAAAG,GAEXJ,GAAA,GAEVrF,EACEwF,GACApB,GAAGqB,EAAQ,EACX3c,GACA,KACAE,GACAC,GACAC,GACAC,GACAC,EACF,EACA+b,KACF,CAEF,MAAMO,GAA6BL,GAAQM,GAAYJ,EAAqB,EAAIj1B,GAEhF,IADA40B,GAAIQ,GAA2B,OAAS,EACnC30B,GAAIq0B,GAAc,EAAGr0B,IAAK,EAAGA,KAAK,CACrC,MAAM60B,GAAYZ,GAAKj0B,GACjB2zB,GAAYN,GAAGwB,EAAS,EACxB7c,GAAS6c,GAAY,EAAIjB,GAAKP,GAAGwB,GAAY,CAAC,EAAE,GAAKpa,GACvD+Z,GAAsBx0B,EAAC,IAAM,EAC/BivB,EACE,KACA0E,GACA5b,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACF,EACSic,KACLH,GAAI,GAAKn0B,KAAM20B,GAA2BR,EAAC,EACxCzZ,EAAAiZ,GAAW5b,GAAWC,GAAQ,CAAC,EAEpCmc,KAEJ,CACF,CAEJ,EACMzZ,EAAO,CAAClE,GAAOuB,GAAWC,GAAQ2C,GAAUzC,GAAiB,OAAS,CAC1E,KAAM,CAAE,GAAAnY,GAAI,KAAAuI,GAAM,WAAA0nB,GAAY,SAAAhX,GAAU,UAAAD,IAAcvC,GACtD,GAAIuC,GAAY,EAAG,CACjB2B,EAAKlE,GAAM,UAAU,QAASuB,GAAWC,GAAQ2C,EAAQ,EACzD,OAEF,GAAI5B,GAAY,IAAK,CACnBvC,GAAM,SAAS,KAAKuB,GAAWC,GAAQ2C,EAAQ,EAC/C,OAEF,GAAI5B,GAAY,GAAI,CAClBzQ,GAAK,KAAKkO,GAAOuB,GAAWC,GAAQM,EAAS,EAC7C,OAEF,GAAIhQ,KAAS8W,GAAU,CACVkP,EAAAvuB,GAAIgY,GAAWC,EAAM,EAChC,QAAShY,GAAI,EAAGA,GAAIgZ,GAAS,OAAQhZ,KACnC0a,EAAK1B,GAAShZ,EAAC,EAAG+X,GAAWC,GAAQ2C,EAAQ,EAEpC2T,EAAA9X,GAAM,OAAQuB,GAAWC,EAAM,EAC1C,OAEF,GAAI1P,KAASgnB,GAAQ,CACJK,EAAAnZ,GAAOuB,GAAWC,EAAM,EACvC,OAGF,GADwB2C,KAAa,GAAK5B,GAAY,GAAKiX,GAEzD,GAAIrV,KAAa,EACfqV,GAAW,YAAYjwB,EAAE,EACduuB,EAAAvuB,GAAIgY,GAAWC,EAAM,EAChC2B,GAAsB,IAAMqW,GAAW,MAAMjwB,EAAE,EAAGmY,EAAc,MAC3D,CACL,KAAM,CAAE,MAAA4c,GAAO,WAAAC,GAAY,WAAAC,EAAe,EAAAhF,GACpCiF,GAAU,IAAM3G,EAAWvuB,GAAIgY,GAAWC,EAAM,EAChDkd,GAAe,IAAM,CACzBJ,GAAM/0B,GAAI,IAAM,CACdk1B,GAAQ,EACRD,IAAcA,GAAW,EAC1B,CACH,EACID,GACSA,GAAAh1B,GAAIk1B,GAASC,EAAY,EAEvBA,GAAA,CACf,MAGS5G,EAAAvuB,GAAIgY,GAAWC,EAAM,CAEpC,EACMkC,EAAU,CAAC1D,GAAOyB,GAAiBC,GAAgBkC,GAAW,GAAO/B,GAAY,KAAU,CACzF,MACJ,KAAA/P,GACA,MAAA9E,GACA,IAAAwL,GACA,SAAAgK,GACA,gBAAAC,GACA,UAAAF,GACA,UAAA0S,GACA,KAAAwE,GACA,WAAAkF,EAAA,EACE3e,GAUJ,GATIiV,KAAc,KACJpT,GAAA,IAEVrJ,IAAO,MACTwQ,GAAOxQ,GAAK,KAAMkJ,GAAgB1B,GAAO,EAAI,EAE3C2e,IAAc,OACAld,GAAA,YAAYkd,EAAU,EAAI,QAExCpc,GAAY,IAAK,CACHd,GAAA,IAAI,WAAWzB,EAAK,EACpC,OAEI,MAAA4e,GAAmBrc,GAAY,GAAKkX,GACpCoF,GAAwB,CAACzV,GAAepJ,EAAK,EAC/C,IAAAuZ,GAIJ,GAHIsF,KAA0BtF,GAAYvsB,IAASA,GAAM,uBACvC4sB,GAAAL,GAAW9X,GAAiBzB,EAAK,EAE/CuC,GAAY,EACGuc,EAAA9e,GAAM,UAAW0B,GAAgBkC,EAAQ,MACrD,CACL,GAAIrB,GAAY,IAAK,CACbvC,GAAA,SAAS,QAAQ0B,GAAgBkC,EAAQ,EAC/C,OAEEgb,IACkBte,GAAAN,GAAO,KAAMyB,GAAiB,eAAe,EAE/Dc,GAAY,GACdvC,GAAM,KAAK,OACTA,GACAyB,GACAC,GACAI,GACA8B,EACF,EACSnB,IAKX,CAACA,GAAgB,UAChB3Q,KAAS8W,IAAYqM,GAAY,GAAKA,GAAY,IACjD+H,EACEva,GACAhB,GACAC,GACA,GACA,EACF,GACS5P,KAAS8W,IAAYqM,GAAa,KAAc,CAACpT,IAAaU,GAAY,KACnEya,EAAAxa,GAAUf,GAAiBC,EAAc,EAEvDkC,IACFva,EAAO2W,EAAK,CACd,EAEE6e,KAA0BtF,GAAYvsB,IAASA,GAAM,mBAAqB4xB,KAC5Ezb,GAAsB,IAAM,CACboW,IAAAK,GAAgBL,GAAW9X,GAAiBzB,EAAK,EAC9D4e,IAAoBte,GAAoBN,GAAO,KAAMyB,GAAiB,WAAW,GAChFC,EAAc,CAErB,EACMrY,EAAU2W,IAAU,CACxB,KAAM,CAAE,KAAAlO,GAAM,GAAAvI,GAAI,OAAAiY,GAAQ,WAAAgY,EAAe,EAAAxZ,GACzC,GAAIlO,KAAS8W,GAAU,CAUnBmW,EAAex1B,GAAIiY,EAAM,EAE3B,OAEF,GAAI1P,KAASgnB,GAAQ,CACnBM,EAAiBpZ,EAAK,EACtB,OAEF,MAAMgf,GAAgB,IAAM,CAC1Brb,EAAWpa,EAAE,EACTiwB,IAAc,CAACA,GAAW,WAAaA,GAAW,YACpDA,GAAW,WAAW,CAE1B,EACA,GAAIxZ,GAAM,UAAY,GAAKwZ,IAAc,CAACA,GAAW,UAAW,CACxD,MAAE,MAAA8E,GAAO,WAAAC,EAAA,EAAe/E,GACxBkF,GAAe,IAAMJ,GAAM/0B,GAAIy1B,EAAa,EAC9CT,GACSA,GAAAve,GAAM,GAAIgf,GAAeN,EAAY,EAEnCA,GAAA,CACf,MAEcM,GAAA,CAElB,EACMD,EAAiB,CAAC3hB,GAAKkB,KAAQ,CAC/B,IAAAxO,GACJ,KAAOsN,KAAQkB,IACbxO,GAAOwoB,EAAgBlb,EAAG,EAC1BuG,EAAWvG,EAAG,EACRA,GAAAtN,GAER6T,EAAWrF,EAAG,CAChB,EACMwgB,EAAmB,CAACliB,GAAU8E,GAAgBkC,KAAa,CAIzD,MAAE,IAAAqb,GAAK,MAAA9iB,GAAO,IAAAG,GAAK,QAAA+I,GAAS,GAAA6Z,GAAI,EAAA9M,GAAG,EAAAhT,IAAMxC,GAC/CuiB,GAAgB/M,EAAC,EACjB+M,GAAgB/f,EAAC,EACb6f,IACF1zB,GAAe0zB,EAAG,EAEpB9iB,GAAM,KAAK,EACPG,KACFA,GAAI,OAAS,EACLoH,EAAA2B,GAASzI,GAAU8E,GAAgBkC,EAAQ,GAEjDsb,IACF/b,GAAsB+b,GAAIxd,EAAc,EAE1CyB,GAAsB,IAAM,CAC1BvG,GAAS,YAAc,IACtB8E,EAAc,EACbA,IAAkBA,GAAe,eAAiB,CAACA,GAAe,aAAe9E,GAAS,UAAY,CAACA,GAAS,eAAiBA,GAAS,aAAe8E,GAAe,YAC3JA,GAAA,OACXA,GAAe,OAAS,GAC1BA,GAAe,QAAQ,EAM7B,EACMsb,EAAkB,CAACxa,GAAUf,GAAiBC,GAAgBkC,GAAW,GAAO/B,GAAY,GAAOxD,GAAQ,IAAM,CACrH,QAAS7U,GAAI6U,GAAO7U,GAAIgZ,GAAS,OAAQhZ,KACvCka,EAAQlB,GAAShZ,EAAC,EAAGiY,GAAiBC,GAAgBkC,GAAU/B,EAAS,CAE7E,EACM6W,EAAmB1Y,IAAU,CAC7B,GAAAA,GAAM,UAAY,EACb,OAAA0Y,EAAgB1Y,GAAM,UAAU,OAAO,EAE5C,GAAAA,GAAM,UAAY,IACb,OAAAA,GAAM,SAAS,KAAK,EAE7B,MAAMzW,GAAK+uB,EAAgBtY,GAAM,QAAUA,GAAM,EAAE,EAC7Cof,GAAc71B,IAAMA,GAAGoX,EAAc,EACpC,OAAAye,GAAc9G,EAAgB8G,EAAW,EAAI71B,EACtD,EACA,IAAI81B,GAAa,GACjB,MAAM/O,GAAS,CAACtQ,GAAOuB,GAAWI,KAAc,CAC1C3B,IAAS,KACPuB,GAAU,QACZmC,EAAQnC,GAAU,OAAQ,KAAM,KAAM,EAAI,EAG5CkX,EACElX,GAAU,QAAU,KACpBvB,GACAuB,GACA,KACA,KACA,KACAI,EACF,EAEFJ,GAAU,OAASvB,GACdqf,KACUA,GAAA,GACIpgB,GAAA,EACCC,GAAA,EACLmgB,GAAA,GAEjB,EACMvd,GAAY,CAChB,EAAG2W,EACH,GAAI/U,EACJ,EAAGQ,EACH,EAAG7a,EACH,GAAI0xB,EACJ,GAAIhZ,EACJ,GAAIC,GACJ,IAAKC,EACL,EAAGyW,EACH,EAAGzd,CACL,EACI,IAAAqY,GACA+I,GAMG,OACL,OAAA/L,GACA,QAAAgD,GACA,UAAWD,GAAa/C,GAAQgD,EAAO,CACzC,CACF,CACA,SAASoG,GAAyB,CAAE,KAAA5nB,EAAM,MAAA9E,CAAA,EAASsyB,EAAkB,CACnE,OAAOA,IAAqB,OAASxtB,IAAS,iBAAmBwtB,IAAqB,UAAYxtB,IAAS,kBAAoB9E,GAASA,EAAM,UAAYA,EAAM,SAAS,SAAS,MAAM,EAAI,OAASsyB,CACvM,CACA,SAASjF,GAAc,CAAE,OAAA1e,EAAQ,IAAAW,CAAA,EAAOijB,EAAS,CAC3CA,GACF5jB,EAAO,OAAS,GAChBW,EAAI,OAAS,IAEbX,EAAO,OAAS,IAChBW,EAAI,OAAS,GAEjB,CACA,SAASwd,GAAepY,EAAgB8X,EAAY,CAC1C,QAAC9X,GAAkBA,GAAkB,CAACA,EAAe,gBAAkB8X,GAAc,CAACA,EAAW,SAC3G,CACA,SAASjW,GAAuBlC,EAAIC,EAAIxK,EAAU,GAAO,CACvD,MAAM0oB,EAAMne,EAAG,SACToe,EAAMne,EAAG,SACf,GAAI3X,GAAQ61B,CAAG,GAAK71B,GAAQ81B,CAAG,EAC7B,QAASj2B,EAAI,EAAGA,EAAIg2B,EAAI,OAAQh2B,IAAK,CAC7B,MAAAmzB,EAAK6C,EAAIh2B,CAAC,EACZ,IAAAqzB,EAAK4C,EAAIj2B,CAAC,EACVqzB,EAAG,UAAY,GAAK,CAACA,EAAG,mBACtBA,EAAG,WAAa,GAAKA,EAAG,YAAc,MACxCA,EAAK4C,EAAIj2B,CAAC,EAAI0wB,GAAeuF,EAAIj2B,CAAC,CAAC,EACnCqzB,EAAG,GAAKF,EAAG,IAET,CAAC7lB,GAAW+lB,EAAG,YAAc,IAC/BtZ,GAAuBoZ,EAAIE,CAAE,GAE7BA,EAAG,OAASlE,KACdkE,EAAG,GAAKF,EAAG,GAIb,CAGN,CACA,SAASyB,GAAY90B,EAAK,CAClB,MAAA4U,EAAI5U,EAAI,MAAM,EACd2K,EAAS,CAAC,CAAC,EACb,IAAAzK,EAAGm0B,EAAGlC,EAAG5tB,EAAG7C,EAChB,MAAM00B,EAAMp2B,EAAI,OAChB,IAAKE,EAAI,EAAGA,EAAIk2B,EAAKl2B,IAAK,CAClB,MAAAm2B,EAAOr2B,EAAIE,CAAC,EAClB,GAAIm2B,IAAS,EAAG,CAEV,GADAhC,EAAA1pB,EAAOA,EAAO,OAAS,CAAC,EACxB3K,EAAIq0B,CAAC,EAAIgC,EAAM,CACjBzhB,EAAE1U,CAAC,EAAIm0B,EACP1pB,EAAO,KAAKzK,CAAC,EACb,SAIF,IAFIiyB,EAAA,EACJ5tB,EAAIoG,EAAO,OAAS,EACbwnB,EAAI5tB,GACT7C,EAAIywB,EAAI5tB,GAAK,EACTvE,EAAI2K,EAAOjJ,CAAC,CAAC,EAAI20B,EACnBlE,EAAIzwB,EAAI,EAEJ6C,EAAA7C,EAGJ20B,EAAOr2B,EAAI2K,EAAOwnB,CAAC,CAAC,IAClBA,EAAI,IACNvd,EAAE1U,CAAC,EAAIyK,EAAOwnB,EAAI,CAAC,GAErBxnB,EAAOwnB,CAAC,EAAIjyB,EACd,CACF,CAIF,IAFAiyB,EAAIxnB,EAAO,OACPpG,EAAAoG,EAAOwnB,EAAI,CAAC,EACTA,KAAM,GACXxnB,EAAOwnB,CAAC,EAAI5tB,EACZA,EAAIqQ,EAAErQ,CAAC,EAEF,OAAAoG,CACT,CACA,SAAS2nB,GAA2Bhf,EAAU,CACtC,MAAAgjB,EAAehjB,EAAS,QAAQ,UACtC,GAAIgjB,EACF,OAAIA,EAAa,UAAY,CAACA,EAAa,cAClCA,EAEAhE,GAA2BgE,CAAY,CAGpD,CACA,SAAST,GAAgBjZ,EAAO,CAC9B,GAAIA,EACF,QAAS1c,EAAI,EAAGA,EAAI0c,EAAM,OAAQ1c,IAC1B0c,EAAA1c,CAAC,EAAE,OAAS,CAExB,CAEA,MAAMq2B,GAAgB,OAAO,IAAI,OAAO,EAClCC,GAAgB,IAENpO,GAAOmO,EAAa,EAUpC,SAASE,IAAYpkB,EAAQV,EAAS,CAC7B,OAAA+kB,GAAQrkB,EAAQ,KAAMV,CAAO,CACtC,CAQA,SAASglB,GAAgBtkB,EAAQV,EAAS,CACjC,OAAA+kB,GACLrkB,EACA,KACqF,CAAE,MAAO,MAAO,CACvG,CACF,CACA,SAASZ,GAAMf,EAAQgB,EAAIC,EAAS,CAM3B,OAAA+kB,GAAQhmB,EAAQgB,EAAIC,CAAO,CACpC,CACA,SAAS+kB,GAAQhmB,EAAQgB,EAAIC,EAAUnS,GAAW,CAChD,KAAM,CAAE,UAAAoS,EAAW,KAAAC,EAAM,MAAA+kB,EAAO,KAAA9kB,CAAS,EAAAH,EAkBnCklB,EAAmB/2B,GAAO,CAAC,EAAG6R,CAAO,EAErCmlB,EAAkBplB,GAAME,GAAa,CAACF,GAAMklB,IAAU,OACxD,IAAAG,EACJ,GAAItV,IACF,GAAImV,IAAU,OAAQ,CACpB,MAAMxgB,EAAMogB,GAAc,EAC1BO,EAAa3gB,EAAI,mBAAqBA,EAAI,iBAAmB,GAAC,SACrD,CAAC0gB,EAAiB,CAC3B,MAAME,EAAkB,IAAM,CAC9B,EACA,OAAAA,EAAgB,KAAOt3B,GACvBs3B,EAAgB,OAASt3B,GACzBs3B,EAAgB,MAAQt3B,GACjBs3B,CAAA,EAGX,MAAM1jB,EAAWsN,GACAiW,EAAA,KAAO,CAACx1B,EAAImH,EAAMsB,IAAS0J,GAA2BnS,EAAIiS,EAAU9K,EAAMsB,CAAI,EAC/F,IAAImtB,EAAQ,GACRL,IAAU,OACKC,EAAA,UAAa7jB,GAAQ,CACd6G,GAAA7G,EAAKM,GAAYA,EAAS,QAAQ,CAC1D,EACSsjB,IAAU,SACXK,EAAA,GACSJ,EAAA,UAAY,CAAC7jB,EAAKkkB,IAAe,CAC5CA,EACElkB,EAAA,EAEJqC,GAASrC,CAAG,CAEhB,GAEe6jB,EAAA,WAAc7jB,GAAQ,CACjCtB,IACFsB,EAAI,OAAS,GAEXikB,IACFjkB,EAAI,OAAS,EACTM,IACFN,EAAI,GAAKM,EAAS,IAClBN,EAAI,EAAIM,GAGd,EACA,MAAMR,EAAcqkB,GAAQzmB,EAAQgB,EAAImlB,CAAgB,EACxD,OAAIpV,KACEsV,EACFA,EAAW,KAAKjkB,CAAW,EAClBgkB,GACGhkB,EAAA,GAGTA,CACT,CACA,SAASyR,GAAc7T,EAAQ3P,EAAO4Q,EAAS,CAC7C,MAAMmU,EAAa,KAAK,MAClB7U,EAASvQ,GAASgQ,CAAM,EAAIA,EAAO,SAAS,GAAG,EAAI4X,GAAiBxC,EAAYpV,CAAM,EAAI,IAAMoV,EAAWpV,CAAM,EAAIA,EAAO,KAAKoV,EAAYA,CAAU,EACzJ,IAAApU,EACAjR,GAAWM,CAAK,EACb2Q,EAAA3Q,GAEL2Q,EAAK3Q,EAAM,QACD4Q,EAAA5Q,GAEN,MAAAsgB,EAAQC,GAAmB,IAAI,EAC/Bze,EAAM6zB,GAAQzlB,EAAQS,EAAG,KAAKoU,CAAU,EAAGnU,CAAO,EAClD,OAAA0P,EAAA,EACCxe,CACT,CACA,SAASylB,GAAiBlS,EAAKghB,EAAM,CAC7B,MAAAC,EAAWD,EAAK,MAAM,GAAG,EAC/B,MAAO,IAAM,CACX,IAAItjB,EAAMsC,EACV,QAAS,EAAI,EAAG,EAAIihB,EAAS,QAAUvjB,EAAK,IACpCA,IAAIujB,EAAS,CAAC,CAAC,EAEhB,OAAAvjB,CACT,CACF,CAEA,SAASwjB,IAAS5zB,EAAOF,EAAMmO,EAAUnS,GAAW,CAClD,MAAMU,EAAIgc,GAAmB,EAKvBqb,EAAgB/1B,GAASgC,CAAI,EAK7Bg0B,EAAiB51B,GAAU4B,CAAI,EAC/BuT,EAAY0gB,GAAkB/zB,EAAO6zB,CAAa,EAClD10B,EAAMoN,GAAU,CAAC3H,EAAOI,IAAY,CACpC,IAAAgvB,EACAC,EAAen4B,GACfo4B,EACJ,OAAAjB,GAAgB,IAAM,CACd,MAAAkB,EAAYn0B,EAAM6zB,CAAa,EACjCx1B,GAAW21B,EAAYG,CAAS,IACrBH,EAAAG,EACbnvB,EAAQ,EACV,CACD,EACM,CACL,KAAM,CACJJ,SAAM,EACCqJ,EAAQ,IAAMA,EAAQ,IAAI+lB,CAAU,EAAIA,CACjD,EACA,IAAI32B,EAAO,CACT,MAAM+2B,EAAenmB,EAAQ,IAAMA,EAAQ,IAAI5Q,CAAK,EAAIA,EACpD,IAACgB,GAAW+1B,EAAcJ,CAAU,GAAK,EAAEC,IAAiBn4B,IAAauC,GAAWhB,EAAO42B,CAAY,GACzG,OAEI,MAAAtb,EAAWnc,EAAE,MAAM,MACnBmc,IACL7Y,KAAQ6Y,GAAYkb,KAAiBlb,GAAYmb,KAAkBnb,KAAc,YAAY7Y,CAAI,KAAM6Y,GAAY,YAAYkb,CAAa,KAAMlb,GAAY,YAAYmb,CAAc,KAAMnb,KAChLqb,EAAA32B,EACb2H,EAAQ,GAEVxI,EAAE,KAAK,UAAUsD,CAAI,GAAIs0B,CAAY,EACjC/1B,GAAWhB,EAAO+2B,CAAY,GAAK/1B,GAAWhB,EAAO42B,CAAY,GAAK,CAAC51B,GAAW+1B,EAAcF,CAAgB,GAClHlvB,EAAQ,EAEKivB,EAAA52B,EACI62B,EAAAE,CAAA,CAEvB,EACD,EACG,OAAAj1B,EAAA,OAAO,QAAQ,EAAI,IAAM,CAC3B,IAAIk1B,EAAK,EACF,OACL,MAAO,CACL,OAAIA,EAAK,EACA,CAAE,MAAOA,IAAOhhB,GAAavX,GAAYqD,EAAK,KAAM,EAAM,EAE1D,CAAE,KAAM,EAAK,CACtB,CAEJ,CACF,EACOA,CACT,CACA,MAAM40B,GAAoB,CAAC/zB,EAAOs0B,IACzBA,IAAc,cAAgBA,IAAc,cAAgBt0B,EAAM,eAAiBA,EAAM,GAAGs0B,CAAS,WAAW,GAAKt0B,EAAM,GAAGlC,GAASw2B,CAAS,CAAC,WAAW,GAAKt0B,EAAM,GAAG9B,GAAUo2B,CAAS,CAAC,WAAW,EAGlN,SAASC,GAAK3kB,EAAU4kB,KAAUC,EAAS,CACzC,GAAI7kB,EAAS,YAAa,OACpB,MAAA5P,EAAQ4P,EAAS,MAAM,OAAS9T,GA0BtC,IAAIsK,EAAOquB,EACLt4B,QAAkBq4B,EAAM,WAAW,SAAS,EAC5CnhB,EAAYlX,GAAmB43B,GAAkB/zB,EAAOw0B,EAAM,MAAM,CAAC,CAAC,EACxEnhB,IACEA,EAAU,OACLjN,EAAAquB,EAAQ,IAAKriB,GAAMpV,GAASoV,CAAC,EAAIA,EAAE,KAAK,EAAIA,CAAC,GAElDiB,EAAU,SACLjN,EAAAquB,EAAQ,IAAI51B,EAAa,IAmBhC,IAAA61B,EACA7P,EAAU7kB,EAAM00B,EAAct2B,GAAao2B,CAAK,CAAC,GACrDx0B,EAAM00B,EAAct2B,GAAaN,GAAS02B,CAAK,CAAC,CAAC,EAC7C,CAAC3P,GAAW1oB,IACd0oB,EAAU7kB,EAAM00B,EAAct2B,GAAaF,GAAUs2B,CAAK,CAAC,CAAC,GAE1D3P,GACF/U,GACE+U,EACAjV,EACA,EACAxJ,CACF,EAEI,MAAAuuB,EAAc30B,EAAM00B,EAAc,MAAM,EAC9C,GAAIC,EAAa,CACX,IAAC/kB,EAAS,QACZA,EAAS,QAAU,CAAC,UACXA,EAAS,QAAQ8kB,CAAW,EACrC,OAEO9kB,EAAA,QAAQ8kB,CAAW,EAAI,GAChC5kB,GACE6kB,EACA/kB,EACA,EACAxJ,CACF,EAEJ,CACA,SAASwuB,GAAsB1L,EAAMhI,EAAYuE,EAAU,GAAO,CAChE,MAAM7nB,EAAQsjB,EAAW,WACnB1B,EAAS5hB,EAAM,IAAIsrB,CAAI,EAC7B,GAAI1J,IAAW,OACN,OAAAA,EAET,MAAM3Z,EAAMqjB,EAAK,MACjB,IAAI7pB,EAAa,CAAC,EACd8pB,EAAa,GACU,IAACpsB,GAAWmsB,CAAI,EAAG,CACtC,MAAA2L,EAAexL,GAAS,CAC5B,MAAMyL,EAAuBF,GAAsBvL,EAAMnI,EAAY,EAAI,EACrE4T,IACW3L,EAAA,GACb/sB,GAAOiD,EAAYy1B,CAAoB,EAE3C,EACI,CAACrP,GAAWvE,EAAW,OAAO,QACrBA,EAAA,OAAO,QAAQ2T,CAAW,EAEnC3L,EAAK,SACP2L,EAAY3L,EAAK,OAAO,EAEtBA,EAAK,QACFA,EAAA,OAAO,QAAQ2L,CAAW,CACjC,CAEE,OAAChvB,GAAO,CAACsjB,GACPjsB,GAASgsB,CAAI,GACTtrB,EAAA,IAAIsrB,EAAM,IAAI,EAEf,OAELvsB,GAAQkJ,CAAG,EACbA,EAAI,QAASjK,GAAQyD,EAAWzD,CAAG,EAAI,IAAI,EAE3CQ,GAAOiD,EAAYwG,CAAG,EAEpB3I,GAASgsB,CAAI,GACTtrB,EAAA,IAAIsrB,EAAM7pB,CAAU,EAErBA,EACT,CACA,SAASgpB,GAAepa,EAASrS,EAAK,CACpC,MAAI,CAACqS,GAAW,CAAC/R,GAAKN,CAAG,EAChB,IAETA,EAAMA,EAAI,MAAM,CAAC,EAAE,QAAQ,QAAS,EAAE,EAC/Bc,GAAOuR,EAASrS,EAAI,CAAC,EAAE,YAAY,EAAIA,EAAI,MAAM,CAAC,CAAC,GAAKc,GAAOuR,EAAS/P,GAAUtC,CAAG,CAAC,GAAKc,GAAOuR,EAASrS,CAAG,EACvH,CAMA,SAASmzB,GAAoBnf,EAAU,CAC/B,MACJ,KAAMqP,EACN,MAAAjM,EACA,MAAA5H,EACA,UAAA2pB,EACA,aAAc,CAACvT,CAAY,EAC3B,MAAAjJ,EACA,MAAAsP,EACA,KAAA0M,EACA,OAAAjR,EACA,YAAA0R,EACA,MAAAh1B,EACA,KAAAghB,EACA,WAAAxE,EACA,IAAA9J,EACA,aAAAkR,CAAA,EACEhU,EACEzM,EAAOqP,GAA4B5C,CAAQ,EAC7C,IAAA3I,EACAguB,EAIA,IACE,GAAAjiB,EAAM,UAAY,EAAG,CACvB,MAAMkiB,EAAaH,GAAa3pB,EAC1B+pB,EASDD,EACIjuB,EAAA8iB,GACPzG,EAAO,KACL6R,EACAD,EACAF,EACqEh1B,EACrEwc,EACAwE,EACAtO,CAAA,CAEJ,EACmBuiB,EAAApN,CAAA,KACd,CACL,MAAMuN,EAAUnW,EAIPhY,EAAA8iB,GACPqL,EAAQ,OAAS,EAAIA,EACkDp1B,EAQjE,CAAE,MAAA6nB,EAAO,MAAAtP,EAAO,KAAAgc,CAAK,GACvBa,EACmEp1B,EACrE,KAEJ,EACAi1B,EAAmBhW,EAAU,MAAQ4I,EAAQwN,GAAyBxN,CAAK,SAEtE7kB,EAAK,CACZsyB,GAAW,OAAS,EACRzlB,GAAA7M,EAAK4M,EAAU,CAAC,EAC5B3I,EAASgZ,GAAY9G,EAAO,EAE9B,IAAIgW,EAAOloB,EAKP,GAAAguB,GAAoBrR,IAAiB,GAAO,CACxC,MAAAjE,EAAO,OAAO,KAAKsV,CAAgB,EACnC,CAAE,UAAA1f,GAAc4Z,EAClBxP,EAAK,QACHpK,EAAa,IACXiM,GAAgB7B,EAAK,KAAKxjB,EAAe,IACxB84B,EAAAM,GACjBN,EACAzT,CACF,GAEF2N,EAAO3T,GAAW2T,EAAM8F,EAAkB,GAAO,EAAI,EA0BzD,CAEF,OAAIjiB,EAAM,OAMRmc,EAAO3T,GAAW2T,EAAM,KAAM,GAAO,EAAI,EACpCA,EAAA,KAAOA,EAAK,KAAOA,EAAK,KAAK,OAAOnc,EAAM,IAAI,EAAIA,EAAM,MAE3DA,EAAM,YAMWoG,GAAA+V,EAAMnc,EAAM,UAAU,EAKhC/L,EAAAkoB,EAEX3c,GAA4BrP,CAAI,EACzB8D,CACT,CA6CA,MAAMouB,GAA4BxN,GAAU,CACtC,IAAA1oB,EACJ,UAAWvD,KAAOisB,GACZjsB,IAAQ,SAAWA,IAAQ,SAAWM,GAAKN,CAAG,MAC/CuD,IAAQA,EAAM,KAAKvD,CAAG,EAAIisB,EAAMjsB,CAAG,GAGjC,OAAAuD,CACT,EACMo2B,GAAuB,CAAC1N,EAAO7nB,IAAU,CAC7C,MAAMb,EAAM,CAAC,EACb,UAAWvD,KAAOisB,GACZ,CAAC1rB,GAAgBP,CAAG,GAAK,EAAEA,EAAI,MAAM,CAAC,IAAKoE,MACzCb,EAAAvD,CAAG,EAAIisB,EAAMjsB,CAAG,GAGjB,OAAAuD,CACT,EAIA,SAASkvB,GAAsB9a,EAAWkc,EAAW5a,EAAW,CAC9D,KAAM,CAAE,MAAO6a,EAAW,SAAU8F,EAAc,UAAA1W,GAAcvL,EAC1D,CAAE,MAAOkiB,EAAW,SAAUC,EAAc,UAAAzN,GAAcwH,EAC1DkG,EAAQ7W,EAAU,aAIpB,GAAA2Q,EAAU,MAAQA,EAAU,WACvB,SAEL,GAAA5a,GAAaoT,GAAa,EAAG,CAC/B,GAAIA,EAAY,KACP,SAET,GAAIA,EAAY,GACd,OAAKyH,EAGEkG,GAAgBlG,EAAW+F,EAAWE,CAAK,EAFzC,CAAC,CAACF,EAGb,GAAWxN,EAAY,EAAG,CACxB,MAAM4N,EAAepG,EAAU,aAC/B,QAASjzB,EAAI,EAAGA,EAAIq5B,EAAa,OAAQr5B,IAAK,CACtC,MAAAZ,EAAMi6B,EAAar5B,CAAC,EACtB,GAAAi5B,EAAU75B,CAAG,IAAM8zB,EAAU9zB,CAAG,GAAK,CAACysB,GAAesN,EAAO/5B,CAAG,EAC1D,QACT,CACF,CACF,KAEA,QAAI45B,GAAgBE,KACd,CAACA,GAAgB,CAACA,EAAa,SAC1B,GAGPhG,IAAc+F,EACT,GAEJ/F,EAGA+F,EAGEG,GAAgBlG,EAAW+F,EAAWE,CAAK,EAFzC,GAHA,CAAC,CAACF,EAON,QACT,CACA,SAASG,GAAgBlG,EAAW+F,EAAWK,EAAc,CACrD,MAAAC,EAAW,OAAO,KAAKN,CAAS,EACtC,GAAIM,EAAS,SAAW,OAAO,KAAKrG,CAAS,EAAE,OACtC,SAET,QAAS,EAAI,EAAG,EAAIqG,EAAS,OAAQ,IAAK,CAClC,MAAAn6B,EAAMm6B,EAAS,CAAC,EAClB,GAAAN,EAAU75B,CAAG,IAAM8zB,EAAU9zB,CAAG,GAAK,CAACysB,GAAeyN,EAAcl6B,CAAG,EACjE,QACT,CAEK,QACT,CACA,SAASqzB,GAAgB,CAAE,MAAAjc,EAAO,OAAA0b,CAAA,EAAUnyB,EAAI,CAC9C,KAAOmyB,GAAQ,CACb,MAAMS,EAAOT,EAAO,QAIpB,GAHIS,EAAK,UAAYA,EAAK,SAAS,eAAiBnc,IAClDmc,EAAK,GAAKnc,EAAM,IAEdmc,IAASnc,GACVA,EAAQ0b,EAAO,OAAO,GAAKnyB,EAC5BmyB,EAASA,EAAO,WAEhB,MACF,CAEJ,CAEA,MAAM1B,GAAcloB,GAASA,EAAK,aAmjBlC,SAAS4lB,GAAwB/sB,EAAIq4B,EAAU,CACzCA,GAAYA,EAAS,cACnBr5B,GAAQgB,CAAE,EACHq4B,EAAA,QAAQ,KAAK,GAAGr4B,CAAE,EAElBq4B,EAAA,QAAQ,KAAKr4B,CAAE,EAG1BqU,GAAiBrU,CAAE,CAEvB,CAoBM,MAAAie,GAAW,OAAO,IAAI,OAAO,EAC7B+P,GAAO,OAAO,IAAI,OAAO,EACzBxS,GAAU,OAAO,IAAI,OAAO,EAC5B2S,GAAS,OAAO,IAAI,OAAO,EAC3BwJ,GAAa,CAAC,EACpB,IAAIW,GAAe,KACnB,SAASlW,GAAUmW,EAAkB,GAAO,CAC1CZ,GAAW,KAAKW,GAAeC,EAAkB,KAAO,EAAE,CAC5D,CACA,SAASC,IAAa,CACpBb,GAAW,IAAI,EACfW,GAAeX,GAAWA,GAAW,OAAS,CAAC,GAAK,IACtD,CACA,IAAIc,GAAqB,EACzB,SAASvjB,GAAiBxV,EAAOg5B,EAAU,GAAO,CAC1BD,IAAA/4B,EAClBA,EAAQ,GAAK44B,IAAgBI,IAC/BJ,GAAa,QAAU,GAE3B,CACA,SAASK,GAAWtjB,EAAO,CACzB,OAAAA,EAAM,gBAAkBojB,GAAqB,EAAIH,IAAgBl6B,GAAY,KAClEo6B,GAAA,EACPC,GAAqB,GAAKH,IAC5BA,GAAa,KAAKjjB,CAAK,EAElBA,CACT,CACA,SAASujB,GAAmBzxB,EAAM9E,EAAOwV,EAAUyS,EAAW4N,EAActgB,EAAW,CAC9E,OAAA+gB,GACLE,GACE1xB,EACA9E,EACAwV,EACAyS,EACA4N,EACAtgB,EACA,GAEJ,CACF,CACA,SAASyK,GAAYlb,EAAM9E,EAAOwV,EAAUyS,EAAW4N,EAAc,CAC5D,OAAAS,GACLrW,GACEnb,EACA9E,EACAwV,EACAyS,EACA4N,EACA,GAEJ,CACF,CACA,SAASrV,GAAQnjB,EAAO,CACf,OAAAA,EAAQA,EAAM,cAAgB,GAAO,EAC9C,CACA,SAASic,GAAgBjF,EAAIC,EAAI,CAS/B,OAAOD,EAAG,OAASC,EAAG,MAAQD,EAAG,MAAQC,EAAG,GAC9C,CAUA,MAAMmiB,GAAe,CAAC,CAAE,IAAA76B,KAAUA,GAAoB,KAChD86B,GAAe,CAAC,CACpB,IAAAlrB,EACA,QAAAmrB,EACA,QAAAC,CACF,KACM,OAAOprB,GAAQ,WACjBA,EAAM,GAAKA,GAENA,GAAO,KAAOxO,GAASwO,CAAG,GAAKlL,GAAMkL,CAAG,GAAKzO,GAAWyO,CAAG,EAAI,CAAE,EAAG8G,GAA0B,EAAG9G,EAAK,EAAGmrB,EAAS,EAAG,CAAC,CAACC,GAAYprB,EAAM,MAElJ,SAASgrB,GAAgB1xB,EAAM9E,EAAQ,KAAMwV,EAAW,KAAMyS,EAAY,EAAG4N,EAAe,KAAMtgB,EAAYzQ,IAAS8W,GAAW,EAAI,EAAGib,EAAc,GAAOC,EAAgC,GAAO,CACnM,MAAM9jB,EAAQ,CACZ,YAAa,GACb,SAAU,GACV,KAAAlO,EACA,MAAA9E,EACA,IAAKA,GAASy2B,GAAaz2B,CAAK,EAChC,IAAKA,GAAS02B,GAAa12B,CAAK,EAChC,QAASuS,GACT,aAAc,KACd,SAAAiD,EACA,UAAW,KACX,SAAU,KACV,UAAW,KACX,WAAY,KACZ,KAAM,KACN,WAAY,KACZ,GAAI,KACJ,OAAQ,KACR,OAAQ,KACR,YAAa,KACb,aAAc,KACd,YAAa,EACb,UAAAD,EACA,UAAA0S,EACA,aAAA4N,EACA,gBAAiB,KACjB,WAAY,KACZ,IAAKvjB,EACP,EACA,OAAIwkB,GACFC,GAAkB/jB,EAAOwC,CAAQ,EAC7BD,EAAY,KACdzQ,EAAK,UAAUkO,CAAK,GAEbwC,IACTxC,EAAM,WAAahW,GAASwY,CAAQ,EAAI,EAAI,IAK1C4gB,GAAqB,GACzB,CAACS,GACDZ,KAICjjB,EAAM,UAAY,GAAKuC,EAAY,IAEpCvC,EAAM,YAAc,IAClBijB,GAAa,KAAKjjB,CAAK,EAElBA,CACT,CACM,MAAAiN,GAAyF+W,GAC/F,SAASA,GAAalyB,EAAM9E,EAAQ,KAAMwV,EAAW,KAAMyS,EAAY,EAAG4N,EAAe,KAAMgB,EAAc,GAAO,CAO9G,IANA,CAAC/xB,GAAQA,IAAS8Z,MAIb9Z,EAAAqU,IAELqH,GAAQ1b,CAAI,EAAG,CACjB,MAAMmyB,EAASzb,GACb1W,EACA9E,EACA,EAEF,EACA,OAAIwV,GACFuhB,GAAkBE,EAAQzhB,CAAQ,EAEhC4gB,GAAqB,GAAK,CAACS,GAAeZ,KACxCgB,EAAO,UAAY,EACrBhB,GAAaA,GAAa,QAAQnxB,CAAI,CAAC,EAAImyB,EAE3ChB,GAAa,KAAKgB,CAAM,GAG5BA,EAAO,UAAY,GACZA,CAAA,CAKT,GAHIC,GAAiBpyB,CAAI,IACvBA,EAAOA,EAAK,WAEV9E,EAAO,CACTA,EAAQm3B,GAAmBn3B,CAAK,EAChC,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAU,EAAAF,EAC1BC,GAAS,CAACjD,GAASiD,CAAK,IACpBD,EAAA,MAAQH,GAAeI,CAAK,GAEhC/C,GAASgD,CAAK,IACZwH,GAAQxH,CAAK,GAAK,CAACvD,GAAQuD,CAAK,IAC1BA,EAAA9D,GAAO,CAAC,EAAG8D,CAAK,GAEpBF,EAAA,MAAQd,GAAegB,CAAK,EACpC,CAEI,MAAAqV,EAAYvY,GAAS8H,CAAI,EAAI,EAAIkoB,GAAWloB,CAAI,EAAI,IAAM8O,GAAW9O,CAAI,EAAI,GAAK5H,GAAS4H,CAAI,EAAI,EAAI/H,GAAW+H,CAAI,EAAI,EAAI,EAU7H,OAAA0xB,GACL1xB,EACA9E,EACAwV,EACAyS,EACA4N,EACAtgB,EACAshB,EACA,EACF,CACF,CACA,SAASM,GAAmBn3B,EAAO,CAC7B,OAACA,EACE0H,GAAQ1H,CAAK,GAAK0nB,GAAiB1nB,CAAK,EAAI5D,GAAO,GAAI4D,CAAK,EAAIA,EADpD,IAErB,CACA,SAASwb,GAAWxI,EAAOokB,EAAYC,EAAW,GAAOC,EAAkB,GAAO,CAChF,KAAM,CAAE,MAAAt3B,EAAO,IAAAwL,EAAK,UAAAyc,EAAW,SAAAzS,EAAU,WAAAgX,GAAexZ,EAClDukB,EAAcH,EAAaI,GAAWx3B,GAAS,CAAC,EAAGo3B,CAAU,EAAIp3B,EACjEi3B,EAAS,CACb,YAAa,GACb,SAAU,GACV,KAAMjkB,EAAM,KACZ,MAAOukB,EACP,IAAKA,GAAed,GAAac,CAAW,EAC5C,IAAKH,GAAcA,EAAW,IAI5BC,GAAY7rB,EAAM7O,GAAQ6O,CAAG,EAAIA,EAAI,OAAOkrB,GAAaU,CAAU,CAAC,EAAI,CAAC5rB,EAAKkrB,GAAaU,CAAU,CAAC,EAAIV,GAAaU,CAAU,EAC/H5rB,EACJ,QAASwH,EAAM,QACf,aAAcA,EAAM,aACpB,SAA8HwC,EAC9H,OAAQxC,EAAM,OACd,YAAaA,EAAM,YACnB,aAAcA,EAAM,aACpB,YAAaA,EAAM,YACnB,UAAWA,EAAM,UAKjB,UAAWokB,GAAcpkB,EAAM,OAAS4I,GAAWqM,IAAc,GAAK,GAAKA,EAAY,GAAKA,EAC5F,aAAcjV,EAAM,aACpB,gBAAiBA,EAAM,gBACvB,WAAYA,EAAM,WAClB,KAAMA,EAAM,KACZ,WAAAwZ,EAKA,UAAWxZ,EAAM,UACjB,SAAUA,EAAM,SAChB,UAAWA,EAAM,WAAawI,GAAWxI,EAAM,SAAS,EACxD,WAAYA,EAAM,YAAcwI,GAAWxI,EAAM,UAAU,EAC3D,GAAIA,EAAM,GACV,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,GAAIA,EAAM,EACZ,EACA,OAAIwZ,GAAc8K,GAChBle,GACE6d,EACAzK,EAAW,MAAMyK,CAAM,CACzB,EAEKA,CACT,CAQA,SAASQ,GAAgBC,EAAO,IAAKC,EAAO,EAAG,CAC7C,OAAO1X,GAAY0L,GAAM,KAAM+L,EAAMC,CAAI,CAC3C,CAMA,SAASC,IAAmBF,EAAO,GAAIG,EAAU,GAAO,CAC/C,OAAAA,GAAW9X,KAAaC,GAAY7G,GAAS,KAAMue,CAAI,GAAKzX,GAAY9G,GAAS,KAAMue,CAAI,CACpG,CACA,SAAS3N,GAAehT,EAAO,CAC7B,OAAIA,GAAS,MAAQ,OAAOA,GAAU,UAC7BkJ,GAAY9G,EAAO,EACjBxc,GAAQoa,CAAK,EACfkJ,GACLrE,GACA,KAEA7E,EAAM,MAAM,CACd,EACSyJ,GAAQzJ,CAAK,EACfmW,GAAenW,CAAK,EAEpBkJ,GAAY0L,GAAM,KAAM,OAAO5U,CAAK,CAAC,CAEhD,CACA,SAASmW,GAAenW,EAAO,CACtB,OAAAA,EAAM,KAAO,MAAQA,EAAM,YAAc,IAAMA,EAAM,KAAOA,EAAQyE,GAAWzE,CAAK,CAC7F,CACA,SAASggB,GAAkB/jB,EAAOwC,EAAU,CAC1C,IAAI1Q,EAAO,EACL,MAAE,UAAAyQ,GAAcvC,EACtB,GAAIwC,GAAY,KACHA,EAAA,aACF7Y,GAAQ6Y,CAAQ,EAClB1Q,EAAA,WACE,OAAO0Q,GAAa,SACzB,GAAAD,EAAa,GAAS,CACxB,MAAM2K,EAAO1K,EAAS,QAClB0K,IACGA,EAAA,KAAOA,EAAK,GAAK,IACJ6W,GAAA/jB,EAAOkN,GAAM,EAC1BA,EAAA,KAAOA,EAAK,GAAK,KAExB,WACK,CACEpb,EAAA,GACP,MAAMgzB,EAAWtiB,EAAS,EACtB,CAACsiB,GAAY,CAACpQ,GAAiBlS,CAAQ,EACzCA,EAAS,KAAOlD,GACPwlB,IAAa,GAAKxlB,KACvBA,GAAyB,MAAM,IAAM,EACvCkD,EAAS,EAAI,GAEbA,EAAS,EAAI,EACbxC,EAAM,WAAa,MAEvB,MAEOjW,GAAWyY,CAAQ,GAC5BA,EAAW,CAAE,QAASA,EAAU,KAAMlD,EAAyB,EACxDxN,EAAA,KAEP0Q,EAAW,OAAOA,CAAQ,EACtBD,EAAY,IACPzQ,EAAA,GACI0Q,EAAA,CAACiiB,GAAgBjiB,CAAQ,CAAC,GAE9B1Q,EAAA,GAGXkO,EAAM,SAAWwC,EACjBxC,EAAM,WAAalO,CACrB,CACA,SAAS0yB,MAAcpxB,EAAM,CAC3B,MAAMzG,EAAM,CAAC,EACb,QAASnD,EAAI,EAAGA,EAAI4J,EAAK,OAAQ5J,IAAK,CAC9B,MAAAu7B,EAAU3xB,EAAK5J,CAAC,EACtB,UAAWZ,KAAOm8B,EAChB,GAAIn8B,IAAQ,QACN+D,EAAI,QAAUo4B,EAAQ,QACxBp4B,EAAI,MAAQE,GAAe,CAACF,EAAI,MAAOo4B,EAAQ,KAAK,CAAC,WAE9Cn8B,IAAQ,QACjB+D,EAAI,MAAQT,GAAe,CAACS,EAAI,MAAOo4B,EAAQ,KAAK,CAAC,UAC5C77B,GAAKN,CAAG,EAAG,CACd,MAAAkhB,EAAWnd,EAAI/D,CAAG,EAClBo8B,EAAWD,EAAQn8B,CAAG,EACxBo8B,GAAYlb,IAAakb,GAAY,EAAEr7B,GAAQmgB,CAAQ,GAAKA,EAAS,SAASkb,CAAQ,KACpFr4B,EAAA/D,CAAG,EAAIkhB,EAAW,GAAG,OAAOA,EAAUkb,CAAQ,EAAIA,EACxD,MACSp8B,IAAQ,KACb+D,EAAA/D,CAAG,EAAIm8B,EAAQn8B,CAAG,EAE1B,CAEK,OAAA+D,CACT,CACA,SAASitB,GAAgBlZ,EAAM9D,EAAUoD,EAAOO,EAAY,KAAM,CACrCzD,GAAA4D,EAAM9D,EAAU,EAAG,CAC5CoD,EACAO,CAAA,CACD,CACH,CAEA,MAAM0kB,GAAkB9R,GAAiB,EACzC,IAAI+R,GAAM,EACV,SAAShK,GAAwBlb,EAAO0b,EAAQsH,EAAU,CACxD,MAAMlxB,EAAOkO,EAAM,KACbkO,GAAcwN,EAASA,EAAO,WAAa1b,EAAM,aAAeilB,GAChEroB,EAAW,CACf,IAAKsoB,KACL,MAAAllB,EACA,KAAAlO,EACA,OAAA4pB,EACA,WAAAxN,EACA,KAAM,KAEN,KAAM,KACN,QAAS,KAET,OAAQ,KACR,OAAQ,KAER,IAAK,KACL,MAAO,IAAIlgB,GACT,EAEF,EACA,OAAQ,KACR,MAAO,KACP,QAAS,KACT,YAAa,KACb,UAAW,KACX,SAAU0tB,EAASA,EAAO,SAAW,OAAO,OAAOxN,EAAW,QAAQ,EACtE,IAAKwN,EAASA,EAAO,IAAM,CAAC,GAAI,EAAG,CAAC,EACpC,YAAa,KACb,YAAa,CAAC,EAEd,WAAY,KACZ,WAAY,KAEZ,aAAczF,GAAsBnkB,EAAMoc,CAAU,EACpD,aAAc0T,GAAsB9vB,EAAMoc,CAAU,EAEpD,KAAM,KAEN,QAAS,KAET,cAAeplB,GAEf,aAAcgJ,EAAK,aAEnB,IAAKhJ,GACL,KAAMA,GACN,MAAOA,GACP,MAAOA,GACP,MAAOA,GACP,KAAMA,GACN,WAAYA,GACZ,aAAc,KAEd,SAAAk6B,EACA,WAAYA,EAAWA,EAAS,UAAY,EAC5C,SAAU,KACV,cAAe,GAGf,UAAW,GACX,YAAa,GACb,cAAe,GACf,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,IAAK,KACL,GAAI,KACJ,EAAG,KACH,IAAK,KACL,IAAK,KACL,GAAI,KACJ,GAAI,IACN,EAIW,OAAApmB,EAAA,IAAM,CAAE,EAAGA,CAAS,EAEtBA,EAAA,KAAO8e,EAASA,EAAO,KAAO9e,EACvCA,EAAS,KAAO2kB,GAAK,KAAK,KAAM3kB,CAAQ,EACpCoD,EAAM,IACRA,EAAM,GAAGpD,CAAQ,EAEZA,CACT,CACA,IAAIsN,GAAkB,KAChB,MAAA1E,GAAqB,IAAM0E,IAAmB5K,GACpD,IAAI6lB,GACAC,GACJ,CACE,MAAMC,EAAIp5B,GAAc,EAClBq5B,EAAuB,CAAC18B,EAAKuR,IAAW,CACxC,IAAAorB,EACA,OAAEA,EAAUF,EAAEz8B,CAAG,KAAc28B,EAAAF,EAAEz8B,CAAG,EAAI,CAAC,GAC7C28B,EAAQ,KAAKprB,CAAM,EACXtM,GAAM,CACR03B,EAAQ,OAAS,EAAGA,EAAQ,QAASlsB,GAAQA,EAAIxL,CAAC,CAAC,EAClD03B,EAAQ,CAAC,EAAE13B,CAAC,CACnB,CACF,EAC6Bs3B,GAAAG,EAC3B,2BACCz3B,GAAMqc,GAAkBrc,CAC3B,EACqBu3B,GAAAE,EACnB,sBACCz3B,GAAMkd,GAAwBld,CACjC,CACF,CACA,MAAM+c,GAAsBhO,GAAa,CACvC,MAAMzM,EAAO+Z,GACb,OAAAib,GAA2BvoB,CAAQ,EACnCA,EAAS,MAAM,GAAG,EACX,IAAM,CACXA,EAAS,MAAM,IAAI,EACnBuoB,GAA2Bh1B,CAAI,CACjC,CACF,EACMq1B,GAAuB,IAAM,CACdtb,OAAgB,MAAM,IAAI,EAC7Cib,GAA2B,IAAI,CACjC,EASA,SAASzX,GAAoB9Q,EAAU,CAC9B,OAAAA,EAAS,MAAM,UAAY,CACpC,CACA,IAAImO,GAAwB,GAC5B,SAASoQ,GAAeve,EAAUxC,EAAQ,GAAOyH,EAAY,GAAO,CAClEzH,GAASgrB,GAAmBhrB,CAAK,EACjC,KAAM,CAAE,MAAApN,EAAO,SAAAwV,CAAS,EAAI5F,EAAS,MAC/BgY,EAAalH,GAAoB9Q,CAAQ,EACrC+X,GAAA/X,EAAU5P,EAAO4nB,EAAYxa,CAAK,EAClCkd,GAAA1a,EAAU4F,EAAUX,CAAS,EACvC,MAAM4jB,EAAc7Q,EAAa8Q,GAAuB9oB,EAAUxC,CAAK,EAAI,OAC3E,OAAAA,GAASgrB,GAAmB,EAAK,EAC1BK,CACT,CACA,SAASC,GAAuB9oB,EAAUxC,EAAO,CAE/C,MAAM6R,EAAYrP,EAAS,KAuBlBA,EAAA,YAAqC,cAAO,IAAI,EACzDA,EAAS,MAAQ,IAAI,MAAMA,EAAS,IAAKmR,EAA2B,EAI9D,MAAE,MAAA4X,GAAU1Z,EAClB,GAAI0Z,EAAO,CACK50B,GAAA,EACR,MAAA60B,EAAehpB,EAAS,aAAe+oB,EAAM,OAAS,EAAI9W,GAAmBjS,CAAQ,EAAI,KACzF+N,EAAQC,GAAmBhO,CAAQ,EACnC6oB,EAAc9oB,GAClBgpB,EACA/oB,EACA,EACA,CACgFA,EAAS,MACvFgpB,CAAA,CAEJ,EACMC,EAAe17B,GAAUs7B,CAAW,EAM1C,GALcz0B,GAAA,EACR2Z,EAAA,GACDkb,GAAgBjpB,EAAS,KAAO,CAACwM,GAAexM,CAAQ,GAC3DmM,GAAkBnM,CAAQ,EAExBipB,EAAc,CAEhB,GADYJ,EAAA,KAAKD,GAAsBA,EAAoB,EACvDprB,EACK,OAAAqrB,EAAY,KAAMK,GAAmB,CACxBC,GAAAnpB,EAAUkpB,EAAgB1rB,CAAK,EAClD,EAAE,MAAOnJ,GAAM,CACF4L,GAAA5L,EAAG2L,EAAU,CAAC,EAC3B,EAEDA,EAAS,SAAW6oB,CAOtB,MAEkBM,GAAAnpB,EAAU6oB,EAAarrB,CAAK,CAChD,MAEA4rB,GAAqBppB,EAAUxC,CAAK,CAExC,CACA,SAAS2rB,GAAkBnpB,EAAU6oB,EAAarrB,EAAO,CACnDrQ,GAAW07B,CAAW,EACpB7oB,EAAS,KAAK,kBAChBA,EAAS,UAAY6oB,EAErB7oB,EAAS,OAAS6oB,EAEXv7B,GAASu7B,CAAW,IASpB7oB,EAAA,WAAa3D,GAAUwsB,CAAW,GAS7CO,GAAqBppB,EAAUxC,CAAK,CACtC,CACA,IAAI6rB,GAWJ,SAASD,GAAqBppB,EAAUxC,EAAO8rB,EAAa,CAC1D,MAAMja,EAAYrP,EAAS,KACvB,IAACA,EAAS,OAAQ,CACpB,GAAI,CAACxC,GAAS6rB,IAAW,CAACha,EAAU,OAAQ,CAC1C,MAAMka,EAAWla,EAAU,UAAmC2B,GAAqBhR,CAAQ,EAAE,SAC7F,GAAIupB,EAAU,CAIZ,KAAM,CAAE,gBAAAC,EAAiB,gBAAAC,CAAgB,EAAIzpB,EAAS,WAAW,OAC3D,CAAE,WAAA0pB,EAAY,gBAAiBC,CAA6B,EAAAta,EAC5Dua,EAAuBp9B,GAC3BA,GACE,CACE,gBAAAg9B,EACA,WAAAE,CACF,EACAD,CACF,EACAE,CACF,EACUta,EAAA,OAASga,GAAQE,EAAUK,CAAoB,CAGzD,CACF,CAEO5pB,EAAA,OAASqP,EAAU,QAAUjjB,EAGtC,CAE+B,CACzB,MAAA2hB,EAAQC,GAAmBhO,CAAQ,EAC3B7L,GAAA,EACV,IACFoe,GAAavS,CAAQ,SACrB,CACc5L,GAAA,EACR2Z,EAAA,EACR,CAWJ,CACA,MAAM8b,GAcF,CACF,IAAI50B,EAAQjJ,EAAK,CACT,OAAAgJ,GAAAC,EAAQ,MAAO,EAAE,EAChBA,EAAOjJ,CAAG,EAErB,EASA,SAASimB,GAAmBjS,EAAU,CAC9B,MAAA+T,EAAUY,GAAY,CAqBjB3U,EAAA,QAAU2U,GAAW,CAAC,CACjC,EAiBS,OACL,MAAO,IAAI,MAAM3U,EAAS,MAAO6pB,EAAkB,EACnD,MAAO7pB,EAAS,MAChB,KAAMA,EAAS,KACf,OAAA+T,CACF,CAEJ,CACA,SAASzQ,GAA2BtD,EAAU,CAC5C,OAAIA,EAAS,QACJA,EAAS,cAAgBA,EAAS,YAAc,IAAI,MAAM3D,GAAUX,GAAQsE,EAAS,OAAO,CAAC,EAAG,CACrG,IAAI/K,EAAQjJ,EAAK,CACf,GAAIA,KAAOiJ,EACT,OAAOA,EAAOjJ,CAAG,EACnB,GAAWA,KAAO+kB,GACT,OAAAA,GAAoB/kB,CAAG,EAAEgU,CAAQ,CAE5C,EACA,IAAI/K,EAAQjJ,EAAK,CACR,OAAAA,KAAOiJ,GAAUjJ,KAAO+kB,EAAA,CACjC,CACD,GAEM/Q,EAAS,KAEpB,CAGA,SAASuP,GAAiBF,EAAWya,EAAkB,GAAM,CACpD,OAAA38B,GAAWkiB,CAAS,EAAIA,EAAU,aAAeA,EAAU,KAAOA,EAAU,MAAQya,GAAmBza,EAAU,MAC1H,CAuBA,SAASiY,GAAiB75B,EAAO,CACxB,OAAAN,GAAWM,CAAK,GAAK,cAAeA,CAC7C,CAEM,MAAAiG,GAAW,CAAC+J,EAAiBC,IACvBqsB,GAAWtsB,EAAiBC,EAAcyQ,EAAqB,EAU3E,SAAS4G,GAAE7f,EAAM80B,EAAiBpkB,EAAU,CAC1C,MAAMtU,EAAI,UAAU,OACpB,OAAIA,IAAM,EACJhE,GAAS08B,CAAe,GAAK,CAACj9B,GAAQi9B,CAAe,EACnDpZ,GAAQoZ,CAAe,EAClB3Z,GAAYnb,EAAM,KAAM,CAAC80B,CAAe,CAAC,EAE3C3Z,GAAYnb,EAAM80B,CAAe,EAEjC3Z,GAAYnb,EAAM,KAAM80B,CAAe,GAG5C14B,EAAI,EACNsU,EAAW,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EACzCtU,IAAM,GAAKsf,GAAQhL,CAAQ,IACpCA,EAAW,CAACA,CAAQ,GAEfyK,GAAYnb,EAAM80B,EAAiBpkB,CAAQ,EAEtD,CA8MA,MAAMsR,GAAU,SC5sQhB;AAAA;AAAA;AAAA;AAAA,GASA,IAAI+S,GACJ,MAAMC,GAAK,OAAO,OAAW,KAAe,OAAO,aACnD,GAAIA,GACE,IACuBD,GAAAC,GAAG,aAAa,MAAO,CAC9C,WAAaj+B,GAAQA,CAAA,CACtB,OACS,EAId,MAAMk+B,GAAsBF,GAAUh+B,GAAQg+B,GAAO,WAAWh+B,CAAG,EAAKA,GAAQA,EAC1Em+B,GAAQ,6BACRC,GAAW,qCACXC,GAAM,OAAO,SAAa,IAAc,SAAW,KACnDC,GAAoBD,IAA2BA,GAAA,cAAc,UAAU,EACvEE,GAAU,CACd,OAAQ,CAACrjB,EAAO2X,EAAQla,IAAW,CAC1Bka,EAAA,aAAa3X,EAAOvC,GAAU,IAAI,CAC3C,EACA,OAASuC,GAAU,CACjB,MAAM2X,EAAS3X,EAAM,WACjB2X,GACFA,EAAO,YAAY3X,CAAK,CAE5B,EACA,cAAe,CAACsjB,EAAK1lB,EAAW2lB,EAAIt6B,IAAU,CACtC,MAAAzD,EAAKoY,IAAc,MAAQulB,GAAI,gBAAgBF,GAAOK,CAAG,EAAI1lB,IAAc,SAAWulB,GAAI,gBAAgBD,GAAUI,CAAG,EAAIC,EAAKJ,GAAI,cAAcG,EAAK,CAAE,GAAAC,EAAI,EAAIJ,GAAI,cAAcG,CAAG,EAC5L,OAAIA,IAAQ,UAAYr6B,GAASA,EAAM,UAAY,MAC9CzD,EAAA,aAAa,WAAYyD,EAAM,QAAQ,EAErCzD,CACT,EACA,WAAam7B,GAASwC,GAAI,eAAexC,CAAI,EAC7C,cAAgBA,GAASwC,GAAI,cAAcxC,CAAI,EAC/C,QAAS,CAACrgB,EAAMqgB,IAAS,CACvBrgB,EAAK,UAAYqgB,CACnB,EACA,eAAgB,CAACn7B,EAAIm7B,IAAS,CAC5Bn7B,EAAG,YAAcm7B,CACnB,EACA,WAAargB,GAASA,EAAK,WAC3B,YAAcA,GAASA,EAAK,YAC5B,cAAgBkjB,GAAaL,GAAI,cAAcK,CAAQ,EACvD,WAAWh+B,EAAI6U,EAAI,CACd7U,EAAA,aAAa6U,EAAI,EAAE,CACxB,EAKA,oBAAoBopB,EAAS9L,EAAQla,EAAQG,EAAWtD,EAAOC,EAAK,CAClE,MAAMmpB,EAASjmB,EAASA,EAAO,gBAAkBka,EAAO,UACxD,GAAIrd,IAAUA,IAAUC,GAAOD,EAAM,aACnC,KACEqd,EAAO,aAAard,EAAM,UAAU,EAAI,EAAGmD,CAAM,EAC7C,EAAAnD,IAAUC,GAAO,EAAED,EAAQA,EAAM,eAArC,KAEG,CACL8oB,GAAkB,UAAYJ,GAC5BplB,IAAc,MAAQ,QAAQ6lB,CAAO,SAAW7lB,IAAc,SAAW,SAAS6lB,CAAO,UAAYA,CACvG,EACA,MAAMrB,EAAWgB,GAAkB,QAC/B,GAAAxlB,IAAc,OAASA,IAAc,SAAU,CACjD,MAAM+lB,EAAUvB,EAAS,WACzB,KAAOuB,EAAQ,YACJvB,EAAA,YAAYuB,EAAQ,UAAU,EAEzCvB,EAAS,YAAYuB,CAAO,EAEvBhM,EAAA,aAAayK,EAAU3kB,CAAM,EAE/B,OAELimB,EAASA,EAAO,YAAc/L,EAAO,WAErCla,EAASA,EAAO,gBAAkBka,EAAO,SAC3C,EAEJ,EAEMiM,GAAa,aACbC,GAAY,YACZC,GAAS,OAAO,MAAM,EACtBC,GAA+B,CACnC,KAAM,OACN,KAAM,OACN,IAAK,CACH,KAAM,QACN,QAAS,EACX,EACA,SAAU,CAAC,OAAQ,OAAQ,MAAM,EACjC,eAAgB,OAChB,iBAAkB,OAClB,aAAc,OACd,gBAAiB,OACjB,kBAAmB,OACnB,cAAe,OACf,eAAgB,OAChB,iBAAkB,OAClB,aAAc,MAChB,EACMC,GAA4C3+B,GAChD,CAAC,EACD+b,GACA2iB,EACF,EACME,GAAc,IAClB,EAAE,YAAc,aAChB,EAAE,MAAQD,GACH,GAEHE,IAA6BD,GACjC,CAACh7B,EAAO,CAAE,MAAAuY,KAAYoM,GAAE/K,GAAgBshB,GAAuBl7B,CAAK,EAAGuY,CAAK,CAC9E,EACMsC,GAAW,CAACnH,EAAMtN,EAAO,KAAO,CAChCzJ,GAAQ+W,CAAI,EACdA,EAAK,QAASynB,GAAOA,EAAG,GAAG/0B,CAAI,CAAC,EACvBsN,GACTA,EAAK,GAAGtN,CAAI,CAEhB,EACMg1B,GAAuB1nB,GACpBA,EAAO/W,GAAQ+W,CAAI,EAAIA,EAAK,KAAMynB,GAAOA,EAAG,OAAS,CAAC,EAAIznB,EAAK,OAAS,EAAI,GAErF,SAASwnB,GAAuBviB,EAAU,CACxC,MAAM0iB,EAAY,CAAC,EACnB,UAAWz/B,KAAO+c,EACV/c,KAAOk/B,KACDO,EAAAz/B,CAAG,EAAI+c,EAAS/c,CAAG,GAG7B,GAAA+c,EAAS,MAAQ,GACZ,OAAA0iB,EAEH,MACJ,KAAAv7B,EAAO,IACP,KAAAgF,EACA,SAAAw2B,EACA,eAAAC,EAAiB,GAAGz7B,CAAI,cACxB,iBAAA07B,EAAmB,GAAG17B,CAAI,gBAC1B,aAAA27B,EAAe,GAAG37B,CAAI,YACtB,gBAAA47B,EAAkBH,EAClB,kBAAAI,EAAoBH,EACpB,cAAAI,EAAgBH,EAChB,eAAAI,EAAiB,GAAG/7B,CAAI,cACxB,iBAAAg8B,EAAmB,GAAGh8B,CAAI,gBAC1B,aAAAi8B,EAAe,GAAGj8B,CAAI,aACpB6Y,EACEqjB,EAAYC,GAAkBX,CAAQ,EACtCY,EAAgBF,GAAaA,EAAU,CAAC,EACxCG,EAAgBH,GAAaA,EAAU,CAAC,EACxC,CACJ,cAAA/hB,EACA,QAAAC,EACA,iBAAAE,EACA,QAAAE,EACA,iBAAAE,EACA,eAAAC,EAAiBR,EACjB,SAAAS,EAAWR,EACX,kBAAAU,EAAoBR,CAAA,EAClBihB,EACEe,EAAc,CAAC7/B,EAAI8/B,EAAU1yB,EAAM2yB,IAAgB,CACvD//B,EAAG,gBAAkB+/B,EACCC,GAAAhgC,EAAI8/B,EAAWT,EAAgBH,CAAY,EAC3Cc,GAAAhgC,EAAI8/B,EAAWV,EAAoBH,CAAgB,EACzE7xB,GAAQA,EAAK,CACf,EACM6yB,EAAc,CAACjgC,EAAIoN,IAAS,CAChCpN,EAAG,WAAa,GAChBggC,GAAsBhgC,EAAIs/B,CAAc,EACxCU,GAAsBhgC,EAAIw/B,CAAY,EACtCQ,GAAsBhgC,EAAIu/B,CAAgB,EAC1CnyB,GAAQA,EAAK,CACf,EACM8yB,EAAiBJ,GACd,CAAC9/B,EAAIoN,IAAS,CACb,MAAA+J,EAAO2oB,EAAW3hB,EAAWR,EAC7BkF,EAAU,IAAMgd,EAAY7/B,EAAI8/B,EAAU1yB,CAAI,EACpDkR,GAASnH,EAAM,CAACnX,EAAI6iB,CAAO,CAAC,EAC5Bsd,GAAU,IAAM,CACQH,GAAAhgC,EAAI8/B,EAAWX,EAAkBH,CAAc,EAClDoB,GAAApgC,EAAI8/B,EAAWT,EAAgBH,CAAY,EACzDL,GAAoB1nB,CAAI,GACRkpB,GAAArgC,EAAIuI,EAAMo3B,EAAe9c,CAAO,CACrD,CACD,CACH,EAEF,OAAOhjB,GAAOi/B,EAAW,CACvB,cAAc9+B,EAAI,CACPse,GAAAZ,EAAe,CAAC1d,CAAE,CAAC,EAC5BogC,GAAmBpgC,EAAIg/B,CAAc,EACrCoB,GAAmBpgC,EAAIi/B,CAAgB,CACzC,EACA,eAAej/B,EAAI,CACRse,GAAAJ,EAAgB,CAACle,CAAE,CAAC,EAC7BogC,GAAmBpgC,EAAIm/B,CAAe,EACtCiB,GAAmBpgC,EAAIo/B,CAAiB,CAC1C,EACA,QAASc,EAAc,EAAK,EAC5B,SAAUA,EAAc,EAAI,EAC5B,QAAQlgC,EAAIoN,EAAM,CAChBpN,EAAG,WAAa,GAChB,MAAM6iB,EAAU,IAAMod,EAAYjgC,EAAIoN,CAAI,EAC1CgzB,GAAmBpgC,EAAIs/B,CAAc,EAChCt/B,EAAG,iBAINogC,GAAmBpgC,EAAIu/B,CAAgB,EAC3Be,GAAA,IAJAA,GAAA,EACZF,GAAmBpgC,EAAIu/B,CAAgB,GAKzCY,GAAU,IAAM,CACTngC,EAAG,aAGRggC,GAAsBhgC,EAAIs/B,CAAc,EACxCc,GAAmBpgC,EAAIw/B,CAAY,EAC9BX,GAAoB9gB,CAAO,GACXsiB,GAAArgC,EAAIuI,EAAMq3B,EAAe/c,CAAO,EACrD,CACD,EACDvE,GAASP,EAAS,CAAC/d,EAAI6iB,CAAO,CAAC,CACjC,EACA,iBAAiB7iB,EAAI,CACP6/B,EAAA7/B,EAAI,GAAO,OAAQ,EAAI,EAC1Bse,GAAAT,EAAkB,CAAC7d,CAAE,CAAC,CACjC,EACA,kBAAkBA,EAAI,CACR6/B,EAAA7/B,EAAI,GAAM,OAAQ,EAAI,EACzBse,GAAAD,EAAmB,CAACre,CAAE,CAAC,CAClC,EACA,iBAAiBA,EAAI,CACnBigC,EAAYjgC,CAAE,EACLse,GAAAL,EAAkB,CAACje,CAAE,CAAC,EACjC,CACD,CACH,CACA,SAAS0/B,GAAkBX,EAAU,CACnC,GAAIA,GAAY,KACP,YACT,GAAWp+B,GAASo+B,CAAQ,EACnB,OAACwB,GAASxB,EAAS,KAAK,EAAGwB,GAASxB,EAAS,KAAK,CAAC,EACrD,CACC,MAAAx8B,EAAIg+B,GAASxB,CAAQ,EACpB,OAACx8B,EAAGA,CAAC,EAEhB,CACA,SAASg+B,GAASjhC,EAAK,CAKd,OAJKkD,GAASlD,CAAG,CAK1B,CACA,SAAS8gC,GAAmBpgC,EAAIwgC,EAAK,CAC/BA,EAAA,MAAM,KAAK,EAAE,QAAS/+B,GAAMA,GAAKzB,EAAG,UAAU,IAAIyB,CAAC,CAAC,GACvDzB,EAAGs+B,EAAM,IAAMt+B,EAAGs+B,EAAM,EAAwB,UAAQ,IAAIkC,CAAG,CAClE,CACA,SAASR,GAAsBhgC,EAAIwgC,EAAK,CAClCA,EAAA,MAAM,KAAK,EAAE,QAAS/+B,GAAMA,GAAKzB,EAAG,UAAU,OAAOyB,CAAC,CAAC,EACrD,MAAAg/B,EAAOzgC,EAAGs+B,EAAM,EAClBmC,IACFA,EAAK,OAAOD,CAAG,EACVC,EAAK,OACRzgC,EAAGs+B,EAAM,EAAI,QAGnB,CACA,SAAS6B,GAAU1uB,EAAI,CACrB,sBAAsB,IAAM,CAC1B,sBAAsBA,CAAE,EACzB,CACH,CACA,IAAIivB,GAAQ,EACZ,SAASL,GAAmBrgC,EAAI2gC,EAAcC,EAAiB/d,EAAS,CAChE,MAAAhO,EAAK7U,EAAG,OAAS,EAAE0gC,GACnBG,EAAoB,IAAM,CAC1BhsB,IAAO7U,EAAG,QACJ6iB,EAAA,CAEZ,EACA,GAAI+d,GAAmB,KACd,kBAAWC,EAAmBD,CAAe,EAEtD,KAAM,CAAE,KAAAr4B,EAAM,QAAAu4B,EAAS,UAAAC,CAAc,EAAAC,GAAkBhhC,EAAI2gC,CAAY,EACvE,GAAI,CAACp4B,EACH,OAAOsa,EAAQ,EAEjB,MAAMoe,EAAW14B,EAAO,MACxB,IAAI24B,EAAQ,EACZ,MAAMnsB,EAAM,IAAM,CACb/U,EAAA,oBAAoBihC,EAAUE,CAAK,EACpBN,EAAA,CACpB,EACMM,EAASz5B,GAAM,CACfA,EAAE,SAAW1H,GAAM,EAAEkhC,GAASH,GAC5BhsB,EAAA,CAER,EACA,WAAW,IAAM,CACXmsB,EAAQH,GACNhsB,EAAA,CACN,EACC+rB,EAAU,CAAC,EACX9gC,EAAA,iBAAiBihC,EAAUE,CAAK,CACrC,CACA,SAASH,GAAkBhhC,EAAI2gC,EAAc,CACrC,MAAAS,EAAS,OAAO,iBAAiBphC,CAAE,EACnCqhC,EAAsBhiC,IAAS+hC,EAAO/hC,CAAG,GAAK,IAAI,MAAM,IAAI,EAC5DiiC,EAAmBD,EAAmB,GAAGjD,EAAU,OAAO,EAC1DmD,EAAsBF,EAAmB,GAAGjD,EAAU,UAAU,EAChEoD,EAAoBC,GAAWH,EAAkBC,CAAmB,EACpEG,EAAkBL,EAAmB,GAAGhD,EAAS,OAAO,EACxDsD,EAAqBN,EAAmB,GAAGhD,EAAS,UAAU,EAC9DuD,EAAmBH,GAAWC,EAAiBC,CAAkB,EACvE,IAAIp5B,EAAO,KACPu4B,EAAU,EACVC,EAAY,EACZJ,IAAiBvC,GACfoD,EAAoB,IACfj5B,EAAA61B,GACG0C,EAAAU,EACVT,EAAYQ,EAAoB,QAEzBZ,IAAiBtC,GACtBuD,EAAmB,IACdr5B,EAAA81B,GACGyC,EAAAc,EACVb,EAAYY,EAAmB,SAGvBb,EAAA,KAAK,IAAIU,EAAmBI,CAAgB,EACtDr5B,EAAOu4B,EAAU,EAAIU,EAAoBI,EAAmBxD,GAAaC,GAAY,KACrF0C,EAAYx4B,EAAOA,IAAS61B,GAAamD,EAAoB,OAASI,EAAmB,OAAS,GAE9F,MAAAE,EAAet5B,IAAS61B,IAAc,yBAAyB,KACnEiD,EAAmB,GAAGjD,EAAU,UAAU,EAAE,SAAS,CACvD,EACO,OACL,KAAA71B,EACA,QAAAu4B,EACA,UAAAC,EACA,aAAAc,CACF,CACF,CACA,SAASJ,GAAWK,EAAQrC,EAAW,CAC9B,KAAAqC,EAAO,OAASrC,EAAU,QACtBqC,IAAO,OAAOA,CAAM,EAE/B,OAAO,KAAK,IAAI,GAAGrC,EAAU,IAAI,CAACsC,EAAG9hC,IAAM+hC,GAAKD,CAAC,EAAIC,GAAKF,EAAO7hC,CAAC,CAAC,CAAC,CAAC,CACvE,CACA,SAAS+hC,GAAKxvB,EAAG,CACX,OAAAA,IAAM,OAAe,EAClB,OAAOA,EAAE,MAAM,EAAG,EAAE,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAI,GACpD,CACA,SAAS8tB,IAAc,CACrB,OAAO,SAAS,KAAK,YACvB,CAEA,SAAS2B,GAAWjiC,EAAIc,EAAOohC,EAAO,CAC9B,MAAAC,EAAoBniC,EAAGs+B,EAAM,EAC/B6D,IACOrhC,KAAQ,CAACA,EAAO,GAAGqhC,CAAiB,EAAI,CAAC,GAAGA,CAAiB,GAAG,KAAK,GAAG,GAE/ErhC,GAAS,KACXd,EAAG,gBAAgB,OAAO,EACjBkiC,EACNliC,EAAA,aAAa,QAASc,CAAK,EAE9Bd,EAAG,UAAYc,CAEnB,CAEA,MAAMshC,GAAuB,OAAO,MAAM,EACpCC,GAAc,OAAO,MAAM,EAC3BC,IAAQ,CACZ,YAAYtiC,EAAI,CAAE,MAAAc,GAAS,CAAE,WAAAmvB,GAAc,CACtCjwB,EAAAoiC,EAAoB,EAAIpiC,EAAG,MAAM,UAAY,OAAS,GAAKA,EAAG,MAAM,QACnEiwB,GAAcnvB,EAChBmvB,EAAW,YAAYjwB,CAAE,EAEzBuiC,GAAWviC,EAAIc,CAAK,CAExB,EACA,QAAQd,EAAI,CAAE,MAAAc,GAAS,CAAE,WAAAmvB,GAAc,CACjCA,GAAcnvB,GAChBmvB,EAAW,MAAMjwB,CAAE,CAEvB,EACA,QAAQA,EAAI,CAAE,MAAAc,EAAO,SAAAiB,CAAY,GAAE,WAAAkuB,GAAc,CAC3C,CAACnvB,GAAU,CAACiB,IACZkuB,EACEnvB,GACFmvB,EAAW,YAAYjwB,CAAE,EACzBuiC,GAAWviC,EAAI,EAAI,EACnBiwB,EAAW,MAAMjwB,CAAE,GAERiwB,EAAA,MAAMjwB,EAAI,IAAM,CACzBuiC,GAAWviC,EAAI,EAAK,EACrB,EAGHuiC,GAAWviC,EAAIc,CAAK,EAExB,EACA,cAAcd,EAAI,CAAE,MAAAc,GAAS,CAC3ByhC,GAAWviC,EAAIc,CAAK,EAExB,EAIA,SAASyhC,GAAWviC,EAAIc,EAAO,CAC7Bd,EAAG,MAAM,QAAUc,EAAQd,EAAGoiC,EAAoB,EAAI,OACnDpiC,EAAAqiC,EAAW,EAAI,CAACvhC,CACrB,CASA,MAAM0hC,GAAe,OAAoE,EAAE,EAwErFC,GAAY,sBAClB,SAASC,GAAW1iC,EAAI4G,EAAML,EAAM,CAClC,MAAM5C,EAAQ3D,EAAG,MACX2iC,EAAcliC,GAAS8F,CAAI,EACjC,IAAIq8B,EAAuB,GACvB,GAAAr8B,GAAQ,CAACo8B,EAAa,CACxB,GAAI/7B,EACE,GAACnG,GAASmG,CAAI,EAOhB,UAAWi8B,KAAaj8B,EAAK,MAAM,GAAG,EAAG,CACjC,MAAAvH,EAAMwjC,EAAU,MAAM,EAAGA,EAAU,QAAQ,GAAG,CAAC,EAAE,KAAK,EACxDt8B,EAAKlH,CAAG,GAAK,MACNyjC,GAAAn/B,EAAOtE,EAAK,EAAE,CACzB,KAVF,WAAWA,KAAOuH,EACZL,EAAKlH,CAAG,GAAK,MACNyjC,GAAAn/B,EAAOtE,EAAK,EAAE,EAY/B,UAAWA,KAAOkH,EACZlH,IAAQ,YACaujC,EAAA,IAEzBE,GAASn/B,EAAOtE,EAAKkH,EAAKlH,CAAG,CAAC,CAChC,SAEIsjC,GACF,GAAI/7B,IAASL,EAAM,CACX,MAAAw8B,EAAap/B,EAAM6+B,EAAY,EACjCO,IACFx8B,GAAQ,IAAMw8B,GAEhBp/B,EAAM,QAAU4C,EACOq8B,EAAAH,GAAU,KAAKl8B,CAAI,QAEnCK,GACT5G,EAAG,gBAAgB,OAAO,EAG1BoiC,MAAwBpiC,IAC1BA,EAAGoiC,EAAoB,EAAIQ,EAAuBj/B,EAAM,QAAU,GAC9D3D,EAAGqiC,EAAW,IAChB1+B,EAAM,QAAU,QAGtB,CAEA,MAAMq/B,GAAc,iBACpB,SAASF,GAASn/B,EAAOJ,EAAMjE,EAAK,CAC9B,GAAAc,GAAQd,CAAG,EACbA,EAAI,QAASgF,GAAMw+B,GAASn/B,EAAOJ,EAAMe,CAAC,CAAC,UAEvChF,GAAO,OAAYA,EAAA,IAQnBiE,EAAK,WAAW,IAAI,EAChBI,EAAA,YAAYJ,EAAMjE,CAAG,MACtB,CACC,MAAA2jC,EAAWC,GAAWv/B,EAAOJ,CAAI,EACnCy/B,GAAY,KAAK1jC,CAAG,EAChBqE,EAAA,YACJhC,GAAUshC,CAAQ,EAClB3jC,EAAI,QAAQ0jC,GAAa,EAAE,EAC3B,WACF,EAEAr/B,EAAMs/B,CAAQ,EAAI3jC,CACpB,CAGN,CACA,MAAM6jC,GAAW,CAAC,SAAU,MAAO,IAAI,EACjCC,GAAc,CAAC,EACrB,SAASF,GAAWv/B,EAAO0/B,EAAS,CAC5B,MAAApgB,EAASmgB,GAAYC,CAAO,EAClC,GAAIpgB,EACK,OAAAA,EAEL,IAAA1f,EAAOhC,GAAS8hC,CAAO,EACvB,GAAA9/B,IAAS,UAAYA,KAAQI,EACxB,OAAAy/B,GAAYC,CAAO,EAAI9/B,EAEhCA,EAAO3B,GAAW2B,CAAI,EACtB,QAAS,EAAI,EAAG,EAAI4/B,GAAS,OAAQ,IAAK,CAClC,MAAAF,EAAWE,GAAS,CAAC,EAAI5/B,EAC/B,GAAI0/B,KAAYt/B,EACP,OAAAy/B,GAAYC,CAAO,EAAIJ,CAChC,CAEK,OAAAI,CACT,CAEA,MAAMC,GAAU,+BAChB,SAASC,GAAUvjC,EAAIX,EAAKyB,EAAOohC,EAAO7uB,EAAUmwB,EAAY3/B,GAAqBxE,CAAG,EAAG,CACrF6iC,GAAS7iC,EAAI,WAAW,QAAQ,EAC9ByB,GAAS,KACXd,EAAG,kBAAkBsjC,GAASjkC,EAAI,MAAM,EAAGA,EAAI,MAAM,CAAC,EAEnDW,EAAA,eAAesjC,GAASjkC,EAAKyB,CAAK,EAGnCA,GAAS,MAAQ0iC,GAAa,CAAC1/B,GAAmBhD,CAAK,EACzDd,EAAG,gBAAgBX,CAAG,EAEnBW,EAAA,aACDX,EACAmkC,EAAY,GAAK9iC,GAASI,CAAK,EAAI,OAAOA,CAAK,EAAIA,CACrD,CAGN,CAEA,SAAS2iC,GAAazjC,EAAIX,EAAKyB,EAAOoX,EAAiBwrB,EAAU,CAC3D,GAAArkC,IAAQ,aAAeA,IAAQ,cAAe,CAC5CyB,GAAS,OACXd,EAAGX,CAAG,EAAIA,IAAQ,YAAcm+B,GAAoB18B,CAAK,EAAIA,GAE/D,OAEF,MAAMg9B,EAAM99B,EAAG,QACX,GAAAX,IAAQ,SAAWy+B,IAAQ,YAC/B,CAACA,EAAI,SAAS,GAAG,EAAG,CACZ,MAAA/7B,EAAW+7B,IAAQ,SAAW99B,EAAG,aAAa,OAAO,GAAK,GAAKA,EAAG,MAClE0I,EAAW5H,GAAS,KAGxBd,EAAG,OAAS,WAAa,KAAO,GAC9B,OAAOc,CAAK,GACZiB,IAAa2G,GAAY,EAAE,WAAY1I,MACzCA,EAAG,MAAQ0I,GAET5H,GAAS,MACXd,EAAG,gBAAgBX,CAAG,EAExBW,EAAG,OAASc,EACZ,OAEF,IAAI6iC,EAAa,GACb,GAAA7iC,IAAU,IAAMA,GAAS,KAAM,CAC3B,MAAAyH,EAAO,OAAOvI,EAAGX,CAAG,EACtBkJ,IAAS,UACXzH,EAAQgD,GAAmBhD,CAAK,EACvBA,GAAS,MAAQyH,IAAS,UAC3BzH,EAAA,GACK6iC,EAAA,IACJp7B,IAAS,WACVzH,EAAA,EACK6iC,EAAA,GACf,CAEE,IACF3jC,EAAGX,CAAG,EAAIyB,OACA,CAMV,CAEY6iC,GAAA3jC,EAAG,gBAAgB0jC,GAAYrkC,CAAG,CAClD,CAEA,SAASukC,GAAiB5jC,EAAIi4B,EAAO3P,EAAS5W,EAAS,CAClD1R,EAAA,iBAAiBi4B,EAAO3P,EAAS5W,CAAO,CAC7C,CACA,SAASmyB,GAAoB7jC,EAAIi4B,EAAO3P,EAAS5W,EAAS,CACrD1R,EAAA,oBAAoBi4B,EAAO3P,EAAS5W,CAAO,CAChD,CACA,MAAMoyB,GAAS,OAAO,MAAM,EAC5B,SAASC,GAAW/jC,EAAIqjC,EAASW,EAAWC,EAAW5wB,EAAW,KAAM,CACtE,MAAM6wB,EAAWlkC,EAAG8jC,EAAM,IAAM9jC,EAAG8jC,EAAM,EAAI,IACvCK,EAAkBD,EAASb,CAAO,EACxC,GAAIY,GAAaE,EACfA,EAAgB,MAA6FF,MACxG,CACL,KAAM,CAAC1gC,EAAMmO,CAAO,EAAI0yB,GAAUf,CAAO,EACzC,GAAIY,EAAW,CACP,MAAAI,EAAUH,EAASb,CAAO,EAAIiB,GACmDL,EACrF5wB,CACF,EACiBuwB,GAAA5jC,EAAIuD,EAAM8gC,EAAS3yB,CAAO,OAClCyyB,IACWN,GAAA7jC,EAAIuD,EAAM4gC,EAAiBzyB,CAAO,EACtDwyB,EAASb,CAAO,EAAI,OACtB,CAEJ,CACA,MAAMkB,GAAoB,4BAC1B,SAASH,GAAU7gC,EAAM,CACnB,IAAAmO,EACA,GAAA6yB,GAAkB,KAAKhhC,CAAI,EAAG,CAChCmO,EAAU,CAAC,EACP,IAAAmX,EACJ,KAAOA,EAAItlB,EAAK,MAAMghC,EAAiB,GAC9BhhC,IAAK,MAAM,EAAGA,EAAK,OAASslB,EAAE,CAAC,EAAE,MAAM,EAC9CnX,EAAQmX,EAAE,CAAC,EAAE,aAAa,EAAI,EAChC,CAGK,OADOtlB,EAAK,CAAC,IAAM,IAAMA,EAAK,MAAM,CAAC,EAAI5B,GAAU4B,EAAK,MAAM,CAAC,CAAC,EACxDmO,CAAO,CACxB,CACA,IAAI8yB,GAAY,EAChB,MAAM7vB,WAA4B,QAAQ,EACpC8vB,GAAS,IAAMD,KAAc7vB,GAAE,KAAK,IAAM6vB,GAAY,CAAC,EAAGA,GAAY,KAAK,IAAI,GACrF,SAASF,GAAcI,EAAcrxB,EAAU,CACvC,MAAAgxB,EAAW38B,GAAM,CACjB,IAACA,EAAE,KACHA,EAAA,KAAO,KAAK,IAAI,UACTA,EAAE,MAAQ28B,EAAQ,SAC3B,OAEF9wB,GACEoxB,GAA8Bj9B,EAAG28B,EAAQ,KAAK,EAC9ChxB,EACA,EACA,CAAC3L,CAAC,CACJ,CACF,EACA,OAAA28B,EAAQ,MAAQK,EAChBL,EAAQ,SAAWI,GAAO,EACnBJ,CACT,CAWA,SAASM,GAA8Bj9B,EAAG5G,EAAO,CAC3C,GAAAV,GAAQU,CAAK,EAAG,CAClB,MAAM8jC,EAAel9B,EAAE,yBACvB,OAAAA,EAAE,yBAA2B,IAAM,CACjCk9B,EAAa,KAAKl9B,CAAC,EACnBA,EAAE,SAAW,EACf,EACO5G,EAAM,IACVM,GAAQ2yB,GAAO,CAACA,EAAG,UAAY3yB,GAAMA,EAAG2yB,CAAE,CAC7C,MAEO,QAAAjzB,CAEX,CAEA,MAAM+jC,GAAcxlC,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,KAC/EA,EAAI,WAAW,CAAC,EAAI,IAAMA,EAAI,WAAW,CAAC,EAAI,IACxCylC,GAAY,CAAC9kC,EAAIX,EAAK2kC,EAAWC,EAAW7rB,EAAWF,IAAoB,CAC/E,MAAMgqB,EAAQ9pB,IAAc,MACxB/Y,IAAQ,QACC4iC,GAAAjiC,EAAIikC,EAAW/B,CAAK,EACtB7iC,IAAQ,QACNqjC,GAAA1iC,EAAIgkC,EAAWC,CAAS,EAC1BtkC,GAAKN,CAAG,EACZO,GAAgBP,CAAG,GACtB0kC,GAAW/jC,EAAIX,EAAK2kC,EAAWC,EAAW/rB,CAAe,GAElD7Y,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAQA,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAS0lC,GAAgB/kC,EAAIX,EAAK4kC,EAAW/B,CAAK,IAClIuB,GAAAzjC,EAAIX,EAAK4kC,CAAS,EAC3B,CAACjkC,EAAG,QAAQ,SAAS,GAAG,IAAMX,IAAQ,SAAWA,IAAQ,WAAaA,IAAQ,aAChFkkC,GAAUvjC,EAAIX,EAAK4kC,EAAW/B,EAAOhqB,EAAiB7Y,IAAQ,OAAO,GAIvEW,EAAG,WAAa,QAAQ,KAAKX,CAAG,GAAK,CAACoB,GAASwjC,CAAS,GAExDR,GAAazjC,EAAIglC,GAAW3lC,CAAG,EAAG4kC,EAAW/rB,EAAiB7Y,CAAG,GAE7DA,IAAQ,aACVW,EAAG,WAAaikC,EACP5kC,IAAQ,gBACjBW,EAAG,YAAcikC,GAETV,GAAAvjC,EAAIX,EAAK4kC,EAAW/B,CAAK,EAEvC,EACA,SAAS6C,GAAgB/kC,EAAIX,EAAKyB,EAAOohC,EAAO,CAC9C,GAAIA,EAIF,MAHI,GAAA7iC,IAAQ,aAAeA,IAAQ,eAG/BA,KAAOW,GAAM6kC,GAAWxlC,CAAG,GAAKmB,GAAWM,CAAK,GActD,GATIzB,IAAQ,cAAgBA,IAAQ,aAAeA,IAAQ,aAGvDA,IAAQ,QAGRA,IAAQ,QAAUW,EAAG,UAAY,SAGjCX,IAAQ,QAAUW,EAAG,UAAY,WAC5B,SAEL,GAAAX,IAAQ,SAAWA,IAAQ,SAAU,CACvC,MAAMy+B,EAAM99B,EAAG,QACf,GAAI89B,IAAQ,OAASA,IAAQ,SAAWA,IAAQ,UAAYA,IAAQ,SAC3D,QACT,CAEF,OAAI+G,GAAWxlC,CAAG,GAAKoB,GAASK,CAAK,EAC5B,GAEFzB,KAAOW,CAChB,CAsbA,MAAMilC,OAAkC,QAClCC,OAAqC,QACrCC,GAAY,OAAO,SAAS,EAC5B7pB,GAAa,OAAO,UAAU,EAC9B8pB,GAAY,IAChB,OAAO,EAAE,MAAM,KACR,GAEHC,GAA+CD,GAAA,CACnD,KAAM,kBACN,MAAuBvlC,GAAO,CAAC,EAAG2+B,GAA2B,CAC3D,IAAK,OACL,UAAW,OACZ,EACD,MAAM/6B,EAAO,CAAE,MAAAuY,GAAS,CACtB,MAAM3I,EAAW4I,GAAmB,EAC9BT,EAAQD,GAAmB,EAC7B,IAAA0d,EACAhgB,EACJ,OAAA0I,GAAU,IAAM,CACV,IAACsX,EAAa,OAChB,OAEF,MAAMqM,EAAY7hC,EAAM,WAAa,GAAGA,EAAM,MAAQ,GAAG,QACzD,GAAI,CAAC8hC,GACHtM,EAAa,CAAC,EAAE,GAChB5lB,EAAS,MAAM,GACfiyB,CAAA,EAEA,OAEFrM,EAAa,QAAQuM,EAAc,EACnCvM,EAAa,QAAQwM,EAAc,EAC7B,MAAAC,EAAgBzM,EAAa,OAAO0M,EAAgB,EAC9CrF,GAAA,EACEoF,EAAA,QAASjkC,GAAM,CAC3B,MAAMzB,EAAKyB,EAAE,GACPkC,EAAQ3D,EAAG,MACjBogC,GAAmBpgC,EAAIslC,CAAS,EAChC3hC,EAAM,UAAYA,EAAM,gBAAkBA,EAAM,mBAAqB,GACrE,MAAM8N,EAAKzR,EAAGmlC,EAAS,EAAKz9B,GAAM,CAC5BA,GAAKA,EAAE,SAAW1H,IAGlB,CAAC0H,GAAK,aAAa,KAAKA,EAAE,YAAY,KACrC1H,EAAA,oBAAoB,gBAAiByR,CAAE,EAC1CzR,EAAGmlC,EAAS,EAAI,KAChBnF,GAAsBhgC,EAAIslC,CAAS,EAEvC,EACGtlC,EAAA,iBAAiB,gBAAiByR,CAAE,EACxC,EACF,EACM,IAAM,CACL,MAAA2K,EAAW7S,GAAM9F,CAAK,EACtBmiC,EAAqBjH,GAAuBviB,CAAQ,EACtD,IAAA0hB,EAAM1hB,EAAS,KAAOiD,GAE1B,GADA4Z,EAAe,CAAC,EACZhgB,EACF,QAAShZ,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IAAK,CAClC,MAAAua,EAAQvB,EAAShZ,CAAC,EACpBua,EAAM,IAAMA,EAAM,cAAc,UAClCye,EAAa,KAAKze,CAAK,EACvBqC,GACErC,EACAkC,GACElC,EACAorB,EACApqB,EACAnI,CAAA,CAEJ,EACY4xB,GAAA,IACVzqB,EACAA,EAAM,GAAG,sBAAsB,CACjC,EACF,CAGJvB,EAAW+C,EAAM,QAAUE,GAAyBF,EAAM,QAAS,GAAI,CAAC,EACxE,QAAS/b,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IAAK,CAClC,MAAAua,EAAQvB,EAAShZ,CAAC,EACpBua,EAAM,KAAO,MACfqC,GACErC,EACAkC,GAAuBlC,EAAOorB,EAAoBpqB,EAAOnI,CAAQ,CACnE,CAGF,CAEK,OAAAqQ,GAAYoa,EAAK,KAAM7kB,CAAQ,CACxC,EAEJ,CAAC,EACK4sB,IAAkBR,GACxB,SAASG,GAAe/jC,EAAG,CACzB,MAAMzB,EAAKyB,EAAE,GACTzB,EAAGmlC,EAAS,GACdnlC,EAAGmlC,EAAS,EAAE,EAEZnlC,EAAGsb,EAAU,GACftb,EAAGsb,EAAU,EAAE,CAEnB,CACA,SAASmqB,GAAehkC,EAAG,CACzByjC,GAAe,IAAIzjC,EAAGA,EAAE,GAAG,uBAAuB,CACpD,CACA,SAASkkC,GAAiBlkC,EAAG,CACrB,MAAAqkC,EAASb,GAAY,IAAIxjC,CAAC,EAC1BskC,EAASb,GAAe,IAAIzjC,CAAC,EAC7BukC,EAAKF,EAAO,KAAOC,EAAO,KAC1BE,EAAKH,EAAO,IAAMC,EAAO,IAC/B,GAAIC,GAAMC,EAAI,CACN,MAAAzzB,EAAI/Q,EAAE,GAAG,MACf,OAAA+Q,EAAE,UAAYA,EAAE,gBAAkB,aAAawzB,CAAE,MAAMC,CAAE,MACzDzzB,EAAE,mBAAqB,KAChB/Q,CAAA,CAEX,CACA,SAAS8jC,GAAgBvlC,EAAI4yB,EAAM0S,EAAW,CACtC,MAAAY,EAAQlmC,EAAG,UAAU,EACrBygC,EAAOzgC,EAAGs+B,EAAM,EAClBmC,GACGA,EAAA,QAASD,GAAQ,CAChBA,EAAA,MAAM,KAAK,EAAE,QAAS/+B,GAAMA,GAAKykC,EAAM,UAAU,OAAOzkC,CAAC,CAAC,EAC/D,EAEO6jC,EAAA,MAAM,KAAK,EAAE,QAAS7jC,GAAMA,GAAKykC,EAAM,UAAU,IAAIzkC,CAAC,CAAC,EACjEykC,EAAM,MAAM,QAAU,OACtB,MAAMluB,EAAY4a,EAAK,WAAa,EAAIA,EAAOA,EAAK,WACpD5a,EAAU,YAAYkuB,CAAK,EAC3B,KAAM,CAAE,aAAArE,CAAA,EAAiBb,GAAkBkF,CAAK,EAChD,OAAAluB,EAAU,YAAYkuB,CAAK,EACpBrE,CACT,CAEA,MAAMsE,GAAoB1vB,GAAU,CAClC,MAAMrV,EAAKqV,EAAM,MAAM,qBAAqB,GAAK,GAC1C,OAAArW,GAAQgB,CAAE,EAAKN,GAAUkB,GAAeZ,EAAIN,CAAK,EAAIM,CAC9D,EACA,SAASglC,GAAmB1+B,EAAG,CAC7BA,EAAE,OAAO,UAAY,EACvB,CACA,SAAS2+B,GAAiB3+B,EAAG,CAC3B,MAAMY,EAASZ,EAAE,OACbY,EAAO,YACTA,EAAO,UAAY,GACnBA,EAAO,cAAc,IAAI,MAAM,OAAO,CAAC,EAE3C,CACA,MAAMg+B,GAAY,OAAO,SAAS,EAC5BC,IAAa,CACjB,QAAQvmC,EAAI,CAAE,UAAW,CAAE,KAAAwmC,EAAM,KAAAC,EAAM,OAAAC,EAAS,EAAGjwB,EAAO,CACrDzW,EAAAsmC,EAAS,EAAIH,GAAiB1vB,CAAK,EACtC,MAAMkwB,EAAeD,GAAUjwB,EAAM,OAASA,EAAM,MAAM,OAAS,SACnEmtB,GAAiB5jC,EAAIwmC,EAAO,SAAW,QAAU9+B,GAAM,CACjD,GAAAA,EAAE,OAAO,UAAW,OACxB,IAAIk/B,EAAW5mC,EAAG,MACdymC,IACFG,EAAWA,EAAS,KAAK,GAEvBD,IACFC,EAAWtkC,GAAcskC,CAAQ,GAEhC5mC,EAAAsmC,EAAS,EAAEM,CAAQ,EACvB,EACGH,GACe7C,GAAA5jC,EAAI,SAAU,IAAM,CAChCA,EAAA,MAAQA,EAAG,MAAM,KAAK,EAC1B,EAEEwmC,IACc5C,GAAA5jC,EAAI,mBAAoBomC,EAAkB,EAC1CxC,GAAA5jC,EAAI,iBAAkBqmC,EAAgB,EACtCzC,GAAA5jC,EAAI,SAAUqmC,EAAgB,EAEnD,EAEA,QAAQrmC,EAAI,CAAE,MAAAc,GAAS,CAClBd,EAAA,MAAQc,GAAgB,EAC7B,EACA,aAAad,EAAI,CAAE,MAAAc,EAAO,SAAAiB,EAAU,UAAW,CAAE,KAAAykC,EAAM,KAAAC,EAAM,OAAAC,CAAS,GAAGjwB,EAAO,CAE9E,GADGzW,EAAAsmC,EAAS,EAAIH,GAAiB1vB,CAAK,EAClCzW,EAAG,UAAW,OAClB,MAAM6mC,GAAWH,GAAU1mC,EAAG,OAAS,WAAa,CAAC,OAAO,KAAKA,EAAG,KAAK,EAAIsC,GAActC,EAAG,KAAK,EAAIA,EAAG,MACpG0I,EAAW5H,GAAgB,GAC7B+lC,IAAYn+B,IAGZ,SAAS,gBAAkB1I,GAAMA,EAAG,OAAS,UAC3CwmC,GAAQ1lC,IAAUiB,GAGlB0kC,GAAQzmC,EAAG,MAAM,SAAW0I,KAIlC1I,EAAG,MAAQ0I,GAAA,CAEf,EAyNMo+B,GAAkB,CAAC,OAAQ,QAAS,MAAO,MAAM,EACjDC,GAAiB,CACrB,KAAOr/B,GAAMA,EAAE,gBAAgB,EAC/B,QAAUA,GAAMA,EAAE,eAAe,EACjC,KAAOA,GAAMA,EAAE,SAAWA,EAAE,cAC5B,KAAOA,GAAM,CAACA,EAAE,QAChB,MAAQA,GAAM,CAACA,EAAE,SACjB,IAAMA,GAAM,CAACA,EAAE,OACf,KAAOA,GAAM,CAACA,EAAE,QAChB,KAAOA,GAAM,WAAYA,GAAKA,EAAE,SAAW,EAC3C,OAASA,GAAM,WAAYA,GAAKA,EAAE,SAAW,EAC7C,MAAQA,GAAM,WAAYA,GAAKA,EAAE,SAAW,EAC5C,MAAO,CAACA,EAAGoP,IAAcgwB,GAAgB,KAAMje,GAAMnhB,EAAE,GAAGmhB,CAAC,KAAK,GAAK,CAAC/R,EAAU,SAAS+R,CAAC,CAAC,CAC7F,EACMme,IAAgB,CAAC5lC,EAAI0V,IAAc,CACvC,MAAMzV,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxC6lC,EAAWnwB,EAAU,KAAK,GAAG,EAC5B,OAAAzV,EAAM4lC,CAAQ,IAAM5lC,EAAM4lC,CAAQ,EAAI,CAAChP,KAAUpuB,IAAS,CAC/D,QAAS5J,EAAI,EAAGA,EAAI6W,EAAU,OAAQ7W,IAAK,CACzC,MAAMinC,EAAQH,GAAejwB,EAAU7W,CAAC,CAAC,EACzC,GAAIinC,GAASA,EAAMjP,EAAOnhB,CAAS,EAAG,OAEjC,OAAA1V,EAAG62B,EAAO,GAAGpuB,CAAI,GAE5B,EACMs9B,GAAW,CACf,IAAK,SACL,MAAO,IACP,GAAI,WACJ,KAAM,aACN,MAAO,cACP,KAAM,aACN,OAAQ,WACV,EACMC,IAAW,CAAChmC,EAAI0V,IAAc,CAClC,MAAMzV,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxC6lC,EAAWnwB,EAAU,KAAK,GAAG,EACnC,OAAOzV,EAAM4lC,CAAQ,IAAM5lC,EAAM4lC,CAAQ,EAAKhP,GAAU,CAClD,KAAE,QAASA,GACb,OAEI,MAAAoP,EAAW1lC,GAAUs2B,EAAM,GAAG,EACpC,GAAInhB,EAAU,KACXwwB,GAAMA,IAAMD,GAAYF,GAASG,CAAC,IAAMD,CAAA,EAEzC,OAAOjmC,EAAG62B,CAAK,CACjB,EAEJ,EAEMsP,GAAkC1nC,GAAO,CAAE,UAAAilC,EAAA,EAAajH,EAAO,EACrE,IAAI2J,GAEJ,SAASC,IAAiB,CACjB,OAAAD,KAAaA,GAAWpZ,GAAemZ,EAAe,EAC/D,CAYM,MAAAG,IAAY,IAAI79B,IAAS,CAC7B,MAAMygB,EAAMmd,GAAA,EAAiB,UAAU,GAAG59B,CAAI,EAKxC,CAAE,MAAAwP,GAAUiR,EACd,OAAAA,EAAA,MAASqd,GAAwB,CAC7B,MAAA3vB,EAAY4vB,GAAmBD,CAAmB,EACxD,GAAI,CAAC3vB,EAAW,OAChB,MAAMuK,EAAY+H,EAAI,WAClB,CAAC9pB,GAAW+hB,CAAS,GAAK,CAACA,EAAU,QAAU,CAACA,EAAU,WAC5DA,EAAU,SAAWvK,EAAU,WAE7BA,EAAU,WAAa,IACzBA,EAAU,YAAc,IAE1B,MAAMnJ,EAAQwK,EAAMrB,EAAW,GAAO6vB,GAAqB7vB,CAAS,CAAC,EACrE,OAAIA,aAAqB,UACvBA,EAAU,gBAAgB,SAAS,EACzBA,EAAA,aAAa,aAAc,EAAE,GAElCnJ,CACT,EACOyb,CACT,EAgBA,SAASud,GAAqB7vB,EAAW,CACvC,GAAIA,aAAqB,WAChB,YAET,GAAI,OAAO,eAAkB,YAAcA,aAAqB,cACvD,cAEX,CAoCA,SAAS4vB,GAAmB5vB,EAAW,CACjC,OAAAvX,GAASuX,CAAS,EACR,SAAS,cAAcA,CAAS,EAavCA,CACT,CCzzDA;AAAA;AAAA;AAAA;AAAA,IAQA,MAAM8vB,GAAY,OAAO,SAAa,IAQtC,SAASC,GAAiBxlB,EAAW,CACjC,OAAQ,OAAOA,GAAc,UACzB,gBAAiBA,GACjB,UAAWA,GACX,cAAeA,CACvB,CACA,SAASylB,GAAW5lC,EAAK,CACrB,OAAQA,EAAI,YACRA,EAAI,OAAO,WAAW,IAAM,UAG3BA,EAAI,SAAW2lC,GAAiB3lC,EAAI,OAAO,CACpD,CACA,MAAM6lC,GAAS,OAAO,OACtB,SAASC,GAAc9mC,EAAI+mC,EAAQ,CAC/B,MAAMC,EAAY,CAAC,EACnB,UAAW/oC,KAAO8oC,EAAQ,CAChB,MAAArnC,EAAQqnC,EAAO9oC,CAAG,EACd+oC,EAAA/oC,CAAG,EAAIe,GAAQU,CAAK,EACxBA,EAAM,IAAIM,CAAE,EACZA,EAAGN,CAAK,EAEX,OAAAsnC,CACX,CACA,MAAMC,GAAO,IAAM,CAAE,EAKfjoC,GAAU,MAAM,QA2BhBkoC,GAAU,KACVC,GAAe,KACfC,GAAW,MACXC,GAAW,KACXC,GAAQ,MACRC,GAAU,MAeVC,GAAsB,OACtBC,GAAuB,OACvBC,GAAe,OACfC,GAAkB,OAClBC,GAAoB,OACpBC,GAAc,OACdC,GAAqB,OACrBC,GAAe,OASrB,SAASC,GAAajO,EAAM,CACxB,OAAO,UAAU,GAAKA,CAAI,EACrB,QAAQ8N,GAAa,GAAG,EACxB,QAAQL,GAAqB,GAAG,EAChC,QAAQC,GAAsB,GAAG,CAC1C,CAOA,SAASQ,GAAWlO,EAAM,CACtB,OAAOiO,GAAajO,CAAI,EACnB,QAAQ6N,GAAmB,GAAG,EAC9B,QAAQE,GAAoB,GAAG,EAC/B,QAAQJ,GAAc,GAAG,CAClC,CAQA,SAASQ,GAAiBnO,EAAM,CAC5B,OAAQiO,GAAajO,CAAI,EAEpB,QAAQwN,GAAS,KAAK,EACtB,QAAQQ,GAAc,GAAG,EACzB,QAAQb,GAAS,KAAK,EACtB,QAAQC,GAAc,KAAK,EAC3B,QAAQQ,GAAiB,GAAG,EAC5B,QAAQC,GAAmB,GAAG,EAC9B,QAAQE,GAAoB,GAAG,EAC/B,QAAQJ,GAAc,GAAG,CAClC,CAMA,SAASS,GAAepO,EAAM,CAC1B,OAAOmO,GAAiBnO,CAAI,EAAE,QAAQsN,GAAU,KAAK,CACzD,CAOA,SAASe,GAAWrO,EAAM,CACf,OAAAiO,GAAajO,CAAI,EAAE,QAAQmN,GAAS,KAAK,EAAE,QAAQI,GAAO,KAAK,CAC1E,CAUA,SAASe,GAAYtO,EAAM,CAChB,OAAAA,GAAQ,KAAO,GAAKqO,GAAWrO,CAAI,EAAE,QAAQqN,GAAU,KAAK,CACvE,CAQA,SAASkB,GAAOvO,EAAM,CACd,IACO,0BAAmB,GAAKA,CAAI,OAE3B,EAGZ,MAAO,GAAKA,CAChB,CAEA,MAAMwO,GAAoB,MACpBC,GAAuBzS,GAASA,EAAK,QAAQwS,GAAmB,EAAE,EAUxE,SAASE,GAASC,EAAYC,EAAUC,EAAkB,IAAK,CAC3D,IAAI7S,EAAM8S,EAAQ,GAAIC,EAAe,GAAIC,EAAO,GAG1C,MAAAC,EAAUL,EAAS,QAAQ,GAAG,EAChC,IAAAM,EAAYN,EAAS,QAAQ,GAAG,EAEhC,OAAAK,EAAUC,GAAaD,GAAW,IACtBC,EAAA,IAEZA,EAAY,KACLN,IAAS,MAAM,EAAGM,CAAS,EACnBN,IAAS,MAAMM,EAAY,EAAGD,EAAU,GAAKA,EAAUL,EAAS,MAAM,EACrFE,EAAQH,EAAWI,CAAY,GAE/BE,EAAU,KACVjT,EAAOA,GAAQ4S,EAAS,MAAM,EAAGK,CAAO,EAExCD,EAAOJ,EAAS,MAAMK,EAASL,EAAS,MAAM,GAGlD5S,EAAOmT,GAAoBnT,GAAsB4S,EAAUC,CAAe,EAEnE,CACH,SAAU7S,GAAQ+S,GAAgB,KAAOA,EAAeC,EACxD,KAAAhT,EACA,MAAA8S,EACA,KAAMP,GAAOS,CAAI,CACrB,CACJ,CAOA,SAASI,GAAaC,EAAgBT,EAAU,CAC5C,MAAME,EAAQF,EAAS,MAAQS,EAAeT,EAAS,KAAK,EAAI,GAChE,OAAOA,EAAS,MAAQE,GAAS,KAAOA,GAASF,EAAS,MAAQ,GACtE,CAOA,SAASU,GAAUC,EAAUniB,EAAM,CAE3B,OAACA,GAAQ,CAACmiB,EAAS,YAAc,aAAWniB,EAAK,aAAa,EACvDmiB,EACJA,EAAS,MAAMniB,EAAK,MAAM,GAAK,GAC1C,CAUA,SAASoiB,GAAoBH,EAAgB30B,EAAGC,EAAG,CACzC,MAAA80B,EAAa/0B,EAAE,QAAQ,OAAS,EAChCg1B,EAAa/0B,EAAE,QAAQ,OAAS,EACtC,OAAQ80B,EAAa,IACjBA,IAAeC,GACfC,GAAkBj1B,EAAE,QAAQ+0B,CAAU,EAAG90B,EAAE,QAAQ+0B,CAAU,CAAC,GAC9DE,GAA0Bl1B,EAAE,OAAQC,EAAE,MAAM,GAC5C00B,EAAe30B,EAAE,KAAK,IAAM20B,EAAe10B,EAAE,KAAK,GAClDD,EAAE,OAASC,EAAE,IACrB,CAQA,SAASg1B,GAAkBj1B,EAAGC,EAAG,CAI7B,OAAQD,EAAE,SAAWA,MAAQC,EAAE,SAAWA,EAC9C,CACA,SAASi1B,GAA0Bl1B,EAAGC,EAAG,CACjC,UAAO,KAAKD,CAAC,EAAE,SAAW,OAAO,KAAKC,CAAC,EAAE,OAClC,SACX,UAAWzW,KAAOwW,EACd,GAAI,CAACm1B,GAA+Bn1B,EAAExW,CAAG,EAAGyW,EAAEzW,CAAG,CAAC,EACvC,SAER,QACX,CACA,SAAS2rC,GAA+Bn1B,EAAGC,EAAG,CAC1C,OAAO1V,GAAQyV,CAAC,EACVo1B,GAAkBp1B,EAAGC,CAAC,EACtB1V,GAAQ0V,CAAC,EACLm1B,GAAkBn1B,EAAGD,CAAC,EACtBA,IAAMC,CACpB,CAQA,SAASm1B,GAAkBp1B,EAAGC,EAAG,CACtB,OAAA1V,GAAQ0V,CAAC,EACVD,EAAE,SAAWC,EAAE,QAAUD,EAAE,MAAM,CAAC/U,EAAOb,IAAMa,IAAUgV,EAAE7V,CAAC,CAAC,EAC7D4V,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAMC,CACrC,CAOA,SAASw0B,GAAoBvhB,EAAIC,EAAM,CAC/B,GAAAD,EAAG,WAAW,GAAG,EACV,OAAAA,EAKX,GAAI,CAACA,EACM,OAAAC,EACL,MAAAkiB,EAAeliB,EAAK,MAAM,GAAG,EAC7BmiB,EAAapiB,EAAG,MAAM,GAAG,EACzBqiB,EAAgBD,EAAWA,EAAW,OAAS,CAAC,GAGlDC,IAAkB,MAAQA,IAAkB,MAC5CD,EAAW,KAAK,EAAE,EAElB,IAAAE,EAAWH,EAAa,OAAS,EACjCI,EACAC,EACJ,IAAKD,EAAa,EAAGA,EAAaH,EAAW,OAAQG,IAGjD,GAFAC,EAAUJ,EAAWG,CAAU,EAE3BC,IAAY,IAGhB,GAAIA,IAAY,KAERF,EAAW,GACXA,QAKJ,OAER,OAAQH,EAAa,MAAM,EAAGG,CAAQ,EAAE,KAAK,GAAG,EAC5C,IACAF,EAAW,MAAMG,CAAU,EAAE,KAAK,GAAG,CAC7C,CAgBA,MAAME,GAA4B,CAC9B,KAAM,IAEN,KAAM,OACN,OAAQ,CAAC,EACT,MAAO,CAAC,EACR,KAAM,GACN,SAAU,IACV,QAAS,CAAC,EACV,KAAM,CAAC,EACP,eAAgB,MACpB,EAEA,IAAIC,IACH,SAAUA,EAAgB,CACvBA,EAAe,IAAS,MACxBA,EAAe,KAAU,MAC7B,GAAGA,KAAmBA,GAAiB,GAAG,EAC1C,IAAIC,IACH,SAAUA,EAAqB,CAC5BA,EAAoB,KAAU,OAC9BA,EAAoB,QAAa,UACjCA,EAAoB,QAAa,EACrC,GAAGA,KAAwBA,GAAsB,GAAG,EAYpD,SAASC,GAAcpjB,EAAM,CACzB,GAAI,CAACA,EACD,GAAIuf,GAAW,CAEL,MAAA8D,EAAS,SAAS,cAAc,MAAM,EAC5CrjB,EAAQqjB,GAAUA,EAAO,aAAa,MAAM,GAAM,IAE3CrjB,IAAK,QAAQ,kBAAmB,EAAE,OAGlCA,EAAA,IAMf,OAAIA,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAC/BA,EAAO,IAAMA,GAGVqhB,GAAoBrhB,CAAI,CACnC,CAEA,MAAMsjB,GAAiB,UACvB,SAASC,GAAWvjB,EAAMwhB,EAAU,CAChC,OAAOxhB,EAAK,QAAQsjB,GAAgB,GAAG,EAAI9B,CAC/C,CAEA,SAASgC,GAAmB/rC,EAAIgsC,EAAQ,CAC9B,MAAAC,EAAU,SAAS,gBAAgB,sBAAsB,EACzDC,EAASlsC,EAAG,sBAAsB,EACjC,OACH,SAAUgsC,EAAO,SACjB,KAAME,EAAO,KAAOD,EAAQ,MAAQD,EAAO,MAAQ,GACnD,IAAKE,EAAO,IAAMD,EAAQ,KAAOD,EAAO,KAAO,EACnD,CACJ,CACA,MAAMG,GAAwB,KAAO,CACjC,KAAM,OAAO,QACb,IAAK,OAAO,OAChB,GACA,SAASC,GAAiBf,EAAU,CAC5B,IAAAgB,EACJ,GAAI,OAAQhB,EAAU,CAClB,MAAMiB,EAAajB,EAAS,GACtBkB,EAAe,OAAOD,GAAe,UAAYA,EAAW,WAAW,GAAG,EAuC1EtsC,EAAK,OAAOssC,GAAe,SAC3BC,EACI,SAAS,eAAeD,EAAW,MAAM,CAAC,CAAC,EAC3C,SAAS,cAAcA,CAAU,EACrCA,EACN,GAAI,CAACtsC,EAGD,OAEcqsC,EAAAN,GAAmB/rC,EAAIqrC,CAAQ,OAG/BgB,EAAAhB,EAElB,mBAAoB,SAAS,gBAAgB,MAC7C,OAAO,SAASgB,CAAe,EAE/B,OAAO,SAASA,EAAgB,MAAQ,KAAOA,EAAgB,KAAO,OAAO,QAASA,EAAgB,KAAO,KAAOA,EAAgB,IAAM,OAAO,OAAO,CAEhK,CACA,SAASG,GAAarV,EAAMsV,EAAO,CAE/B,OADiB,QAAQ,MAAQ,QAAQ,MAAM,SAAWA,EAAQ,IAChDtV,CACtB,CACA,MAAMuV,OAAsB,IAC5B,SAASC,GAAmBttC,EAAKutC,EAAgB,CAC7BF,GAAA,IAAIrtC,EAAKutC,CAAc,CAC3C,CACA,SAASC,GAAuBxtC,EAAK,CAC3B,MAAAytC,EAASJ,GAAgB,IAAIrtC,CAAG,EAEtC,OAAAqtC,GAAgB,OAAOrtC,CAAG,EACnBytC,CACX,CAiBA,IAAIC,GAAqB,IAAM,SAAS,SAAW,KAAO,SAAS,KAMnE,SAASC,GAAsBzkB,EAAMwhB,EAAU,CAC3C,KAAM,CAAE,SAAAW,EAAU,OAAAuC,EAAQ,KAAA9C,CAASJ,IAE7BK,EAAU7hB,EAAK,QAAQ,GAAG,EAChC,GAAI6hB,EAAU,GAAI,CACd,IAAI8C,EAAW/C,EAAK,SAAS5hB,EAAK,MAAM6hB,CAAO,CAAC,EAC1C7hB,EAAK,MAAM6hB,CAAO,EAAE,OACpB,EACF+C,EAAehD,EAAK,MAAM+C,CAAQ,EAElC,OAAAC,EAAa,CAAC,IAAM,MACpBA,EAAe,IAAMA,GAClB1C,GAAU0C,EAAc,EAAE,EAGrC,OADa1C,GAAUC,EAAUniB,CAAI,EACvB0kB,EAAS9C,CAC3B,CACA,SAASiD,GAAoB7kB,EAAM8kB,EAAcrD,EAAiBsD,EAAS,CACvE,IAAIC,EAAY,CAAC,EACbC,EAAY,CAAC,EAGbC,EAAa,KACjB,MAAMC,EAAkB,CAAC,CAAE,MAAAlyB,KAAa,CAC9B,MAAAuN,EAAKikB,GAAsBzkB,EAAM,QAAQ,EACzCS,EAAOghB,EAAgB,MACvB2D,EAAYN,EAAa,MAC/B,IAAIZ,EAAQ,EACZ,GAAIjxB,EAAO,CAIH,GAHJwuB,EAAgB,MAAQjhB,EACxBskB,EAAa,MAAQ7xB,EAEjBiyB,GAAcA,IAAezkB,EAAM,CACtBykB,EAAA,KACb,OAEJhB,EAAQkB,EAAYnyB,EAAM,SAAWmyB,EAAU,SAAW,OAG1DL,EAAQvkB,CAAE,EAOdwkB,EAAU,QAAoBK,GAAA,CACjBA,EAAA5D,EAAgB,MAAOhhB,EAAM,CAClC,MAAAyjB,EACA,KAAMhB,GAAe,IACrB,UAAWgB,EACLA,EAAQ,EACJf,GAAoB,QACpBA,GAAoB,KACxBA,GAAoB,QAC7B,EACJ,CACL,EACA,SAASmC,GAAiB,CACtBJ,EAAazD,EAAgB,MAEjC,SAAS8D,EAAOngC,EAAU,CAEtB4/B,EAAU,KAAK5/B,CAAQ,EACvB,MAAMogC,EAAW,IAAM,CACb,MAAA9iC,EAAQsiC,EAAU,QAAQ5/B,CAAQ,EACpC1C,EAAQ,IACEsiC,EAAA,OAAOtiC,EAAO,CAAC,CACjC,EACA,OAAAuiC,EAAU,KAAKO,CAAQ,EAChBA,CAAA,CAEX,SAASC,GAAuB,CACtB,MAAE,QAAAC,GAAY,OACfA,EAAQ,OAEbA,EAAQ,aAAahG,GAAO,GAAIgG,EAAQ,MAAO,CAAE,OAAQ9B,IAAyB,GAAG,EAAE,EAE3F,SAAS+B,GAAU,CACf,UAAWH,KAAYP,EACVO,EAAA,EACbP,EAAY,CAAC,EACN,2BAAoB,WAAYE,CAAe,EAC/C,2BAAoB,eAAgBM,CAAoB,EAG5D,+BAAiB,WAAYN,CAAe,EAG5C,wBAAiB,eAAgBM,EAAsB,CAC1D,QAAS,GACZ,EACM,CACH,eAAAH,EACA,OAAAC,EACA,QAAAI,CACJ,CACJ,CAIA,SAASC,GAAWC,EAAMvtB,EAASwtB,EAASC,EAAW,GAAOC,EAAgB,GAAO,CAC1E,OACH,KAAAH,EACA,QAAAvtB,EACA,QAAAwtB,EACA,SAAAC,EACA,SAAU,OAAO,QAAQ,OACzB,OAAQC,EAAgBpC,KAA0B,IACtD,CACJ,CACA,SAASqC,GAA0BjmB,EAAM,CACrC,KAAM,CAAE,QAAA0lB,EAAS,SAAAlE,CAAa,SAExBC,EAAkB,CACpB,MAAOgD,GAAsBzkB,EAAMwhB,CAAQ,CAC/C,EACMsD,EAAe,CAAE,MAAOY,EAAQ,KAAM,EAEvCZ,EAAa,OACdoB,EAAezE,EAAgB,MAAO,CAClC,KAAM,KACN,QAASA,EAAgB,MACzB,QAAS,KAET,SAAUiE,EAAQ,OAAS,EAC3B,SAAU,GAGV,OAAQ,MACT,EAAI,EAEF,SAAAQ,EAAe1lB,EAAIvN,EAAO8xB,EAAS,CAUlC,MAAAoB,EAAYnmB,EAAK,QAAQ,GAAG,EAC5BomB,EAAMD,EAAY,IACjB3E,EAAS,MAAQ,SAAS,cAAc,MAAM,EAC3CxhB,EACAA,EAAK,MAAMmmB,CAAS,GAAK3lB,EAC7BgkB,GAAA,EAAuBxkB,EAAOQ,EAChC,IAGAklB,EAAQX,EAAU,eAAiB,WAAW,EAAE9xB,EAAO,GAAImzB,CAAG,EAC9DtB,EAAa,MAAQ7xB,QAElB/U,EAAK,CAKJ,QAAQ,MAAMA,CAAG,EAGrBsjC,EAASuD,EAAU,UAAY,QAAQ,EAAEqB,CAAG,EAChD,CAEK,SAAArB,EAAQvkB,EAAItE,EAAM,CACvB,MAAMjJ,EAAQysB,GAAO,CAAC,EAAGgG,EAAQ,MAAOE,GAAWd,EAAa,MAAM,KAEtEtkB,EAAIskB,EAAa,MAAM,QAAS,IAAO5oB,EAAM,CAAE,SAAU4oB,EAAa,MAAM,SAAU,EACvEoB,EAAA1lB,EAAIvN,EAAO,EAAI,EAC9BwuB,EAAgB,MAAQjhB,CAAA,CAEnB,SAAA6lB,EAAK7lB,EAAItE,EAAM,CAGpB,MAAMoqB,EAAe5G,GAAO,CAAC,EAI7BoF,EAAa,MAAOY,EAAQ,MAAO,CAC/B,QAASllB,EACT,OAAQojB,GAAsB,EACjC,EAMcsC,EAAAI,EAAa,QAASA,EAAc,EAAI,EACvD,MAAMrzB,EAAQysB,GAAO,GAAIkG,GAAWnE,EAAgB,MAAOjhB,EAAI,IAAI,EAAG,CAAE,SAAU8lB,EAAa,SAAW,GAAKpqB,CAAI,EACpGgqB,EAAA1lB,EAAIvN,EAAO,EAAK,EAC/BwuB,EAAgB,MAAQjhB,CAAA,CAErB,OACH,SAAUihB,EACV,MAAOqD,EACP,KAAAuB,EACA,QAAAtB,CACJ,CACJ,CAMA,SAASwB,IAAiBvmB,EAAM,CAC5BA,EAAOojB,GAAcpjB,CAAI,EACnB,MAAAwmB,EAAoBP,GAA0BjmB,CAAI,EAClDymB,EAAmB5B,GAAoB7kB,EAAMwmB,EAAkB,MAAOA,EAAkB,SAAUA,EAAkB,OAAO,EACxH,SAAAE,EAAGxC,EAAOyC,EAAmB,GAAM,CACnCA,GACDF,EAAiB,eAAe,EACpC,QAAQ,GAAGvC,CAAK,EAEpB,MAAM0C,EAAgBlH,GAAO,CAEzB,SAAU,GACV,KAAA1f,EACA,GAAA0mB,EACA,WAAYnD,GAAW,KAAK,KAAMvjB,CAAI,GACvCwmB,EAAmBC,CAAgB,EAC/B,6BAAeG,EAAe,WAAY,CAC7C,WAAY,GACZ,IAAK,IAAMJ,EAAkB,SAAS,MACzC,EACM,sBAAeI,EAAe,QAAS,CAC1C,WAAY,GACZ,IAAK,IAAMJ,EAAkB,MAAM,MACtC,EACMI,CACX,CAyHA,SAASC,GAAgBC,EAAO,CAC5B,OAAO,OAAOA,GAAU,UAAaA,GAAS,OAAOA,GAAU,QACnE,CACA,SAASC,GAAY/rC,EAAM,CACvB,OAAO,OAAOA,GAAS,UAAY,OAAOA,GAAS,QACvD,CAEA,MAAMgsC,GAA0B,OAAwE,EAAE,EAK1G,IAAIC,IACH,SAAUA,EAAuB,CAK9BA,EAAsBA,EAAsB,QAAa,CAAC,EAAI,UAK9DA,EAAsBA,EAAsB,UAAe,CAAC,EAAI,YAKhEA,EAAsBA,EAAsB,WAAgB,EAAE,EAAI,YACtE,GAAGA,KAA0BA,GAAwB,GAAG,EA2BxD,SAASC,GAAkBlnC,EAAM4/B,EAAQ,CAS1B,OAAAF,GAAO,IAAI,MAAS,CACvB,KAAA1/B,EACA,CAACgnC,EAAuB,EAAG,IAC5BpH,CAAM,CAEjB,CACA,SAASuH,GAAoBlpC,EAAO+B,EAAM,CAC9B,OAAA/B,aAAiB,OACrB+oC,MAA2B/oC,IAC1B+B,GAAQ,MAAQ,CAAC,EAAE/B,EAAM,KAAO+B,GACzC,CAgBA,MAAMonC,GAAqB,SACrBC,GAA2B,CAC7B,UAAW,GACX,OAAQ,GACR,MAAO,GACP,IAAK,EACT,EAEMC,GAAiB,sBAQvB,SAASC,GAAe1Y,EAAU7X,EAAc,CAC5C,MAAM7N,EAAUu2B,GAAO,GAAI2H,GAA0BrwB,CAAY,EAE3DwwB,EAAQ,CAAC,EAEX,IAAAC,EAAUt+B,EAAQ,MAAQ,IAAM,GAEpC,MAAM0R,EAAO,CAAC,EACd,UAAWmoB,KAAWnU,EAAU,CAE5B,MAAM6Y,EAAgB1E,EAAQ,OAAS,GAAK,CAAC,EAAuB,EAEhE75B,EAAQ,QAAU,CAAC65B,EAAQ,SAChByE,GAAA,KACf,QAASE,EAAa,EAAGA,EAAa3E,EAAQ,OAAQ2E,IAAc,CAC1D,MAAAC,EAAQ5E,EAAQ2E,CAAU,EAEhC,IAAIE,EAAkB,IACjB1+B,EAAQ,UAAY,IAA0C,GAC/D,GAAAy+B,EAAM,OAAS,EAEVD,IACUF,GAAA,KACfA,GAAWG,EAAM,MAAM,QAAQN,GAAgB,MAAM,EAClCO,GAAA,WAEdD,EAAM,OAAS,EAAyB,CAC7C,KAAM,CAAE,MAAArvC,EAAO,WAAAuvC,EAAY,SAAAC,EAAU,OAAAC,CAAW,EAAAJ,EAChD/sB,EAAK,KAAK,CACN,KAAMtiB,EACN,WAAAuvC,EACA,SAAAC,CAAA,CACH,EACKE,QAAKD,GAAkBZ,GAE7B,GAAIa,IAAOb,GAAoB,CACRS,GAAA,GAEf,IACI,WAAO,IAAII,CAAE,GAAG,QAEjB/pC,EAAK,CACF,UAAI,MAAM,oCAAoC3F,CAAK,MAAM0vC,CAAE,MAC7D/pC,EAAI,OAAO,EACnB,CAGA,IAAAgqC,EAAaJ,EAAa,OAAOG,CAAE,WAAWA,CAAE,OAAS,IAAIA,CAAE,IAE9DN,IACDO,EAGIH,GAAY/E,EAAQ,OAAS,EACvB,OAAOkF,CAAU,IACjB,IAAMA,GAChBH,IACcG,GAAA,KACPT,GAAAS,EACQL,GAAA,GACfE,IACmBF,GAAA,IACnBC,IACmBD,GAAA,KACnBI,IAAO,OACYJ,GAAA,KAE3BH,EAAc,KAAKG,CAAe,EAItCL,EAAM,KAAKE,CAAa,EAGxB,GAAAv+B,EAAQ,QAAUA,EAAQ,IAAK,CACzB,MAAAzR,EAAI8vC,EAAM,OAAS,EACzBA,EAAM9vC,CAAC,EAAE8vC,EAAM9vC,CAAC,EAAE,OAAS,CAAC,GAAK,kBAGhCyR,EAAQ,SACEs+B,GAAA,MACXt+B,EAAQ,IACGs+B,GAAA,IAENt+B,EAAQ,SACFs+B,GAAA,WACf,MAAMQ,EAAK,IAAI,OAAOR,EAASt+B,EAAQ,UAAY,GAAK,GAAG,EAC3D,SAASg/B,EAAMvZ,EAAM,CACX,MAAAwZ,EAAQxZ,EAAK,MAAMqZ,CAAE,EACrBrI,EAAS,CAAC,EAChB,GAAI,CAACwI,EACM,YACX,QAAS1wC,EAAI,EAAGA,EAAI0wC,EAAM,OAAQ1wC,IAAK,CAC7B,MAAAa,EAAQ6vC,EAAM1wC,CAAC,GAAK,GACpBZ,EAAM+jB,EAAKnjB,EAAI,CAAC,EACfkoC,EAAA9oC,EAAI,IAAI,EAAIyB,GAASzB,EAAI,WAAayB,EAAM,MAAM,GAAG,EAAIA,CAAA,CAE7D,OAAAqnC,CAAA,CAEX,SAASyI,EAAUzI,EAAQ,CACvB,IAAIhR,EAAO,GAEP0Z,EAAuB,GAC3B,UAAWtF,KAAWnU,EAAU,EACxB,CAACyZ,GAAwB,CAAC1Z,EAAK,SAAS,GAAG,KACnCA,GAAA,KACW0Z,EAAA,GACvB,UAAWV,KAAS5E,EACZ,GAAA4E,EAAM,OAAS,EACfhZ,GAAQgZ,EAAM,cAETA,EAAM,OAAS,EAAyB,CAC7C,KAAM,CAAE,MAAArvC,EAAO,WAAAuvC,EAAY,SAAAC,CAAa,EAAAH,EAClCW,EAAQhwC,KAASqnC,EAASA,EAAOrnC,CAAK,EAAI,GAChD,GAAIV,GAAQ0wC,CAAK,GAAK,CAACT,EACnB,MAAM,IAAI,MAAM,mBAAmBvvC,CAAK,2DAA2D,EAEvG,MAAMq6B,EAAO/6B,GAAQ0wC,CAAK,EACpBA,EAAM,KAAK,GAAG,EACdA,EACN,GAAI,CAAC3V,EACD,GAAImV,EAEI/E,EAAQ,OAAS,IAEbpU,EAAK,SAAS,GAAG,EACVA,IAAK,MAAM,EAAG,EAAE,EAGA0Z,EAAA,QAI/B,OAAM,IAAI,MAAM,2BAA2B/vC,CAAK,GAAG,EAEnDq2B,GAAAgE,CAAA,CAEhB,CAGJ,OAAOhE,GAAQ,IAEZ,OACH,GAAAqZ,EACA,MAAAT,EACA,KAAA3sB,EACA,MAAAstB,EACA,UAAAE,CACJ,CACJ,CAUA,SAASG,GAAkBl7B,EAAGC,EAAG,CAC7B,IAAI7V,EAAI,EACR,KAAOA,EAAI4V,EAAE,QAAU5V,EAAI6V,EAAE,QAAQ,CACjC,MAAMk7B,EAAOl7B,EAAE7V,CAAC,EAAI4V,EAAE5V,CAAC,EAEnB,GAAA+wC,EACO,OAAAA,EACX/wC,GAAA,CAIA,OAAA4V,EAAE,OAASC,EAAE,OACND,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,GAC5B,GACA,EAEDA,EAAE,OAASC,EAAE,OACXA,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,GAC5B,EACA,GAEH,CACX,CAQA,SAASm7B,GAAuBp7B,EAAGC,EAAG,CAClC,IAAI7V,EAAI,EACR,MAAMixC,EAASr7B,EAAE,MACXs7B,EAASr7B,EAAE,MACjB,KAAO7V,EAAIixC,EAAO,QAAUjxC,EAAIkxC,EAAO,QAAQ,CAC3C,MAAMxkB,EAAOokB,GAAkBG,EAAOjxC,CAAC,EAAGkxC,EAAOlxC,CAAC,CAAC,EAE/C,GAAA0sB,EACO,OAAAA,EACX1sB,GAAA,CAEJ,GAAI,KAAK,IAAIkxC,EAAO,OAASD,EAAO,MAAM,IAAM,EAAG,CAC/C,GAAIE,GAAoBF,CAAM,EACnB,SACX,GAAIE,GAAoBD,CAAM,EACnB,SAGR,OAAAA,EAAO,OAASD,EAAO,MAOlC,CAOA,SAASE,GAAoBrB,EAAO,CAChC,MAAMjrC,EAAOirC,EAAMA,EAAM,OAAS,CAAC,EACnC,OAAOA,EAAM,OAAS,GAAKjrC,EAAKA,EAAK,OAAS,CAAC,EAAI,CACvD,CAEA,MAAMusC,GAAa,CACf,KAAM,EACN,MAAO,EACX,EACMC,GAAiB,eAIvB,SAASC,GAAapa,EAAM,CACxB,GAAI,CAACA,EACM,OAAC,EAAE,EACd,GAAIA,IAAS,IACF,OAAC,CAACka,EAAU,CAAC,EACxB,GAAI,CAACla,EAAK,WAAW,GAAG,EACd,UAAI,MAEJ,iBAAiBA,CAAI,GAAG,EAGlC,SAASqa,EAAMC,EAAS,CACd,UAAI,MAAM,QAAQj2B,CAAK,MAAMk2B,CAAM,MAAMD,CAAO,EAAE,EAE5D,IAAIj2B,EAAQ,EACRm2B,EAAgBn2B,EACpB,MAAMo2B,EAAS,CAAC,EAGZ,IAAArG,EACJ,SAASsG,GAAkB,CACnBtG,GACAqG,EAAO,KAAKrG,CAAO,EACvBA,EAAU,CAAC,EAGf,IAAItrC,EAAI,EAEJ6xC,EAEAJ,EAAS,GAETK,EAAW,GACf,SAASC,GAAgB,CAChBN,IAEDl2B,IAAU,EACV+vB,EAAQ,KAAK,CACT,KAAM,EACN,MAAOmG,CAAA,CACV,EAEIl2B,IAAU,GACfA,IAAU,GACVA,IAAU,GACN+vB,EAAQ,OAAS,IAAMuG,IAAS,KAAOA,IAAS,MAC1CN,EAAA,uBAAuBE,CAAM,8CAA8C,EACrFnG,EAAQ,KAAK,CACT,KAAM,EACN,MAAOmG,EACP,OAAQK,EACR,WAAYD,IAAS,KAAOA,IAAS,IACrC,SAAUA,IAAS,KAAOA,IAAS,IACtC,GAGDN,EAAM,iCAAiC,EAElCE,EAAA,IAEb,SAASO,GAAkB,CACbP,GAAAI,CAAA,CAEP,KAAA7xC,EAAIk3B,EAAK,QAAQ,CAEhB,GADJ2a,EAAO3a,EAAKl3B,GAAG,EACX6xC,IAAS,MAAQt2B,IAAU,EAAoC,CAC/Cm2B,EAAAn2B,EACRA,EAAA,EACR,SAEJ,OAAQA,EAAO,CACX,IAAK,GACGs2B,IAAS,KACLJ,GACcM,EAAA,EAEFH,EAAA,GAEXC,IAAS,KACAE,EAAA,EACNx2B,EAAA,GAGQy2B,EAAA,EAEpB,MACJ,IAAK,GACeA,EAAA,EACRz2B,EAAAm2B,EACR,MACJ,IAAK,GACGG,IAAS,IACDt2B,EAAA,EAEH81B,GAAe,KAAKQ,CAAI,EACbG,EAAA,GAGFD,EAAA,EACNx2B,EAAA,EAEJs2B,IAAS,KAAOA,IAAS,KAAOA,IAAS,KACzC7xC,KAER,MACJ,IAAK,GAMG6xC,IAAS,IAELC,EAASA,EAAS,OAAS,CAAC,GAAK,KACjCA,EAAWA,EAAS,MAAM,EAAG,EAAE,EAAID,EAE3Bt2B,EAAA,EAGAu2B,GAAAD,EAEhB,MACJ,IAAK,GAEaE,EAAA,EACNx2B,EAAA,EAEJs2B,IAAS,KAAOA,IAAS,KAAOA,IAAS,KACzC7xC,IACO8xC,EAAA,GACX,MACJ,QACIP,EAAM,eAAe,EACrB,MACR,CAEJ,OAAIh2B,IAAU,GACJg2B,EAAA,uCAAuCE,CAAM,GAAG,EAC5CM,EAAA,EACEH,EAAA,EAETD,CACX,CAEA,SAASM,GAAyBC,EAAQhgB,EAAQzgB,EAAS,CACvD,MAAM0gC,EAAStC,GAAeyB,GAAaY,EAAO,IAAI,EAAGzgC,CAAO,EAU1D2gC,EAAUpK,GAAOmK,EAAQ,CAC3B,OAAAD,EACA,OAAAhgB,EAEA,SAAU,CAAC,EACX,MAAO,EAAC,CACX,EACD,OAAIA,GAII,CAACkgB,EAAQ,OAAO,SAAY,CAAClgB,EAAO,OAAO,SACpCA,EAAA,SAAS,KAAKkgB,CAAO,EAE7BA,CACX,CASA,SAASC,GAAoBC,EAAQC,EAAe,CAEhD,MAAMC,EAAW,CAAC,EACZC,MAAiB,IACPF,EAAA1pB,GAAa,CAAE,OAAQ,GAAO,IAAK,GAAM,UAAW,EAAM,EAAG0pB,CAAa,EAC1F,SAASG,EAAiBpvC,EAAM,CACrB,OAAAmvC,EAAW,IAAInvC,CAAI,EAErB,SAAAqvC,EAAST,EAAQhgB,EAAQ0gB,EAAgB,CAE9C,MAAMC,EAAY,CAACD,EACbE,EAAuBC,GAAqBb,CAAM,EAKnCY,EAAA,QAAUF,GAAkBA,EAAe,OAC1D,MAAAnhC,EAAUoX,GAAa0pB,EAAeL,CAAM,EAE5Cc,EAAoB,CAACF,CAAoB,EAC/C,GAAI,UAAWZ,EAAQ,CACb,MAAAe,EAAU,OAAOf,EAAO,OAAU,SAAW,CAACA,EAAO,KAAK,EAAIA,EAAO,MAC3E,UAAWgB,KAASD,EACED,EAAA,KAGlBD,GAAqB/K,GAAO,CAAC,EAAG8K,EAAsB,CAGlD,WAAYF,EACNA,EAAe,OAAO,WACtBE,EAAqB,WAC3B,KAAMI,EAEN,QAASN,EACHA,EAAe,OACfE,CAAA,CAGT,CAAC,CAAC,CACP,CAEA,IAAAV,EACAe,EACJ,UAAWC,KAAoBJ,EAAmB,CACxC,MAAE,KAAA9b,GAASkc,EAIjB,GAAIlhB,GAAUgF,EAAK,CAAC,IAAM,IAAK,CACrB,MAAAmc,EAAanhB,EAAO,OAAO,KAC3BohB,EAAkBD,EAAWA,EAAW,OAAS,CAAC,IAAM,IAAM,GAAK,IACzED,EAAiB,KACblhB,EAAO,OAAO,MAAQgF,GAAQoc,EAAkBpc,EAAA,CAiCxD,GA1BUkb,EAAAH,GAAyBmB,EAAkBlhB,EAAQzgB,CAAO,EAKhEmhC,EACeA,EAAA,MAAM,KAAKR,CAAO,GAOjCe,EAAkBA,GAAmBf,EACjCe,IAAoBf,GACJe,EAAA,MAAM,KAAKf,CAAO,EAGlCS,GAAaX,EAAO,MAAQ,CAACqB,GAAcnB,CAAO,GAClDoB,EAAYtB,EAAO,IAAI,GAI3BuB,GAAYrB,CAAO,GACnBsB,EAActB,CAAO,EAErBU,EAAqB,SAAU,CAC/B,MAAM95B,EAAW85B,EAAqB,SACtC,QAAS9yC,EAAI,EAAGA,EAAIgZ,EAAS,OAAQhZ,IACxB2yC,EAAA35B,EAAShZ,CAAC,EAAGoyC,EAASQ,GAAkBA,EAAe,SAAS5yC,CAAC,CAAC,CAC/E,CAIJ4yC,EAAiBA,GAAkBR,CAAA,CAMvC,OAAOe,EACD,IAAM,CAEJK,EAAYL,CAAe,GAE7B/K,EAAA,CAEV,SAASoL,EAAYG,EAAY,CACzB,GAAAtE,GAAYsE,CAAU,EAAG,CACnB,MAAAvB,EAAUK,EAAW,IAAIkB,CAAU,EACrCvB,IACAK,EAAW,OAAOkB,CAAU,EAC5BnB,EAAS,OAAOA,EAAS,QAAQJ,CAAO,EAAG,CAAC,EACpCA,EAAA,SAAS,QAAQoB,CAAW,EAC5BpB,EAAA,MAAM,QAAQoB,CAAW,EACrC,KAEC,CACK,MAAAxoC,EAAQwnC,EAAS,QAAQmB,CAAU,EACrC3oC,EAAQ,KACCwnC,EAAA,OAAOxnC,EAAO,CAAC,EACpB2oC,EAAW,OAAO,MACPlB,EAAA,OAAOkB,EAAW,OAAO,IAAI,EACjCA,EAAA,SAAS,QAAQH,CAAW,EAC5BG,EAAA,MAAM,QAAQH,CAAW,EACxC,CACJ,CAEJ,SAASI,GAAY,CACV,OAAApB,CAAA,CAEX,SAASkB,EAActB,EAAS,CACtB,MAAApnC,EAAQ2J,GAAmBy9B,EAASI,CAAQ,EACzCA,EAAA,OAAOxnC,EAAO,EAAGonC,CAAO,EAE7BA,EAAQ,OAAO,MAAQ,CAACmB,GAAcnB,CAAO,GAC7CK,EAAW,IAAIL,EAAQ,OAAO,KAAMA,CAAO,EAE1C,SAAAxvB,EAAQknB,EAAUC,EAAiB,CACpC,IAAAqI,EACAlK,EAAS,CAAC,EACVhR,EACA5zB,EACA,YAAUwmC,GAAYA,EAAS,KAAM,CAErC,GADUsI,EAAAK,EAAW,IAAI3I,EAAS,IAAI,EAClC,CAACsI,EACD,MAAM5C,GAAkB,EAAsC,CAC1D,SAAA1F,CAAA,CACH,EAQLxmC,EAAO8uC,EAAQ,OAAO,KACblK,EAAAF,GAET6L,GAAmB9J,EAAgB,OAGnCqI,EAAQ,KACH,OAAY/K,GAAA,CAACA,EAAE,QAAQ,EACvB,OAAO+K,EAAQ,OAASA,EAAQ,OAAO,KAAK,OAAY/K,KAAE,QAAQ,EAAI,CAAE,GACxE,IAASA,KAAE,IAAI,CAAC,EAGrByC,EAAS,QACL+J,GAAmB/J,EAAS,OAAQsI,EAAQ,KAAK,IAAI/K,GAAKA,EAAE,IAAI,CAAC,CAAC,EAE/DnQ,EAAAkb,EAAQ,UAAUlK,CAAM,UAE1B4B,EAAS,MAAQ,KAGtB5S,EAAO4S,EAAS,KAIhBsI,EAAUI,EAAS,KAAK5pB,GAAKA,EAAE,GAAG,KAAKsO,CAAI,CAAC,EAExCkb,IAESlK,EAAAkK,EAAQ,MAAMlb,CAAI,EAC3B5zB,EAAO8uC,EAAQ,OAAO,UAIzB,CAKD,GAHAA,EAAUrI,EAAgB,KACpB0I,EAAW,IAAI1I,EAAgB,IAAI,EACnCyI,EAAS,QAAU5pB,EAAE,GAAG,KAAKmhB,EAAgB,IAAI,CAAC,EACpD,CAACqI,EACD,MAAM5C,GAAkB,EAAsC,CAC1D,SAAA1F,EACA,gBAAAC,CAAA,CACH,EACLzmC,EAAO8uC,EAAQ,OAAO,KAGtBlK,EAASF,GAAO,CAAC,EAAG+B,EAAgB,OAAQD,EAAS,MAAM,EACpD5S,EAAAkb,EAAQ,UAAUlK,CAAM,EAEnC,MAAM4L,EAAU,CAAC,EACjB,IAAIC,EAAgB3B,EACpB,KAAO2B,GAEKD,EAAA,QAAQC,EAAc,MAAM,EACpCA,EAAgBA,EAAc,OAE3B,OACH,KAAAzwC,EACA,KAAA4zB,EACA,OAAAgR,EACA,QAAA4L,EACA,KAAME,GAAgBF,CAAO,CACjC,EAGJxB,EAAO,QAAQlD,GAASuD,EAASvD,CAAK,CAAC,EACvC,SAAS6E,GAAc,CACnBzB,EAAS,OAAS,EAClBC,EAAW,MAAM,EAEd,OACH,SAAAE,EACA,QAAA/vB,EACA,YAAA4wB,EACA,YAAAS,EACA,UAAAL,EACA,iBAAAlB,CACJ,CACJ,CACA,SAASmB,GAAmB3L,EAAQ/kB,EAAM,CACtC,MAAMglB,EAAY,CAAC,EACnB,UAAW/oC,KAAO+jB,EACV/jB,KAAO8oC,IACGC,EAAA/oC,CAAG,EAAI8oC,EAAO9oC,CAAG,GAE5B,OAAA+oC,CACX,CAOA,SAAS4K,GAAqBb,EAAQ,CAClC,MAAMrvC,EAAa,CACf,KAAMqvC,EAAO,KACb,SAAUA,EAAO,SACjB,KAAMA,EAAO,KACb,KAAMA,EAAO,MAAQ,CAAC,EACtB,QAASA,EAAO,QAChB,YAAaA,EAAO,YACpB,MAAOgC,GAAqBhC,CAAM,EAClC,SAAUA,EAAO,UAAY,CAAC,EAC9B,UAAW,CAAC,EACZ,gBAAiB,IACjB,iBAAkB,IAClB,eAAgB,CAAC,EAGjB,WAAY,eAAgBA,EACtBA,EAAO,YAAc,KACrBA,EAAO,WAAa,CAAE,QAASA,EAAO,SAAU,CAC1D,EAIO,6BAAervC,EAAY,OAAQ,CACtC,MAAO,EAAC,CACX,EACMA,CACX,CAMA,SAASqxC,GAAqBhC,EAAQ,CAClC,MAAMiC,EAAc,CAAC,EAEf3wC,EAAQ0uC,EAAO,OAAS,GAC9B,GAAI,cAAeA,EACfiC,EAAY,QAAU3wC,MAKtB,WAAWF,KAAQ4uC,EAAO,WACtBiC,EAAY7wC,CAAI,EAAI,OAAOE,GAAU,SAAWA,EAAMF,CAAI,EAAIE,EAE/D,OAAA2wC,CACX,CAKA,SAASZ,GAAcrB,EAAQ,CAC3B,KAAOA,GAAQ,CACX,GAAIA,EAAO,OAAO,QACP,SACXA,EAASA,EAAO,OAEb,QACX,CAMA,SAAS8B,GAAgBF,EAAS,CACvB,OAAAA,EAAQ,OAAO,CAACM,EAAMlC,IAAWlK,GAAOoM,EAAMlC,EAAO,IAAI,EAAG,EAAE,CACzE,CACA,SAASrpB,GAAarD,EAAU6uB,EAAgB,CAC5C,MAAM5iC,EAAU,CAAC,EACjB,UAAWrS,KAAOomB,EACN/T,EAAArS,CAAG,EAAIA,KAAOi1C,EAAiBA,EAAej1C,CAAG,EAAIomB,EAASpmB,CAAG,EAEtE,OAAAqS,CACX,CAmDA,SAASkD,GAAmBy9B,EAASI,EAAU,CAE3C,IAAI8B,EAAQ,EACRC,EAAQ/B,EAAS,OACrB,KAAO8B,IAAUC,GAAO,CACd,MAAAC,EAAOF,EAAQC,GAAU,EACbvD,GAAuBoB,EAASI,EAASgC,CAAG,CAAC,EAC/C,EACJD,EAAAC,EAGRF,EAAQE,EAAM,CAClB,CAGE,MAAAC,EAAoBC,GAAqBtC,CAAO,EACtD,OAAIqC,IACAF,EAAQ/B,EAAS,YAAYiC,EAAmBF,EAAQ,CAAC,GAMtDA,CACX,CACA,SAASG,GAAqBtC,EAAS,CACnC,IAAIuC,EAAWvC,EACP,KAAAuC,EAAWA,EAAS,QACxB,GAAIlB,GAAYkB,CAAQ,GACpB3D,GAAuBoB,EAASuC,CAAQ,IAAM,EACvC,OAAAA,CAInB,CAQA,SAASlB,GAAY,CAAE,OAAAvB,GAAU,CAC7B,MAAO,CAAC,EAAEA,EAAO,MACZA,EAAO,YAAc,OAAO,KAAKA,EAAO,UAAU,EAAE,QACrDA,EAAO,SACf,CAWA,SAASrI,GAAWmD,EAAQ,CACxB,MAAMhD,EAAQ,CAAC,EAGX,GAAAgD,IAAW,IAAMA,IAAW,IACrB,OAAAhD,EAEL,MAAA4K,GADe5H,EAAO,CAAC,IAAM,IACEA,EAAO,MAAM,CAAC,EAAIA,GAAQ,MAAM,GAAG,EACxE,QAAS,EAAI,EAAG,EAAI4H,EAAa,OAAQ,EAAE,EAAG,CAE1C,MAAMC,EAAcD,EAAa,CAAC,EAAE,QAAQlM,GAAS,GAAG,EAElDoM,EAAQD,EAAY,QAAQ,GAAG,EAC/Bz1C,EAAMqqC,GAAOqL,EAAQ,EAAID,EAAcA,EAAY,MAAM,EAAGC,CAAK,CAAC,EAClEj0C,EAAQi0C,EAAQ,EAAI,KAAOrL,GAAOoL,EAAY,MAAMC,EAAQ,CAAC,CAAC,EACpE,GAAI11C,KAAO4qC,EAAO,CAEV,IAAA+K,EAAe/K,EAAM5qC,CAAG,EACvBe,GAAQ40C,CAAY,IACrBA,EAAe/K,EAAM5qC,CAAG,EAAI,CAAC21C,CAAY,GAE7CA,EAAa,KAAKl0C,CAAK,OAGvBmpC,EAAM5qC,CAAG,EAAIyB,CACjB,CAEG,OAAAmpC,CACX,CAUA,SAASO,GAAeP,EAAO,CAC3B,IAAIgD,EAAS,GACb,QAAS5tC,KAAO4qC,EAAO,CACb,MAAAnpC,EAAQmpC,EAAM5qC,CAAG,EAEvB,GADAA,EAAMkqC,GAAelqC,CAAG,EACpByB,GAAS,KAAM,CAEXA,IAAU,SACCmsC,MAAO,OAAS,IAAM,IAAM5tC,GAE3C,UAGWe,GAAQU,CAAK,EACtBA,EAAM,IAASwD,MAAKglC,GAAiBhlC,CAAC,CAAC,EACvC,CAACxD,GAASwoC,GAAiBxoC,CAAK,CAAC,GAChC,QAAQA,GAAS,CAGhBA,IAAU,SAECmsC,MAAO,OAAS,IAAM,IAAM5tC,EACnCyB,GAAS,OACTmsC,GAAU,IAAMnsC,GACxB,CACH,EAEE,OAAAmsC,CACX,CASA,SAASgI,GAAehL,EAAO,CAC3B,MAAMiL,EAAkB,CAAC,EACzB,UAAW71C,KAAO4qC,EAAO,CACf,MAAAnpC,EAAQmpC,EAAM5qC,CAAG,EACnByB,IAAU,SACVo0C,EAAgB71C,CAAG,EAAIe,GAAQU,CAAK,EAC9BA,EAAM,IAAIwD,GAAMA,GAAK,KAAO,KAAO,GAAKA,CAAE,EAC1CxD,GAAS,KACLA,EACA,GAAKA,EACnB,CAEG,OAAAo0C,CACX,CASA,MAAMC,GAAkB,OAAkF,EAAE,EAOtGC,GAAe,OAAuE,EAAE,EAOxFC,GAAY,OAA4D,EAAE,EAO1EC,GAAmB,OAAoE,EAAE,EAOzFC,GAAwB,OAA0E,EAAE,EAK1G,SAASC,IAAe,CACpB,IAAIC,EAAW,CAAC,EAChB,SAASC,EAAIptB,EAAS,CAClB,OAAAmtB,EAAS,KAAKntB,CAAO,EACd,IAAM,CACH,QAAImtB,EAAS,QAAQntB,CAAO,EAC9B,EAAI,IACKmtB,EAAA,OAAO,EAAG,CAAC,CAC5B,EAEJ,SAASr0B,GAAQ,CACbq0B,EAAW,CAAC,EAET,OACH,IAAAC,EACA,KAAM,IAAMD,EAAS,MAAM,EAC3B,MAAAr0B,CACJ,CACJ,CAEA,SAASu0B,GAAcxD,EAAQ5uC,EAAM2jC,EAAO,CACxC,MAAM0O,EAAiB,IAAM,CAClBzD,EAAA5uC,CAAI,EAAE,OAAO2jC,CAAK,CAC7B,EACAhmB,GAAY00B,CAAc,EAC1Bl1B,GAAck1B,CAAc,EAC5Bp1B,GAAY,IAAM,CACP2xB,EAAA5uC,CAAI,EAAE,IAAI2jC,CAAK,EACzB,EACMiL,EAAA5uC,CAAI,EAAE,IAAI2jC,CAAK,CAC1B,CAQA,SAAS2O,IAAmBC,EAAY,CAKpC,MAAMC,EAAe5tB,GAAOgtB,GAE5B,EAAC,EAAG,MACCY,GAKSJ,GAAAI,EAAc,cAAeD,CAAU,CACzD,CAuBA,SAASE,GAAiB9O,EAAOne,EAAIC,EAAMmpB,EAAQ5uC,EAAM0yC,EAAuB70C,OAAM,CAElF,MAAM80C,EAAqB/D,IAEtBA,EAAO,eAAe5uC,CAAI,EAAI4uC,EAAO,eAAe5uC,CAAI,GAAK,IAClE,MAAO,IAAM,IAAI,QAAQ,CAACsf,EAASszB,IAAW,CACpC,MAAA5vC,EAAQ6vC,GAAU,CAChBA,IAAU,GACVD,EAAO1G,GAAkB,EAAuC,CAC5D,KAAAzmB,EACA,GAAAD,CAAA,CACH,CAAC,EAEGqtB,aAAiB,MACtBD,EAAOC,CAAK,EAEPhH,GAAgBgH,CAAK,EAC1BD,EAAO1G,GAAkB,EAA8C,CACnE,KAAM1mB,EACN,GAAIqtB,CAAA,CACP,CAAC,GAGEF,GAEA/D,EAAO,eAAe5uC,CAAI,IAAM2yC,GAChC,OAAOE,GAAU,YACjBF,EAAmB,KAAKE,CAAK,EAEzBvzB,EAAA,EAEhB,EAEMwzB,EAAcJ,EAAe,IAAM/O,EAAM,KAAKiL,GAAUA,EAAO,UAAU5uC,CAAI,EAAGwlB,EAAIC,EAAsFziB,CAAI,CAAC,EACjL,IAAA+vC,EAAY,QAAQ,QAAQD,CAAW,EACvCnP,EAAM,OAAS,IACHoP,IAAU,KAAK/vC,CAAI,GAsBnC+vC,EAAU,MAAM7vC,GAAO0vC,EAAO1vC,CAAG,CAAC,EACrC,CACL,CAYA,SAAS8vC,GAAwBxC,EAASyC,EAAWztB,EAAIC,EAAMitB,EAAiB70C,GAAMA,IAAM,CACxF,MAAMq1C,EAAS,CAAC,EAChB,UAAWtE,KAAU4B,EAKN,UAAAxwC,KAAQ4uC,EAAO,WAAY,CAC9B,IAAAuE,EAAevE,EAAO,WAAW5uC,CAAI,EAiCzC,GAAI,EAAAizC,IAAc,oBAAsB,CAACrE,EAAO,UAAU5uC,CAAI,GAE1D,GAAAwkC,GAAiB2O,CAAY,EAAG,CAG1B,MAAAxP,GADUwP,EAAa,WAAaA,GACpBF,CAAS,EAE3BtP,GAAAuP,EAAO,KAAKT,GAAiB9O,EAAOne,EAAIC,EAAMmpB,EAAQ5uC,EAAM0yC,CAAc,CAAC,MAE9E,CAED,IAAIU,EAAmBD,EAAa,EAKpCD,EAAO,KAAK,IAAME,EAAiB,KAAiB/tB,GAAA,CAChD,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,+BAA+BrlB,CAAI,SAAS4uC,EAAO,IAAI,GAAG,EAC9E,MAAMyE,EAAoB5O,GAAWpf,CAAQ,EACvCA,EAAS,QACTA,EAECupB,EAAA,KAAK5uC,CAAI,EAAIqlB,EAGbupB,EAAA,WAAW5uC,CAAI,EAAIqzC,EAGpB,MAAA1P,GADU0P,EAAkB,WAAaA,GACzBJ,CAAS,EACvB,OAAAtP,GACJ8O,GAAiB9O,EAAOne,EAAIC,EAAMmpB,EAAQ5uC,EAAM0yC,CAAc,EAAE,EACvE,CAAC,EACN,CAGD,OAAAQ,CACX,CAuCA,SAASI,GAAQpzC,EAAO,CACd,MAAAqzC,EAAS3uB,GAAOktB,EAAS,EACzB0B,EAAe5uB,GAAOmtB,EAAgB,EAGtCjG,EAAQtoC,GAAS,IAAM,CACnB,MAAAgiB,EAAKxZ,GAAM9L,EAAM,EAAE,EAalB,OAAAqzC,EAAO,QAAQ/tB,CAAE,EAC3B,EACKiuB,EAAoBjwC,GAAS,IAAM,CAC/B,MAAE,QAAAgtC,GAAY1E,EAAM,MACpB,CAAE,OAAA4H,GAAWlD,EACbmD,EAAenD,EAAQkD,EAAS,CAAC,EACjCE,EAAiBJ,EAAa,QAChC,IAACG,GAAgB,CAACC,EAAe,OAC1B,SACX,MAAMlsC,EAAQksC,EAAe,UAAUrM,GAAkB,KAAK,KAAMoM,CAAY,CAAC,EACjF,GAAIjsC,EAAQ,GACD,OAAAA,EAEX,MAAMmsC,EAAmBC,GAAgBtD,EAAQkD,EAAS,CAAC,CAAC,EAC5D,OAEAA,EAAS,GAILI,GAAgBH,CAAY,IAAME,GAElCD,EAAeA,EAAe,OAAS,CAAC,EAAE,OAASC,EACjDD,EAAe,UAAUrM,GAAkB,KAAK,KAAMiJ,EAAQkD,EAAS,CAAC,CAAC,CAAC,EAC1EhsC,CAAA,CACT,EACKqsC,EAAWvwC,GAAS,IAAMiwC,EAAkB,MAAQ,IACtDO,IAAeR,EAAa,OAAQ1H,EAAM,MAAM,MAAM,CAAC,EACrDmI,EAAgBzwC,GAAS,IAAMiwC,EAAkB,MAAQ,IAC3DA,EAAkB,QAAUD,EAAa,QAAQ,OAAS,GAC1DhM,GAA0BgM,EAAa,OAAQ1H,EAAM,MAAM,MAAM,CAAC,EAC7D,SAAAoI,EAAS/vC,EAAI,GAAI,CAClB,OAAAgwC,GAAWhwC,CAAC,EACLovC,EAAOvnC,GAAM9L,EAAM,OAAO,EAAI,UAAY,MAAM,EAAE8L,GAAM9L,EAAM,EAAE,GAErE,MAAM4kC,EAAI,EAET,QAAQ,QAAQ,EA6BpB,OACH,MAAAgH,EACA,KAAMtoC,GAAS,IAAMsoC,EAAM,MAAM,IAAI,EACrC,SAAAiI,EACA,cAAAE,EACA,SAAAC,CACJ,CACJ,CACA,MAAME,GAA+Cr4B,GAAA,CACjD,KAAM,aACN,aAAc,CAAE,KAAM,CAAE,EACxB,MAAO,CACH,GAAI,CACA,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,EACd,EACA,QAAS,QACT,YAAa,OAEb,iBAAkB,OAClB,OAAQ,QACR,iBAAkB,CACd,KAAM,OACN,QAAS,OAEjB,EACA,QAAAu3B,GACA,MAAMpzC,EAAO,CAAE,MAAAuY,GAAS,CACpB,MAAMnW,EAAOoG,GAAS4qC,GAAQpzC,CAAK,CAAC,EAC9B,CAAE,QAAAiO,CAAA,EAAYyW,GAAOktB,EAAS,EAC9BuC,EAAU7wC,GAAS,KAAO,CAC5B,CAAC8wC,GAAap0C,EAAM,YAAaiO,EAAQ,gBAAiB,oBAAoB,CAAC,EAAG7L,EAAK,SAMvF,CAACgyC,GAAap0C,EAAM,iBAAkBiO,EAAQ,qBAAsB,0BAA0B,CAAC,EAAG7L,EAAK,eACzG,EACF,MAAO,IAAM,CACT,MAAMoT,EAAW+C,EAAM,SAAWA,EAAM,QAAQnW,CAAI,EACpD,OAAOpC,EAAM,OACPwV,EACAmP,GAAE,IAAK,CACL,eAAgBviB,EAAK,cACfpC,EAAM,iBACN,KACN,KAAMoC,EAAK,KAGX,QAASA,EAAK,SACd,MAAO+xC,EAAQ,OAChB3+B,CAAQ,CACnB,EAER,CAAC,EAMK6+B,GAAaH,GACnB,SAASD,GAAWhwC,EAAG,CAEnB,GAAI,EAAAA,EAAE,SAAWA,EAAE,QAAUA,EAAE,SAAWA,EAAE,WAGxC,CAAAA,EAAE,kBAGF,EAAAA,EAAE,SAAW,QAAaA,EAAE,SAAW,GAI3C,IAAIA,EAAE,eAAiBA,EAAE,cAAc,aAAc,CAEjD,MAAMY,EAASZ,EAAE,cAAc,aAAa,QAAQ,EAChD,iBAAc,KAAKY,CAAM,EACzB,OAGR,OAAIZ,EAAE,gBACFA,EAAE,eAAe,EACd,GACX,CACA,SAAS6vC,IAAeQ,EAAOC,EAAO,CAClC,UAAW34C,KAAO24C,EAAO,CACf,MAAAC,EAAaD,EAAM34C,CAAG,EACtB64C,EAAaH,EAAM14C,CAAG,EACxB,UAAO44C,GAAe,UACtB,GAAIA,IAAeC,EACR,iBAGP,CAAC93C,GAAQ83C,CAAU,GACnBA,EAAW,SAAWD,EAAW,QACjCA,EAAW,KAAK,CAACn3C,EAAOb,IAAMa,IAAUo3C,EAAWj4C,CAAC,CAAC,EAC9C,QACf,CAEG,QACX,CAKA,SAASo3C,GAAgBlF,EAAQ,CAC7B,OAAOA,EAAUA,EAAO,QAAUA,EAAO,QAAQ,KAAOA,EAAO,KAAQ,EAC3E,CAOA,MAAM0F,GAAe,CAACM,EAAWC,EAAaC,IAAiBF,GAEzDC,GAEIC,EAEJC,IAA+Ch5B,GAAA,CACjD,KAAM,aAEN,aAAc,GACd,MAAO,CACH,KAAM,CACF,KAAM,OACN,QAAS,SACb,EACA,MAAO,MACX,EAGA,aAAc,CAAE,KAAM,CAAE,EACxB,MAAM7b,EAAO,CAAE,MAAA6nB,EAAO,MAAAtP,GAAS,CAErB,MAAAu8B,EAAgBpwB,GAAOotB,EAAqB,EAC5CiD,EAAiBzxC,GAAS,IAAMtD,EAAM,OAAS80C,EAAc,KAAK,EAClEE,EAAgBtwB,GAAOitB,GAAc,CAAC,EAGtCziC,EAAQ5L,GAAS,IAAM,CACrB,IAAA2xC,EAAenpC,GAAMkpC,CAAa,EAChC,MAAE,QAAA1E,GAAYyE,EAAe,MAC/B,IAAAG,EACJ,MAAQA,EAAe5E,EAAQ2E,CAAY,IACvC,CAACC,EAAa,YACdD,IAEG,OAAAA,CAAA,CACV,EACKE,EAAkB7xC,GAAS,IAAMyxC,EAAe,MAAM,QAAQ7lC,EAAM,KAAK,CAAC,EAChFiV,GAAQwtB,GAAcruC,GAAS,IAAM4L,EAAM,MAAQ,CAAC,CAAC,EACrDiV,GAAQutB,GAAiByD,CAAe,EACxChxB,GAAQ2tB,GAAuBiD,CAAc,EAC7C,MAAMK,EAAU5pC,GAAI,EAGpB,OAAAuC,GAAM,IAAM,CAACqnC,EAAQ,MAAOD,EAAgB,MAAOn1C,EAAM,IAAI,EAAG,CAAC,CAAC4P,EAAU0V,EAAIxlB,CAAI,EAAG,CAACu1C,EAAa9vB,EAAM+vB,CAAO,IAAM,CAEhHhwB,IAGGA,EAAA,UAAUxlB,CAAI,EAAI8P,EAOjB2V,GAAQA,IAASD,GAAM1V,GAAYA,IAAaylC,IAC3C/vB,EAAG,YAAY,OAChBA,EAAG,YAAcC,EAAK,aAErBD,EAAG,aAAa,OACjBA,EAAG,aAAeC,EAAK,gBAK/B3V,GACA0V,IAGC,CAACC,GAAQ,CAAC8hB,GAAkB/hB,EAAIC,CAAI,GAAK,CAAC8vB,KAC1C/vB,EAAG,eAAexlB,CAAI,GAAK,IAAI,QAAQoK,GAAYA,EAAS0F,CAAQ,CAAC,CAC1E,EACD,CAAE,MAAO,OAAQ,EACb,IAAM,CACT,MAAMg8B,EAAQmJ,EAAe,MAGvBQ,EAAcv1C,EAAM,KACpBk1C,EAAeC,EAAgB,MAC/BK,EAAgBN,GAAgBA,EAAa,WAAWK,CAAW,EACzE,GAAI,CAACC,EACD,OAAOxrB,GAAczR,EAAM,QAAS,CAAE,UAAWi9B,EAAe,MAAA5J,EAAO,EAGrE,MAAA6J,EAAmBP,EAAa,MAAMK,CAAW,EACjDG,EAAaD,EACbA,IAAqB,GACjB7J,EAAM,OACN,OAAO6J,GAAqB,WACxBA,EAAiB7J,CAAK,EACtB6J,EACR,KAOA32B,EAAY6F,GAAE6wB,EAAehR,GAAO,CAAC,EAAGkR,EAAY7tB,EAAO,CAC7D,iBAP8B7U,GAAA,CAE1BA,EAAM,UAAU,cACHkiC,EAAA,UAAUK,CAAW,EAAI,KAE9C,EAGI,IAAKH,CAAA,CACR,CAAC,EAmBF,OAGAprB,GAAczR,EAAM,QAAS,CAAE,UAAWuG,EAAW,MAAA8sB,CAAA,CAAO,GACxD9sB,CACR,EAER,CAAC,EACD,SAASkL,GAAc9J,EAAMc,EAAM,CAC/B,GAAI,CAACd,EACM,YACL,MAAAy1B,EAAcz1B,EAAKc,CAAI,EAC7B,OAAO20B,EAAY,SAAW,EAAIA,EAAY,CAAC,EAAIA,CACvD,CAMA,MAAMC,IAAaf,IAmenB,SAASgB,IAAa5nC,EAAS,CAC3B,MAAM2gC,EAAUC,GAAoB5gC,EAAQ,OAAQA,CAAO,EACrD6nC,EAAe7nC,EAAQ,YAAco4B,GACrC0P,EAAmB9nC,EAAQ,gBAAkB84B,GAC7C2E,EAAgBz9B,EAAQ,QAIxB+nC,EAAejE,GAAa,EAC5BkE,EAAsBlE,GAAa,EACnCmE,EAAcnE,GAAa,EAC3BuB,EAAe5nC,GAAWq8B,EAAyB,EACzD,IAAIoO,EAAkBpO,GAElB1D,IAAap2B,EAAQ,gBAAkB,sBAAuB,UAC9D,QAAQ,kBAAoB,UAEhC,MAAMmoC,EAAkB3R,GAAc,KAAK,KAAM4R,GAAc,GAAKA,CAAU,EACxEC,EAAe7R,GAAc,KAAK,KAAMuB,EAAW,EACnDuQ,EAEN9R,GAAc,KAAK,KAAMwB,EAAM,EACtB,SAAAkJ,EAASqH,EAAe5K,GAAO,CAChC,IAAAld,GACAggB,GACA,OAAA7C,GAAY2K,CAAa,GAChB9nB,GAAAkgB,EAAQ,iBAAiB4H,CAAa,EAItC9H,GAAA9C,IAGA8C,GAAA8H,EAEN5H,EAAQ,SAASF,GAAQhgB,EAAM,EAE1C,SAASshB,EAAYlwC,EAAM,CACjB,MAAA22C,GAAgB7H,EAAQ,iBAAiB9uC,CAAI,EAC/C22C,IACA7H,EAAQ,YAAY6H,EAAa,CAIrC,CAEJ,SAASrG,GAAY,CACjB,OAAOxB,EAAQ,YAAY,IAAI8H,GAAgBA,EAAa,MAAM,EAEtE,SAASC,EAAS72C,EAAM,CACpB,MAAO,CAAC,CAAC8uC,EAAQ,iBAAiB9uC,CAAI,EAEjC,SAAAsf,EAAQw3B,EAAarQ,GAAiB,CAKvC,GADJA,GAAkB/B,GAAO,GAAI+B,IAAmB+M,EAAa,KAAK,EAC9D,OAAOsD,GAAgB,SAAU,CACjC,MAAMC,GAAqBzQ,GAAS0P,EAAcc,EAAarQ,GAAgB,IAAI,EAC7E2O,GAAetG,EAAQ,QAAQ,CAAE,KAAMiI,GAAmB,MAAQtQ,EAAe,EACjFuQ,GAAOpL,EAAc,WAAWmL,GAAmB,QAAQ,EAS1D,OAAArS,GAAOqS,GAAoB3B,GAAc,CAC5C,OAAQqB,EAAarB,GAAa,MAAM,EACxC,KAAMjP,GAAO4Q,GAAmB,IAAI,EACpC,eAAgB,OAChB,KAAAC,EAAA,CACH,EAMD,IAAAC,GAEA,GAAAH,EAAY,MAAQ,KAQFG,GAAAvS,GAAO,CAAC,EAAGoS,EAAa,CACtC,KAAMxQ,GAAS0P,EAAcc,EAAY,KAAMrQ,GAAgB,IAAI,EAAE,KACxE,MAEA,CAED,MAAMyQ,GAAexS,GAAO,GAAIoS,EAAY,MAAM,EAClD,UAAWh7C,MAAOo7C,GACVA,GAAap7C,EAAG,GAAK,MACrB,OAAOo7C,GAAap7C,EAAG,EAIbm7C,GAAAvS,GAAO,CAAC,EAAGoS,EAAa,CACtC,OAAQN,EAAaU,EAAY,EACpC,EAGezQ,GAAA,OAAS+P,EAAa/P,GAAgB,MAAM,EAEhE,MAAM2O,GAAetG,EAAQ,QAAQmI,GAAiBxQ,EAAe,EAC/DG,GAAOkQ,EAAY,MAAQ,GAMjC1B,GAAa,OAASkB,EAAgBG,EAAarB,GAAa,MAAM,CAAC,EACvE,MAAM+B,GAAWnQ,GAAaiP,EAAkBvR,GAAO,GAAIoS,EAAa,CACpE,KAAMhR,GAAWc,EAAI,EACrB,KAAMwO,GAAa,KACtB,CAAC,EACI4B,GAAOpL,EAAc,WAAWuL,EAAQ,EAS9C,OAAOzS,GAAO,CACV,SAAAyS,GAGA,KAAAvQ,GACA,MAMAqP,IAAqBhP,GACfyK,GAAeoF,EAAY,KAAK,EAC/BA,EAAY,OAAS,IAC7B1B,GAAc,CACb,eAAgB,OAChB,KAAA4B,EAAA,CACH,EAEL,SAASI,EAAiB5xB,EAAI,CAC1B,OAAO,OAAOA,GAAO,SACf8gB,GAAS0P,EAAcxwB,EAAIguB,EAAa,MAAM,IAAI,EAClD9O,GAAO,GAAIlf,CAAE,EAEd,SAAA6xB,EAAwB7xB,EAAIC,GAAM,CACvC,GAAI4wB,IAAoB7wB,EACpB,OAAO0mB,GAAkB,EAAyC,CAC9D,KAAAzmB,GACA,GAAAD,CAAA,CACH,CACL,CAEJ,SAAS6lB,EAAK7lB,EAAI,CACd,OAAO8xB,EAAiB9xB,CAAE,EAE9B,SAASukB,EAAQvkB,EAAI,CACV,OAAA6lB,EAAK3G,GAAO0S,EAAiB5xB,CAAE,EAAG,CAAE,QAAS,EAAK,CAAC,CAAC,EAE/D,SAAS+xB,EAAqB/xB,EAAI,CAC9B,MAAMgyB,GAAchyB,EAAG,QAAQA,EAAG,QAAQ,OAAS,CAAC,EAChD,GAAAgyB,IAAeA,GAAY,SAAU,CAC/B,MAAE,SAAAC,IAAaD,GACrB,IAAIE,GAAoB,OAAOD,IAAa,WAAaA,GAASjyB,CAAE,EAAIiyB,GACpE,cAAOC,IAAsB,WAEzBA,MAAkB,SAAS,GAAG,GAAKA,GAAkB,SAAS,GAAG,EAC1DA,GAAoBN,EAAiBM,EAAiB,EAErD,CAAE,KAAMA,EAAkB,EAGtCA,GAAkB,OAAS,CAAC,GAQzBhT,GAAO,CACV,MAAOlf,EAAG,MACV,KAAMA,EAAG,KAET,OAAQkyB,GAAkB,MAAQ,KAAO,GAAKlyB,EAAG,QAClDkyB,EAAiB,EACxB,CAEK,SAAAJ,EAAiB9xB,EAAImyB,GAAgB,CACpC,MAAAC,GAAkBvB,EAAkB/2B,EAAQkG,CAAE,EAC9CC,GAAO+tB,EAAa,MACpBtyB,GAAOsE,EAAG,MACVqyB,GAAQryB,EAAG,MAEXukB,GAAUvkB,EAAG,UAAY,GACzBsyB,GAAiBP,EAAqBK,EAAc,EACtD,GAAAE,GACO,OAAAR,EAAiB5S,GAAO0S,EAAiBU,EAAc,EAAG,CAC7D,MAAO,OAAOA,IAAmB,SAC3BpT,GAAO,CAAI,EAAAxjB,GAAM42B,GAAe,KAAK,EACrC52B,GACN,MAAA22B,GACA,QAAA9N,EAAA,CACH,EAED4N,IAAkBC,EAAc,EAEpC,MAAMG,GAAaH,GACnBG,GAAW,eAAiBJ,GACxB,IAAAK,GACJ,MAAI,CAACH,IAASzQ,GAAoB6O,EAAkBxwB,GAAMmyB,EAAc,IACpEI,GAAU9L,GAAkB,GAA2C,CAAE,GAAI6L,GAAY,KAAAtyB,GAAM,EAE/FwyB,EAAaxyB,GAAMA,GAGnB,GAGA,EAAK,IAEDuyB,GAAU,QAAQ,QAAQA,EAAO,EAAI9D,EAAS6D,GAAYtyB,EAAI,GACjE,MAAOxiB,IAAUkpC,GAAoBlpC,EAAK,EAEvCkpC,GAAoBlpC,GAAO,GACrBA,GACAi1C,EAAYj1C,EAAK,EAEvBk1C,GAAal1C,GAAO80C,GAAYtyB,EAAI,CAAC,EACxC,KAAMuyB,IAAY,CACnB,GAAIA,IACI,GAAA7L,GAAoB6L,GAAS,GActB,OAAAV,EAEP5S,GAAO,CAEH,QAAAqF,EAAA,EACDqN,EAAiBY,GAAQ,EAAE,EAAG,CAC7B,MAAO,OAAOA,GAAQ,IAAO,SACvBtT,GAAO,GAAIxjB,GAAM82B,GAAQ,GAAG,KAAK,EACjC92B,GACN,MAAA22B,EAAA,CACH,EAEDF,IAAkBI,EAAU,OAKhCC,GAAUI,EAAmBL,GAAYtyB,GAAM,GAAMskB,GAAS7oB,EAAI,EAErD,OAAAm3B,EAAAN,GAAYtyB,GAAMuyB,EAAO,EACnCA,EAAA,CACV,EAOI,SAAAM,EAAiC9yB,EAAIC,GAAM,CAC1C,MAAAxiB,GAAQo0C,EAAwB7xB,EAAIC,EAAI,EAC9C,OAAOxiB,GAAQ,QAAQ,OAAOA,EAAK,EAAI,QAAQ,QAAQ,EAE3D,SAASyvC,EAAe70C,EAAI,CACxB,MAAMkpB,GAAMwxB,EAAc,OAAO,EAAE,KAAO,QAEnC,OAAAxxB,IAAO,OAAOA,GAAI,gBAAmB,WACtCA,GAAI,eAAelpB,CAAE,EACrBA,EAAG,EAGJ,SAAAq2C,EAAS1uB,EAAIC,GAAM,CACpB,IAAAytB,GACJ,KAAM,CAACsF,GAAgBC,GAAiBC,EAAe,EAAIC,IAAuBnzB,EAAIC,EAAI,EAE1FytB,GAASF,GAAwBwF,GAAe,QAAW,qBAAoBhzB,EAAIC,EAAI,EAEvF,UAAWmpB,MAAU4J,GACV5J,GAAA,YAAY,QAAiBjL,IAAA,CAChCuP,GAAO,KAAKT,GAAiB9O,GAAOne,EAAIC,EAAI,CAAC,EAChD,EAEL,MAAMmzB,GAA0BN,EAAiC,KAAK,KAAM9yB,EAAIC,EAAI,EACpF,OAAAytB,GAAO,KAAK0F,EAAuB,EAE3BC,EAAc3F,EAAM,EACvB,KAAK,IAAM,CAEZA,GAAS,CAAC,EACC,UAAAvP,MAASuS,EAAa,OAC7BhD,GAAO,KAAKT,GAAiB9O,GAAOne,EAAIC,EAAI,CAAC,EAEjD,OAAAytB,GAAO,KAAK0F,EAAuB,EAC5BC,EAAc3F,EAAM,EAC9B,EACI,KAAK,IAAM,CAEZA,GAASF,GAAwByF,GAAiB,oBAAqBjzB,EAAIC,EAAI,EAC/E,UAAWmpB,MAAU6J,GACV7J,GAAA,aAAa,QAAiBjL,IAAA,CACjCuP,GAAO,KAAKT,GAAiB9O,GAAOne,EAAIC,EAAI,CAAC,EAChD,EAEL,OAAAytB,GAAO,KAAK0F,EAAuB,EAE5BC,EAAc3F,EAAM,EAC9B,EACI,KAAK,IAAM,CAEZA,GAAS,CAAC,EACV,UAAWtE,MAAU8J,GAEjB,GAAI9J,GAAO,YACH,GAAA/xC,GAAQ+xC,GAAO,WAAW,EAC1B,UAAWkK,MAAelK,GAAO,YAC7BsE,GAAO,KAAKT,GAAiBqG,GAAatzB,EAAIC,EAAI,CAAC,OAGvDytB,GAAO,KAAKT,GAAiB7D,GAAO,YAAappB,EAAIC,EAAI,CAAC,EAItE,OAAAytB,GAAO,KAAK0F,EAAuB,EAE5BC,EAAc3F,EAAM,EAC9B,EACI,KAAK,KAGN1tB,EAAG,QAAQ,QAAQopB,IAAWA,GAAO,eAAiB,EAAG,EAEzDsE,GAASF,GAAwB0F,GAAiB,mBAAoBlzB,EAAIC,GAAMitB,CAAc,EAC9FQ,GAAO,KAAK0F,EAAuB,EAE5BC,EAAc3F,EAAM,EAC9B,EACI,KAAK,IAAM,CAEZA,GAAS,CAAC,EACC,UAAAvP,MAASwS,EAAoB,OACpCjD,GAAO,KAAKT,GAAiB9O,GAAOne,EAAIC,EAAI,CAAC,EAEjD,OAAAytB,GAAO,KAAK0F,EAAuB,EAC5BC,EAAc3F,EAAM,EAC9B,EAEI,MAAahwC,IAAAipC,GAAoBjpC,GAAK,CACrC,EAAAA,GACA,QAAQ,OAAOA,EAAG,CAAC,EAEpB,SAAAm1C,EAAiB7yB,EAAIC,GAAMuyB,GAAS,CAIpC5B,EAAA,OACA,QAAiBzS,IAAA+O,EAAe,IAAM/O,GAAMne,EAAIC,GAAMuyB,EAAO,CAAC,CAAC,EAOxE,SAASI,EAAmBL,EAAYtyB,GAAMszB,GAAQhP,GAAS7oB,GAAM,CAE3D,MAAAje,GAAQo0C,EAAwBU,EAAYtyB,EAAI,EAClD,GAAAxiB,GACO,OAAAA,GAEX,MAAM+1C,GAAoBvzB,KAASwiB,GAC7BhwB,GAASssB,GAAiB,QAAQ,MAAb,GAGvBwU,KAGIhP,IAAWiP,GACGpN,EAAA,QAAQmM,EAAW,SAAUrT,GAAO,CAC9C,OAAQsU,IAAqB/gC,IAASA,GAAM,MAChD,EAAGiJ,EAAI,CAAC,EAEM0qB,EAAA,KAAKmM,EAAW,SAAU72B,EAAI,GAGpDsyB,EAAa,MAAQuE,EACRE,EAAAF,EAAYtyB,GAAMszB,GAAQC,EAAiB,EAC5Cd,EAAA,EAEZ,IAAAe,EAEJ,SAASC,GAAiB,CAElBD,IAEJA,EAAwBrN,EAAc,OAAO,CAACpmB,EAAI2zB,GAAOC,KAAS,CAC9D,GAAI,CAAC7F,EAAO,UACR,OAEE,MAAAwE,GAAaz4B,EAAQkG,CAAE,EAIvBsyB,GAAiBP,EAAqBQ,EAAU,EACtD,GAAID,GAAgB,CACCR,EAAA5S,GAAOoT,GAAgB,CAAE,QAAS,EAAM,GAAGC,EAAU,EAAE,MAAMjT,EAAI,EAClF,OAEcuR,EAAA0B,GAClB,MAAMtyB,GAAO+tB,EAAa,MAEtBjP,IACA6E,GAAmBH,GAAaxjB,GAAK,SAAU2zB,GAAK,KAAK,EAAGxQ,IAAuB,EAEvFsL,EAAS6D,GAAYtyB,EAAI,EACpB,MAAOxiB,IACJkpC,GAAoBlpC,GAAO,EAAwC,EAC5DA,GAEPkpC,GAAoBlpC,GAAO,IAU3Bq0C,EAAiBr0C,GAAM,GAAI80C,EAAA,EAGtB,KAAgBC,IAAA,CAIb7L,GAAoB6L,GAAS,EAC7B,GACA,CAACoB,GAAK,OACNA,GAAK,OAASlR,GAAe,KACf0D,EAAA,GAAG,GAAI,EAAK,CAC9B,CACH,EACI,MAAM9G,EAAI,EAER,QAAQ,OAAO,IAGtBsU,GAAK,OACLxN,EAAc,GAAG,CAACwN,GAAK,MAAO,EAAK,EAGhCjB,GAAal1C,GAAO80C,GAAYtyB,EAAI,EAC9C,EACI,KAAMuyB,IAAY,CACnBA,GACIA,IACII,EAEAL,GAAYtyB,GAAM,EAAK,EAE3BuyB,KACIoB,GAAK,OAGL,CAACjN,GAAoB6L,GAAS,GAC9BpM,EAAc,GAAG,CAACwN,GAAK,MAAO,EAAK,EAE9BA,GAAK,OAASlR,GAAe,KAClCiE,GAAoB6L,GAAS,EAAwC,GAGvDpM,EAAA,GAAG,GAAI,EAAK,GAGjByM,EAAAN,GAAYtyB,GAAMuyB,EAAO,EAC7C,EAEI,MAAMlT,EAAI,EAClB,GAGL,IAAIuU,EAAgBpH,GAAa,EAC7BqH,EAAiBrH,GAAa,EAC9BsH,EASK,SAAApB,GAAal1C,EAAOuiB,GAAIC,GAAM,CACnCyyB,EAAYj1C,CAAK,EACX,MAAAu2C,GAAOF,EAAe,KAAK,EACjC,OAAIE,GAAK,OACLA,GAAK,QAAmBz0B,OAAQ9hB,EAAOuiB,GAAIC,EAAI,CAAC,EAMhD,QAAQ,MAAMxiB,CAAK,EAGhB,QAAQ,OAAOA,CAAK,EAE/B,SAASw2C,IAAU,CACX,OAAAF,GAAS/F,EAAa,QAAUvL,GACzB,QAAQ,QAAQ,EACpB,IAAI,QAAQ,CAAC3oB,EAASszB,KAAW,CACpCyG,EAAc,IAAI,CAAC/5B,EAASszB,EAAM,CAAC,EACtC,EAEL,SAASsF,EAAYh1C,EAAK,CACtB,OAAKq2C,IAEDA,EAAQ,CAACr2C,EACMg2C,EAAA,EACfG,EACK,KAAK,EACL,QAAQ,CAAC,CAAC/5B,GAASszB,EAAM,IAAO1vC,EAAM0vC,GAAO1vC,CAAG,EAAIoc,IAAU,EACnE+5B,EAAc,MAAM,GAEjBn2C,CAAA,CAGX,SAAS+0C,EAAazyB,EAAIC,GAAMszB,GAAQC,GAAmB,CACjD,MAAE,eAAAU,IAAmBvrC,EACvB,IAACo2B,IAAa,CAACmV,GACf,OAAO,QAAQ,QAAQ,EAC3B,MAAMrQ,GAAkB,CAAC0P,IAAUzP,GAAuBL,GAAazjB,EAAG,SAAU,CAAC,CAAC,IAChFwzB,IAAqB,CAACD,KACpB,QAAQ,OACR,QAAQ,MAAM,QAClB,KACG,OAAA5nC,GAAA,EACF,KAAK,IAAMuoC,GAAel0B,EAAIC,GAAM4jB,EAAc,CAAC,EACnD,SAAiBvB,IAAYe,GAAiBf,EAAQ,CAAC,EACvD,UAAaqQ,GAAaj1C,GAAKsiB,EAAIC,EAAI,CAAC,EAEjD,MAAMimB,EAAMxC,GAAU0C,EAAc,GAAG1C,CAAK,EACxC,IAAAyQ,EACE,MAAApB,MAAoB,IACpBhF,EAAS,CACX,aAAAC,EACA,UAAW,GACX,SAAAnE,EACA,YAAAa,EACA,YAAapB,EAAQ,YACrB,SAAA+H,EACA,UAAAvG,EACA,QAAAhxB,EACA,QAAAnR,EACA,KAAAk9B,EACA,QAAAtB,EACA,GAAA2B,EACA,KAAM,IAAMA,EAAG,EAAE,EACjB,QAAS,IAAMA,EAAG,CAAC,EACnB,WAAYwK,EAAa,IACzB,cAAeC,EAAoB,IACnC,UAAWC,EAAY,IACvB,QAASkD,EAAe,IACxB,QAAAG,GACA,QAAQ1yB,EAAK,CACT,MAAMwsB,GAAS,KACXxsB,EAAA,UAAU,aAAcwtB,EAAU,EAClCxtB,EAAA,UAAU,aAAc+uB,GAAU,EAClC/uB,EAAA,OAAO,iBAAiB,QAAUwsB,GACtC,OAAO,eAAexsB,EAAI,OAAO,iBAAkB,SAAU,CACzD,WAAY,GACZ,IAAK,IAAM/a,GAAMwnC,CAAY,EAChC,EAIGjP,IAGA,CAACoV,GACDnG,EAAa,QAAUvL,KAEb0R,EAAA,GACVtO,EAAKO,EAAc,QAAQ,EAAE,MAAa1oC,IAAA,CAEoB,CAC7D,GAEL,MAAM02C,GAAgB,CAAC,EACvB,UAAW99C,MAAOmsC,GACP,sBAAe2R,GAAe99C,GAAK,CACtC,IAAK,IAAM03C,EAAa,MAAM13C,EAAG,EACjC,WAAY,GACf,EAEDirB,EAAA,QAAQ+qB,GAAWyB,EAAM,EAC7BxsB,EAAI,QAAQgrB,GAAkB/mC,GAAgB4uC,EAAa,CAAC,EACxD7yB,EAAA,QAAQirB,GAAuBwB,CAAY,EAC/C,MAAMqG,GAAa9yB,EAAI,QACvBwxB,EAAc,IAAIxxB,CAAG,EACrBA,EAAI,QAAU,UAAY,CACtBwxB,EAAc,OAAOxxB,CAAG,EAEpBwxB,EAAc,KAAO,IAEHlC,EAAApO,GAClBgR,GAAyBA,EAAsB,EACvBA,EAAA,KACxBzF,EAAa,MAAQvL,GACX0R,EAAA,GACFJ,EAAA,IAEDM,GAAA,CACf,CAIA,CAER,EAEA,SAAShB,EAAc3F,EAAQ,CAC3B,OAAOA,EAAO,OAAO,CAAC4G,GAASnW,KAAUmW,GAAQ,KAAK,IAAMpH,EAAe/O,EAAK,CAAC,EAAG,QAAQ,SAAS,EAElG,OAAA4P,CACX,CACA,SAASoF,IAAuBnzB,EAAIC,EAAM,CACtC,MAAM+yB,EAAiB,CAAC,EAClBC,EAAkB,CAAC,EACnBC,EAAkB,CAAC,EACnB9lB,EAAM,KAAK,IAAInN,EAAK,QAAQ,OAAQD,EAAG,QAAQ,MAAM,EAC3D,QAAS9oB,EAAI,EAAGA,EAAIk2B,EAAKl2B,IAAK,CACpB,MAAAq9C,EAAat0B,EAAK,QAAQ/oB,CAAC,EAC7Bq9C,IACIv0B,EAAG,QAAQ,QAAe+hB,GAAkBqH,EAAQmL,CAAU,CAAC,EAC/DtB,EAAgB,KAAKsB,CAAU,EAE/BvB,EAAe,KAAKuB,CAAU,GAEhC,MAAAC,EAAWx0B,EAAG,QAAQ9oB,CAAC,EACzBs9C,IAEKv0B,EAAK,QAAQ,QAAe8hB,GAAkBqH,EAAQoL,CAAQ,CAAC,GAChEtB,EAAgB,KAAKsB,CAAQ,EAErC,CAEG,OAACxB,EAAgBC,EAAiBC,CAAe,CAC5D,CAMA,SAASuB,KAAY,CACjB,OAAOr1B,GAAOktB,EAAS,CAC3B,CAKA,SAASoI,IAASC,EAAO,CACrB,OAAOv1B,GAAOmtB,EAAgB,CAClC,CCtqHU,IAACqI,IACV,SAAUA,EAAe,CACtBA,EAAcA,EAAc,OAAY,CAAC,EAAI,SAC7CA,EAAcA,EAAc,KAAU,CAAC,EAAI,OAC3CA,EAAcA,EAAc,OAAY,CAAC,EAAI,QACjD,GAAGA,KAAkBA,GAAgB,GAAG,EAEjC,SAASC,IAAYpqC,EAAQ,CAChC,MAAO,CACH,YAAaA,EAAO,OAAO,CAACpR,EAAKkC,KACtB,CACH,GAAGlC,EACH,CAACkC,EAAE,QAAQ,EAAGA,EACd,CAACA,EAAE,KAAK,EAAGA,CACd,GACF,EAAE,EACL,OAAQkP,CACX,CACL,CAKO,IAAIqqC,IACV,SAAUA,EAAa,CACpBA,EAAYA,EAAY,KAAU,CAAC,EAAI,OACvCA,EAAYA,EAAY,KAAU,CAAC,EAAI,MAC3C,GAAGA,KAAgBA,GAAc,GAAG,EAC7B,SAASC,GAAgBC,EAAUC,EAAcC,EAAS,GAAO,CACpE,MAAMC,EAAW,OAAOF,GAAgB,SAClCD,EAAS,MAAMC,CAAY,EAC3BA,EACN,GAAKE,GAKA,GAAIH,EAAS,MAAMG,EAAS,IAAI,IAAMA,EAAU,CACjD,GAAID,EACA,OACJ,KAAM,YAAYC,EAAS,IAAI,sCAAsCH,EAAS,IAAI,EAC1F,MATmB,CACX,GAAIE,EACA,OACJ,KAAM,oBAAoBD,CAAY,EAC9C,CAMI,OAAOE,CACX,CAIO,SAASC,IAASvrB,EAAM,CAC3B,MAAMxzB,EAAM,IAAI,IAChB,SAASg/C,EAAKC,EAAG,CAIb,GAHIA,GAAK,MAGL,OAAO,SAASA,CAAC,EACjB,OAAOA,EACX,GAAIj/C,EAAI,IAAIi/C,CAAC,EACT,OAAOj/C,EAAI,IAAIi/C,CAAC,EAKpBj/C,EAAI,IAAIi/C,EAAGA,CAAC,EACZ,UAAWpxB,KAAQ,OAAO,oBAAoBoxB,CAAC,EAAG,CAC9C,MAAMv9C,EAAQu9C,EAAEpxB,CAAI,EAChBnsB,GAAS,MAAQ,OAAOA,GAAU,WAC9B,OAAO,yBAAyBu9C,EAAGpxB,CAAI,EAAE,IAKzC,OAAO,eAAeoxB,EAAGpxB,EAAM,CAAE,MAAOmxB,EAAKt9C,CAAK,EAAG,EAGrDu9C,EAAEpxB,CAAI,EAAImxB,EAAKt9C,CAAK,EAGxC,CACQ,OAAO,OAAO,OAAOiO,GAAQsvC,CAAC,CAAC,CACvC,CACI,OAAOD,EAAKxrB,CAAI,CACpB,CCtDO,SAAS0rB,GAAOC,EAAU,CAC/B,MAAMC,EAAS,OAAO,UAAU,SAAS,KAAKD,CAAQ,EAGtD,OACEA,aAAoB,MACnB,OAAOA,GAAa,UAAYC,IAAW,gBAGrC,IAAID,EAAS,YAAY,CAACA,CAAQ,EAEzC,OAAOA,GAAa,UACpBC,IAAW,mBACX,OAAOD,GAAa,UACpBC,IAAW,kBAGJ,IAAI,KAAKD,CAAQ,EAGjB,IAAI,KAAK,GAAG,CAEvB,CCxBO,SAASE,GAAcC,EAAM59C,EAAO,CACzC,OAAI49C,aAAgB,KACX,IAAIA,EAAK,YAAY59C,CAAK,EAE1B,IAAI,KAAKA,CAAK,CAEzB,CCbO,SAAS69C,GAAQD,EAAME,EAAQ,CACpC,MAAMC,EAAQP,GAAOI,CAAI,EACzB,OAAI,MAAME,CAAM,EAAUH,GAAcC,EAAM,GAAG,GAC5CE,GAILC,EAAM,QAAQA,EAAM,QAAO,EAAKD,CAAM,EAC/BC,EACT,CCLO,SAASC,IAAUJ,EAAME,EAAQ,CACtC,MAAMC,EAAQP,GAAOI,CAAI,EACzB,GAAI,MAAME,CAAM,EAAG,OAAOH,GAAcC,EAAM,GAAG,EACjD,GAAI,CAACE,EAEH,OAAOC,EAET,MAAME,EAAaF,EAAM,QAAS,EAU5BG,EAAoBP,GAAcC,EAAMG,EAAM,QAAO,CAAE,EAC7DG,EAAkB,SAASH,EAAM,SAAU,EAAGD,EAAS,EAAG,CAAC,EAC3D,MAAMK,EAAcD,EAAkB,QAAS,EAC/C,OAAID,GAAcE,EAGTD,GASPH,EAAM,YACJG,EAAkB,YAAa,EAC/BA,EAAkB,SAAU,EAC5BD,CACD,EACMF,EAEX,CCUO,MAAMK,GAAqB,OAOrBC,IAAoB,MAOpBC,IAAuB,IAOvBC,IAAqB,KAOrBC,IAAuB,IAcvBC,GAAiB,MAOjBC,GAAe,KC7H5B,IAAIC,IAAiB,CAAE,EAEhB,SAASC,IAAoB,CAClC,OAAOD,GACT,CC6BO,SAASE,GAAYjB,EAAMhtC,EAAS,aACzC,MAAM+tC,EAAiBC,GAAmB,EACpCE,GACJluC,GAAA,YAAAA,EAAS,iBACTmuC,GAAAt7C,EAAAmN,GAAA,YAAAA,EAAS,SAAT,YAAAnN,EAAiB,UAAjB,YAAAs7C,EAA0B,eAC1BJ,EAAe,gBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,eAChC,EAEIjB,EAAQP,GAAOI,CAAI,EACnBsB,EAAMnB,EAAM,OAAQ,EACpB7N,GAAQgP,EAAMJ,EAAe,EAAI,GAAKI,EAAMJ,EAElD,OAAAf,EAAM,QAAQA,EAAM,QAAO,EAAK7N,CAAI,EACpC6N,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCzBO,SAASoB,GAAevB,EAAM,CACnC,OAAOiB,GAAYjB,EAAM,CAAE,aAAc,CAAC,CAAE,CAC9C,CCAO,SAASwB,GAAexB,EAAM,CACnC,MAAMG,EAAQP,GAAOI,CAAI,EACnByB,EAAOtB,EAAM,YAAa,EAE1BuB,EAA4B3B,GAAcC,EAAM,CAAC,EACvD0B,EAA0B,YAAYD,EAAO,EAAG,EAAG,CAAC,EACpDC,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBJ,GAAeG,CAAyB,EAE1DE,EAA4B7B,GAAcC,EAAM,CAAC,EACvD4B,EAA0B,YAAYH,EAAM,EAAG,CAAC,EAChDG,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBN,GAAeK,CAAyB,EAEhE,OAAIzB,EAAM,QAAO,GAAMwB,EAAgB,QAAO,EACrCF,EAAO,EACLtB,EAAM,QAAS,GAAI0B,EAAgB,QAAO,EAC5CJ,EAEAA,EAAO,CAElB,CCzBO,SAASK,GAAW9B,EAAM,CAC/B,MAAMG,EAAQP,GAAOI,CAAI,EACzB,OAAAG,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCbO,SAAS4B,GAAgC/B,EAAM,CACpD,MAAMG,EAAQP,GAAOI,CAAI,EACnBgC,EAAU,IAAI,KAClB,KAAK,IACH7B,EAAM,YAAa,EACnBA,EAAM,SAAU,EAChBA,EAAM,QAAS,EACfA,EAAM,SAAU,EAChBA,EAAM,WAAY,EAClBA,EAAM,WAAY,EAClBA,EAAM,gBAAiB,CACxB,CACF,EACD,OAAA6B,EAAQ,eAAe7B,EAAM,aAAa,EACnC,CAACH,EAAO,CAACgC,CAClB,CCQO,SAASC,IAAyBC,EAAUC,EAAW,CAC5D,MAAMC,EAAiBN,GAAWI,CAAQ,EACpCG,EAAkBP,GAAWK,CAAS,EAEtCG,EACJ,CAACF,EAAiBL,GAAgCK,CAAc,EAC5DG,EACJ,CAACF,EAAkBN,GAAgCM,CAAe,EAKpE,OAAO,KAAK,OAAOC,EAAgBC,GAAkB9B,GAAiB,CACxE,CCtBO,SAAS+B,IAAmBxC,EAAM,CACvC,MAAMyB,EAAOD,GAAexB,CAAI,EAC1ByC,EAAkB1C,GAAcC,EAAM,CAAC,EAC7C,OAAAyC,EAAgB,YAAYhB,EAAM,EAAG,CAAC,EACtCgB,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BlB,GAAekB,CAAe,CACvC,CCXO,SAASC,GAAS1C,EAAME,EAAQ,CACrC,OAAOE,IAAUJ,EAAME,EAAS,EAAE,CACpC,CCYO,SAASyC,GAAWT,EAAUC,EAAW,CAC9C,MAAMS,EAAYhD,GAAOsC,CAAQ,EAC3BW,EAAajD,GAAOuC,CAAS,EAE7B7P,EAAOsQ,EAAU,QAAO,EAAKC,EAAW,QAAS,EAEvD,OAAIvQ,EAAO,EACF,GACEA,EAAO,EACT,EAGAA,CAEX,CClBO,SAASwQ,IAAa9C,EAAM,CACjC,OAAOD,GAAcC,EAAM,KAAK,IAAG,CAAE,CACvC,CCFO,SAAS+C,IAAO3gD,EAAO,CAC5B,OACEA,aAAiB,MAChB,OAAOA,GAAU,UAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEhD,CCFO,SAAS4gD,GAAQhD,EAAM,CAC5B,GAAI,CAAC+C,IAAO/C,CAAI,GAAK,OAAOA,GAAS,SACnC,MAAO,GAET,MAAMG,EAAQP,GAAOI,CAAI,EACzB,MAAO,CAAC,MAAM,OAAOG,CAAK,CAAC,CAC7B,CCjBO,SAAS8C,IAA2Bf,EAAUC,EAAW,CAC9D,MAAMS,EAAYhD,GAAOsC,CAAQ,EAC3BW,EAAajD,GAAOuC,CAAS,EAE7Be,EAAWN,EAAU,YAAW,EAAKC,EAAW,YAAa,EAC7DM,EAAYP,EAAU,SAAQ,EAAKC,EAAW,SAAU,EAE9D,OAAOK,EAAW,GAAKC,CACzB,CCjCO,SAASC,IAAkBv3C,EAAQ,CACxC,OAAQm8B,GAAW,CAEjB,MAAMh8B,GADQH,EAAS,KAAKA,CAAM,EAAI,KAAK,OACtBm8B,CAAM,EAE3B,OAAOh8B,IAAW,EAAI,EAAIA,CAC3B,CACH,CCmBO,SAASq3C,IAAyBnB,EAAUC,EAAW,CAC5D,MAAO,CAACvC,GAAOsC,CAAQ,EAAI,CAACtC,GAAOuC,CAAS,CAC9C,CCNO,SAASmB,IAAStD,EAAM,CAC7B,MAAMG,EAAQP,GAAOI,CAAI,EACzB,OAAAG,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCJO,SAASoD,IAAWvD,EAAM,CAC/B,MAAMG,EAAQP,GAAOI,CAAI,EACnBwD,EAAQrD,EAAM,SAAU,EAC9B,OAAAA,EAAM,YAAYA,EAAM,YAAa,EAAEqD,EAAQ,EAAG,CAAC,EACnDrD,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCLO,SAASsD,IAAiBzD,EAAM,CACrC,MAAMG,EAAQP,GAAOI,CAAI,EACzB,MAAO,CAACsD,IAASnD,CAAK,GAAM,CAACoD,IAAWpD,CAAK,CAC/C,CCDO,SAASuD,IAAmBxB,EAAUC,EAAW,CACtD,MAAMS,EAAYhD,GAAOsC,CAAQ,EAC3BW,EAAajD,GAAOuC,CAAS,EAE7BwB,EAAOhB,GAAWC,EAAWC,CAAU,EACvCe,EAAa,KAAK,IACtBX,IAA2BL,EAAWC,CAAU,CACjD,EACD,IAAI72C,EAGJ,GAAI43C,EAAa,EACf53C,EAAS,MACJ,CACD42C,EAAU,aAAe,GAAKA,EAAU,QAAS,EAAG,IAGtDA,EAAU,QAAQ,EAAE,EAGtBA,EAAU,SAASA,EAAU,SAAQ,EAAKe,EAAOC,CAAU,EAI3D,IAAIC,EAAqBlB,GAAWC,EAAWC,CAAU,IAAM,CAACc,EAI9DF,IAAiB7D,GAAOsC,CAAQ,CAAC,GACjC0B,IAAe,GACfjB,GAAWT,EAAUW,CAAU,IAAM,IAErCgB,EAAqB,IAGvB73C,EAAS23C,GAAQC,EAAa,OAAOC,CAAkB,EAC3D,CAGE,OAAO73C,IAAW,EAAI,EAAIA,CAC5B,CCjCO,SAAS83C,IAAoB5B,EAAUC,EAAWnvC,EAAS,CAChE,MAAMs/B,EAAO+Q,IAAyBnB,EAAUC,CAAS,EAAI,IAC7D,OAAOiB,IAAkBpwC,GAAA,YAAAA,EAAS,cAAc,EAAEs/B,CAAI,CACxD,CCZO,SAASyR,IAAY/D,EAAM,CAChC,MAAMgE,EAAYpE,GAAOI,CAAI,EACvBG,EAAQJ,GAAcC,EAAM,CAAC,EACnC,OAAAG,EAAM,YAAY6D,EAAU,YAAW,EAAI,EAAG,CAAC,EAC/C7D,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CC7BA,MAAM8D,IAAuB,CAC3B,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EAED,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EAED,YAAa,gBAEb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EAED,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,MAAO,CACL,IAAK,QACL,MAAO,gBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,aAAc,CACZ,IAAK,gBACL,MAAO,wBACR,EAED,QAAS,CACP,IAAK,UACL,MAAO,kBACR,EAED,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EAED,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EAED,WAAY,CACV,IAAK,cACL,MAAO,sBACR,EAED,aAAc,CACZ,IAAK,gBACL,MAAO,wBACR,CACH,EAEaC,IAAiB,CAACzS,EAAO0S,EAAOnxC,IAAY,CACvD,IAAIhH,EAEJ,MAAMo4C,EAAaH,IAAqBxS,CAAK,EAS7C,OARI,OAAO2S,GAAe,SACxBp4C,EAASo4C,EACAD,IAAU,EACnBn4C,EAASo4C,EAAW,IAEpBp4C,EAASo4C,EAAW,MAAM,QAAQ,YAAaD,EAAM,UAAU,EAG7DnxC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQhH,EAERA,EAAS,OAIbA,CACT,ECpGO,SAASq4C,GAAkBl5C,EAAM,CACtC,MAAO,CAAC6H,EAAU,KAAO,CAEvB,MAAMsxC,EAAQtxC,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAI7H,EAAK,aAE3D,OADeA,EAAK,QAAQm5C,CAAK,GAAKn5C,EAAK,QAAQA,EAAK,YAAY,CAErE,CACH,CCLA,MAAMo5C,IAAc,CAClB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAEMC,IAAc,CAClB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAEMC,IAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,IAAa,CACxB,KAAML,GAAkB,CACtB,QAASE,IACT,aAAc,MAClB,CAAG,EAED,KAAMF,GAAkB,CACtB,QAASG,IACT,aAAc,MAClB,CAAG,EAED,SAAUH,GAAkB,CAC1B,QAASI,IACT,aAAc,MAClB,CAAG,CACH,ECtCME,IAAuB,CAC3B,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAEaC,IAAiB,CAACnT,EAAO0O,EAAO0E,EAAWC,IACtDH,IAAqBlT,CAAK,EC+BrB,SAASsT,GAAgB55C,EAAM,CACpC,MAAO,CAAC/I,EAAO4Q,IAAY,CACzB,MAAMwY,EAAUxY,GAAA,MAAAA,EAAS,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAE7D,IAAIgyC,EACJ,GAAIx5B,IAAY,cAAgBrgB,EAAK,iBAAkB,CACrD,MAAM85C,EAAe95C,EAAK,wBAA0BA,EAAK,aACnDm5C,EAAQtxC,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIiyC,EAEvDD,EACE75C,EAAK,iBAAiBm5C,CAAK,GAAKn5C,EAAK,iBAAiB85C,CAAY,CAC1E,KAAW,CACL,MAAMA,EAAe95C,EAAK,aACpBm5C,EAAQtxC,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAI7H,EAAK,aAE5D65C,EAAc75C,EAAK,OAAOm5C,CAAK,GAAKn5C,EAAK,OAAO85C,CAAY,CAClE,CACI,MAAM14C,EAAQpB,EAAK,iBAAmBA,EAAK,iBAAiB/I,CAAK,EAAIA,EAGrE,OAAO4iD,EAAYz4C,CAAK,CACzB,CACH,CC7DA,MAAM24C,IAAY,CAChB,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAEMC,IAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMMC,IAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EAED,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACD,CACH,EAEMC,IAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACD,CACH,EAEMC,IAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,CACH,EAEMC,IAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,CACH,EAEMC,IAAgB,CAACC,EAAaX,IAAa,CAC/C,MAAM9c,EAAS,OAAOyd,CAAW,EAS3BC,EAAS1d,EAAS,IACxB,GAAI0d,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAE,CACjB,IAAK,GACH,OAAO1d,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,IACxB,CAEE,OAAOA,EAAS,IAClB,EAEa2d,IAAW,CACxB,cAAEH,IAEA,IAAKT,GAAgB,CACnB,OAAQG,IACR,aAAc,MAClB,CAAG,EAED,QAASH,GAAgB,CACvB,OAAQI,IACR,aAAc,OACd,iBAAmBS,GAAYA,EAAU,CAC7C,CAAG,EAED,MAAOb,GAAgB,CACrB,OAAQK,IACR,aAAc,MAClB,CAAG,EAED,IAAKL,GAAgB,CACnB,OAAQM,IACR,aAAc,MAClB,CAAG,EAED,UAAWN,GAAgB,CACzB,OAAQO,IACR,aAAc,OACd,iBAAkBC,IAClB,uBAAwB,MAC5B,CAAG,CACH,EC1LO,SAASM,GAAa16C,EAAM,CACjC,MAAO,CAAC26C,EAAQ9yC,EAAU,KAAO,CAC/B,MAAMsxC,EAAQtxC,EAAQ,MAEhB+yC,EACHzB,GAASn5C,EAAK,cAAcm5C,CAAK,GAClCn5C,EAAK,cAAcA,EAAK,iBAAiB,EACrC66C,EAAcF,EAAO,MAAMC,CAAY,EAE7C,GAAI,CAACC,EACH,OAAO,KAET,MAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EACH5B,GAASn5C,EAAK,cAAcm5C,CAAK,GAClCn5C,EAAK,cAAcA,EAAK,iBAAiB,EAErCxK,EAAM,MAAM,QAAQulD,CAAa,EACnCC,IAAUD,EAAgB5U,GAAYA,EAAQ,KAAK2U,CAAa,CAAC,EAEjEG,IAAQF,EAAgB5U,GAAYA,EAAQ,KAAK2U,CAAa,CAAC,EAEnE,IAAI7jD,EAEJA,EAAQ+I,EAAK,cAAgBA,EAAK,cAAcxK,CAAG,EAAIA,EACvDyB,EAAQ4Q,EAAQ,cAEZA,EAAQ,cAAc5Q,CAAK,EAC3BA,EAEJ,MAAMikD,EAAOP,EAAO,MAAMG,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA7jD,EAAO,KAAAikD,CAAM,CACvB,CACH,CAEA,SAASD,IAAQ57C,EAAQ87C,EAAW,CAClC,UAAW3lD,KAAO6J,EAChB,GACE,OAAO,UAAU,eAAe,KAAKA,EAAQ7J,CAAG,GAChD2lD,EAAU97C,EAAO7J,CAAG,CAAC,EAErB,OAAOA,CAIb,CAEA,SAASwlD,IAAUx7C,EAAO27C,EAAW,CACnC,QAAS3lD,EAAM,EAAGA,EAAMgK,EAAM,OAAQhK,IACpC,GAAI2lD,EAAU37C,EAAMhK,CAAG,CAAC,EACtB,OAAOA,CAIb,CCxDO,SAAS4lD,IAAoBp7C,EAAM,CACxC,MAAO,CAAC26C,EAAQ9yC,EAAU,KAAO,CAC/B,MAAMgzC,EAAcF,EAAO,MAAM36C,EAAK,YAAY,EAClD,GAAI,CAAC66C,EAAa,OAAO,KACzB,MAAMC,EAAgBD,EAAY,CAAC,EAE7BQ,EAAcV,EAAO,MAAM36C,EAAK,YAAY,EAClD,GAAI,CAACq7C,EAAa,OAAO,KACzB,IAAIpkD,EAAQ+I,EAAK,cACbA,EAAK,cAAcq7C,EAAY,CAAC,CAAC,EACjCA,EAAY,CAAC,EAGjBpkD,EAAQ4Q,EAAQ,cAAgBA,EAAQ,cAAc5Q,CAAK,EAAIA,EAE/D,MAAMikD,EAAOP,EAAO,MAAMG,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA7jD,EAAO,KAAAikD,CAAM,CACvB,CACH,CChBA,MAAMI,IAA4B,wBAC5BC,IAA4B,OAE5BC,IAAmB,CACvB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACMC,IAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,IAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACMC,IAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,IAAqB,CACzB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACMC,IAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACD,EAED,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACD,CACH,EAEMC,IAAmB,CACvB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACMC,IAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAEMC,IAAyB,CAC7B,OAAQ,6DACR,IAAK,gFACP,EACMC,IAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACR,CACH,EAEanV,IAAQ,CACnB,cAAesU,IAAoB,CACjC,aAAcE,IACd,aAAcC,IACd,cAAgBtkD,GAAU,SAASA,EAAO,EAAE,CAChD,CAAG,EAED,IAAKyjD,GAAa,CAChB,cAAec,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,QAASf,GAAa,CACpB,cAAegB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,MACnB,cAAgBv6C,GAAUA,EAAQ,CACtC,CAAG,EAED,MAAOs5C,GAAa,CAClB,cAAekB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,IAAKnB,GAAa,CAChB,cAAeoB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EAED,UAAWrB,GAAa,CACtB,cAAesB,IACf,kBAAmB,MACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,CACH,ECrHaC,GAAO,CAClB,KAAM,QACN,eAAgBnD,IAChB,WAAYQ,IACZ,eAAgBE,IAChB,SAAUe,IACV,MAAO1T,IACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACxB,CACH,ECFO,SAASqV,IAAatH,EAAM,CACjC,MAAMG,EAAQP,GAAOI,CAAI,EAGzB,OAFaiC,IAAyB9B,EAAO4D,IAAY5D,CAAK,CAAC,EACtC,CAE3B,CCFO,SAASoH,GAAWvH,EAAM,CAC/B,MAAMG,EAAQP,GAAOI,CAAI,EACnB1N,EAAO,CAACiP,GAAepB,CAAK,EAAI,CAACqC,IAAmBrC,CAAK,EAK/D,OAAO,KAAK,MAAM7N,EAAOkO,EAAkB,EAAI,CACjD,CCWO,SAASgH,GAAYxH,EAAMhtC,EAAS,aACzC,MAAMmtC,EAAQP,GAAOI,CAAI,EACnByB,EAAOtB,EAAM,YAAa,EAE1BY,EAAiBC,GAAmB,EACpCyG,GACJz0C,GAAA,YAAAA,EAAS,0BACTmuC,GAAAt7C,EAAAmN,GAAA,YAAAA,EAAS,SAAT,YAAAnN,EAAiB,UAAjB,YAAAs7C,EAA0B,wBAC1BJ,EAAe,yBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,wBAChC,EAEIsG,EAAsB3H,GAAcC,EAAM,CAAC,EACjD0H,EAAoB,YAAYjG,EAAO,EAAG,EAAGgG,CAAqB,EAClEC,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAM/F,EAAkBV,GAAYyG,EAAqB10C,CAAO,EAE1D20C,EAAsB5H,GAAcC,EAAM,CAAC,EACjD2H,EAAoB,YAAYlG,EAAM,EAAGgG,CAAqB,EAC9DE,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAM9F,EAAkBZ,GAAY0G,EAAqB30C,CAAO,EAEhE,OAAImtC,EAAM,QAAO,GAAMwB,EAAgB,QAAO,EACrCF,EAAO,EACLtB,EAAM,QAAS,GAAI0B,EAAgB,QAAO,EAC5CJ,EAEAA,EAAO,CAElB,CC7BO,SAASmG,IAAgB5H,EAAMhtC,EAAS,aAC7C,MAAM+tC,EAAiBC,GAAmB,EACpCyG,GACJz0C,GAAA,YAAAA,EAAS,0BACTmuC,GAAAt7C,EAAAmN,GAAA,YAAAA,EAAS,SAAT,YAAAnN,EAAiB,UAAjB,YAAAs7C,EAA0B,wBAC1BJ,EAAe,yBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,wBAChC,EAEIK,EAAO+F,GAAYxH,EAAMhtC,CAAO,EAChC60C,EAAY9H,GAAcC,EAAM,CAAC,EACvC,OAAA6H,EAAU,YAAYpG,EAAM,EAAGgG,CAAqB,EACpDI,EAAU,SAAS,EAAG,EAAG,EAAG,CAAC,EACf5G,GAAY4G,EAAW70C,CAAO,CAE9C,CCdO,SAAS80C,GAAQ9H,EAAMhtC,EAAS,CACrC,MAAMmtC,EAAQP,GAAOI,CAAI,EACnB1N,EAAO,CAAC2O,GAAYd,EAAOntC,CAAO,EAAI,CAAC40C,IAAgBzH,EAAOntC,CAAO,EAK3E,OAAO,KAAK,MAAMs/B,EAAOkO,EAAkB,EAAI,CACjD,CCtDO,SAASuH,GAAgB/f,EAAQggB,EAAc,CACpD,MAAMrE,EAAO3b,EAAS,EAAI,IAAM,GAC1BigB,EAAS,KAAK,IAAIjgB,CAAM,EAAE,WAAW,SAASggB,EAAc,GAAG,EACrE,OAAOrE,EAAOsE,CAChB,CCWO,MAAMC,GAAkB,CAE7B,EAAElI,EAAMvO,EAAO,CAUb,MAAM0W,EAAanI,EAAK,YAAa,EAE/ByB,EAAO0G,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOJ,GAAgBtW,IAAU,KAAOgQ,EAAO,IAAMA,EAAMhQ,EAAM,MAAM,CACxE,EAGD,EAAEuO,EAAMvO,EAAO,CACb,MAAM+R,EAAQxD,EAAK,SAAU,EAC7B,OAAOvO,IAAU,IAAM,OAAO+R,EAAQ,CAAC,EAAIuE,GAAgBvE,EAAQ,EAAG,CAAC,CACxE,EAGD,EAAExD,EAAMvO,EAAO,CACb,OAAOsW,GAAgB/H,EAAK,QAAO,EAAIvO,EAAM,MAAM,CACpD,EAGD,EAAEuO,EAAMvO,EAAO,CACb,MAAM2W,EAAqBpI,EAAK,SAAQ,EAAK,IAAM,EAAI,KAAO,KAE9D,OAAQvO,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO2W,EAAmB,YAAa,EACzC,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAC7B,IAAK,OACL,QACE,OAAOA,IAAuB,KAAO,OAAS,MACtD,CACG,EAGD,EAAEpI,EAAMvO,EAAO,CACb,OAAOsW,GAAgB/H,EAAK,SAAQ,EAAK,IAAM,GAAIvO,EAAM,MAAM,CAChE,EAGD,EAAEuO,EAAMvO,EAAO,CACb,OAAOsW,GAAgB/H,EAAK,SAAQ,EAAIvO,EAAM,MAAM,CACrD,EAGD,EAAEuO,EAAMvO,EAAO,CACb,OAAOsW,GAAgB/H,EAAK,WAAU,EAAIvO,EAAM,MAAM,CACvD,EAGD,EAAEuO,EAAMvO,EAAO,CACb,OAAOsW,GAAgB/H,EAAK,WAAU,EAAIvO,EAAM,MAAM,CACvD,EAGD,EAAEuO,EAAMvO,EAAO,CACb,MAAM4W,EAAiB5W,EAAM,OACvB6W,EAAetI,EAAK,gBAAiB,EACrCuI,EAAoB,KAAK,MAC7BD,EAAe,KAAK,IAAI,GAAID,EAAiB,CAAC,CAC/C,EACD,OAAON,GAAgBQ,EAAmB9W,EAAM,MAAM,CACvD,CACH,ECnFM+W,GAAgB,CACpB,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EAgDaC,GAAa,CAExB,EAAG,SAAUzI,EAAMvO,EAAOkU,EAAU,CAClC,MAAM+C,EAAM1I,EAAK,YAAa,EAAG,EAAI,EAAI,EACzC,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,IAAI+C,EAAK,CAAE,MAAO,aAAa,CAAE,EAEnD,IAAK,QACH,OAAO/C,EAAS,IAAI+C,EAAK,CAAE,MAAO,QAAQ,CAAE,EAE9C,IAAK,OACL,QACE,OAAO/C,EAAS,IAAI+C,EAAK,CAAE,MAAO,MAAM,CAAE,CAClD,CACG,EAGD,EAAG,SAAU1I,EAAMvO,EAAOkU,EAAU,CAElC,GAAIlU,IAAU,KAAM,CAClB,MAAM0W,EAAanI,EAAK,YAAa,EAE/ByB,EAAO0G,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOxC,EAAS,cAAclE,EAAM,CAAE,KAAM,MAAM,CAAE,CAC1D,CAEI,OAAOyG,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC3C,MAAM21C,EAAiBnB,GAAYxH,EAAMhtC,CAAO,EAE1C41C,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAIlX,IAAU,KAAM,CAClB,MAAMoX,EAAeD,EAAW,IAChC,OAAOb,GAAgBc,EAAc,CAAC,CAC5C,CAGI,OAAIpX,IAAU,KACLkU,EAAS,cAAciD,EAAU,CAAE,KAAM,MAAM,CAAE,EAInDb,GAAgBa,EAAUnX,EAAM,MAAM,CAC9C,EAGD,EAAG,SAAUuO,EAAMvO,EAAO,CACxB,MAAMqX,EAActH,GAAexB,CAAI,EAGvC,OAAO+H,GAAgBe,EAAarX,EAAM,MAAM,CACjD,EAWD,EAAG,SAAUuO,EAAMvO,EAAO,CACxB,MAAMgQ,EAAOzB,EAAK,YAAa,EAC/B,OAAO+H,GAAgBtG,EAAMhQ,EAAM,MAAM,CAC1C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAM5F,EAAK,SAAU,EAAG,GAAK,CAAC,EACnD,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAOmU,CAAO,EAEvB,IAAK,KACH,OAAOmC,GAAgBnC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAU5F,EAAMvO,EAAOkU,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAM5F,EAAK,SAAU,EAAG,GAAK,CAAC,EACnD,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAOmU,CAAO,EAEvB,IAAK,KACH,OAAOmC,GAAgBnC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAU5F,EAAMvO,EAAOkU,EAAU,CAClC,MAAMnC,EAAQxD,EAAK,SAAU,EAC7B,OAAQvO,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOyW,GAAgB,EAAElI,EAAMvO,CAAK,EAEtC,IAAK,KACH,OAAOkU,EAAS,cAAcnC,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmC,EAAS,MAAMnC,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACG,EAGD,EAAG,SAAUxD,EAAMvO,EAAOkU,EAAU,CAClC,MAAMnC,EAAQxD,EAAK,SAAU,EAC7B,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAO+R,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAOuE,GAAgBvE,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOmC,EAAS,cAAcnC,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmC,EAAS,MAAMnC,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACG,EAGD,EAAG,SAAUxD,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC3C,MAAM+1C,EAAOjB,GAAQ9H,EAAMhtC,CAAO,EAElC,OAAIy+B,IAAU,KACLkU,EAAS,cAAcoD,EAAM,CAAE,KAAM,MAAM,CAAE,EAG/ChB,GAAgBgB,EAAMtX,EAAM,MAAM,CAC1C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,MAAMqD,EAAUzB,GAAWvH,CAAI,EAE/B,OAAIvO,IAAU,KACLkU,EAAS,cAAcqD,EAAS,CAAE,KAAM,MAAM,CAAE,EAGlDjB,GAAgBiB,EAASvX,EAAM,MAAM,CAC7C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,QAAO,EAAI,CAAE,KAAM,OAAQ,EAGzDkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,MAAMsD,EAAY3B,IAAatH,CAAI,EAEnC,OAAIvO,IAAU,KACLkU,EAAS,cAAcsD,EAAW,CAAE,KAAM,WAAW,CAAE,EAGzDlB,GAAgBkB,EAAWxX,EAAM,MAAM,CAC/C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,MAAMuD,EAAYlJ,EAAK,OAAQ,EAC/B,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUlJ,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC3C,MAAMk2C,EAAYlJ,EAAK,OAAQ,EACzBmJ,GAAkBD,EAAYl2C,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQy+B,EAAK,CAEX,IAAK,IACH,OAAO,OAAO0X,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAOxD,EAAS,cAAcwD,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAOxD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUlJ,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC3C,MAAMk2C,EAAYlJ,EAAK,OAAQ,EACzBmJ,GAAkBD,EAAYl2C,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQy+B,EAAK,CAEX,IAAK,IACH,OAAO,OAAO0X,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgB1X,EAAM,MAAM,EAErD,IAAK,KACH,OAAOkU,EAAS,cAAcwD,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAOxD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUlJ,EAAMvO,EAAOkU,EAAU,CAClC,MAAMuD,EAAYlJ,EAAK,OAAQ,EACzBoJ,EAAeF,IAAc,EAAI,EAAIA,EAC3C,OAAQzX,EAAK,CAEX,IAAK,IACH,OAAO,OAAO2X,CAAY,EAE5B,IAAK,KACH,OAAOrB,GAAgBqB,EAAc3X,EAAM,MAAM,EAEnD,IAAK,KACH,OAAOkU,EAAS,cAAcyD,EAAc,CAAE,KAAM,KAAK,CAAE,EAE7D,IAAK,MACH,OAAOzD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUlJ,EAAMvO,EAAOkU,EAAU,CAElC,MAAMyC,EADQpI,EAAK,SAAU,EACM,IAAM,EAAI,KAAO,KAEpD,OAAQvO,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOzC,EACJ,UAAUyC,EAAoB,CAC7B,MAAO,cACP,QAAS,YACV,GACA,YAAa,EAClB,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUpI,EAAMvO,EAAOkU,EAAU,CAClC,MAAM0D,EAAQrJ,EAAK,SAAU,EAC7B,IAAIoI,EASJ,OARIiB,IAAU,GACZjB,EAAqBI,GAAc,KAC1Ba,IAAU,EACnBjB,EAAqBI,GAAc,SAEnCJ,EAAqBiB,EAAQ,IAAM,EAAI,KAAO,KAGxC5X,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOzC,EACJ,UAAUyC,EAAoB,CAC7B,MAAO,cACP,QAAS,YACV,GACA,YAAa,EAClB,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUpI,EAAMvO,EAAOkU,EAAU,CAClC,MAAM0D,EAAQrJ,EAAK,SAAU,EAC7B,IAAIoI,EAWJ,OAVIiB,GAAS,GACXjB,EAAqBI,GAAc,QAC1Ba,GAAS,GAClBjB,EAAqBI,GAAc,UAC1Ba,GAAS,EAClBjB,EAAqBI,GAAc,QAEnCJ,EAAqBI,GAAc,MAG7B/W,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAGD,EAAG,SAAUpI,EAAMvO,EAAOkU,EAAU,CAClC,GAAIlU,IAAU,KAAM,CAClB,IAAI4X,EAAQrJ,EAAK,SAAQ,EAAK,GAC9B,OAAIqJ,IAAU,IAAGA,EAAQ,IAClB1D,EAAS,cAAc0D,EAAO,CAAE,KAAM,MAAM,CAAE,CAC3D,CAEI,OAAOnB,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,SAAQ,EAAI,CAAE,KAAM,OAAQ,EAG1DkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,MAAM0D,EAAQrJ,EAAK,SAAQ,EAAK,GAEhC,OAAIvO,IAAU,KACLkU,EAAS,cAAc0D,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhDtB,GAAgBsB,EAAO5X,EAAM,MAAM,CAC3C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,IAAI0D,EAAQrJ,EAAK,SAAU,EAG3B,OAFIqJ,IAAU,IAAGA,EAAQ,IAErB5X,IAAU,KACLkU,EAAS,cAAc0D,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhDtB,GAAgBsB,EAAO5X,EAAM,MAAM,CAC3C,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAOkU,EAAU,CAClC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAO,CACxB,OAAOyW,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAGD,EAAG,SAAUuO,EAAMvO,EAAO6X,EAAW,CACnC,MAAMC,EAAiBvJ,EAAK,kBAAmB,EAE/C,GAAIuJ,IAAmB,EACrB,MAAO,IAGT,OAAQ9X,EAAK,CAEX,IAAK,IACH,OAAO+X,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACG,EAGD,EAAG,SAAUvJ,EAAMvO,EAAO6X,EAAW,CACnC,MAAMC,EAAiBvJ,EAAK,kBAAmB,EAE/C,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO+X,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACG,EAGD,EAAG,SAAUvJ,EAAMvO,EAAO6X,EAAW,CACnC,MAAMC,EAAiBvJ,EAAK,kBAAmB,EAE/C,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACG,EAGD,EAAG,SAAUvJ,EAAMvO,EAAO6X,EAAW,CACnC,MAAMC,EAAiBvJ,EAAK,kBAAmB,EAE/C,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACG,EAGD,EAAG,SAAUvJ,EAAMvO,EAAO6X,EAAW,CACnC,MAAMK,EAAY,KAAK,MAAM3J,EAAK,QAAS,EAAG,GAAI,EAClD,OAAO+H,GAAgB4B,EAAWlY,EAAM,MAAM,CAC/C,EAGD,EAAG,SAAUuO,EAAMvO,EAAO6X,EAAW,CACnC,MAAMK,EAAY3J,EAAK,QAAS,EAChC,OAAO+H,GAAgB4B,EAAWlY,EAAM,MAAM,CAC/C,CACH,EAEA,SAASiY,GAAoBpc,EAAQsc,EAAY,GAAI,CACnD,MAAMjG,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQ,KAAK,MAAMQ,EAAY,EAAE,EACjCC,EAAUD,EAAY,GAC5B,OAAIC,IAAY,EACPnG,EAAO,OAAO0F,CAAK,EAErB1F,EAAO,OAAO0F,CAAK,EAAIO,EAAY7B,GAAgB+B,EAAS,CAAC,CACtE,CAEA,SAASN,GAAkClc,EAAQsc,EAAW,CAC5D,OAAItc,EAAS,KAAO,GACLA,EAAS,EAAI,IAAM,KAClBya,GAAgB,KAAK,IAAIza,CAAM,EAAI,GAAI,CAAC,EAEjDmc,GAAenc,EAAQsc,CAAS,CACzC,CAEA,SAASH,GAAenc,EAAQsc,EAAY,GAAI,CAC9C,MAAMjG,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQtB,GAAgB,KAAK,MAAM8B,EAAY,EAAE,EAAG,CAAC,EACrDC,EAAU/B,GAAgB8B,EAAY,GAAI,CAAC,EACjD,OAAOlG,EAAO0F,EAAQO,EAAYE,CACpC,CCvwBA,MAAMC,GAAoB,CAACzY,EAASoT,IAAe,CACjD,OAAQpT,EAAO,CACb,IAAK,IACH,OAAOoT,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEMsF,GAAoB,CAAC1Y,EAASoT,IAAe,CACjD,OAAQpT,EAAO,CACb,IAAK,IACH,OAAOoT,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEMuF,IAAwB,CAAC3Y,EAASoT,IAAe,CACrD,MAAMsB,EAAc1U,EAAQ,MAAM,WAAW,GAAK,CAAE,EAC9C4Y,EAAclE,EAAY,CAAC,EAC3BmE,EAAcnE,EAAY,CAAC,EAEjC,GAAI,CAACmE,EACH,OAAOJ,GAAkBzY,EAASoT,CAAU,EAG9C,IAAI0F,EAEJ,OAAQF,EAAW,CACjB,IAAK,IACHE,EAAiB1F,EAAW,SAAS,CAAE,MAAO,OAAO,CAAE,EACvD,MACF,IAAK,KACH0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,QAAQ,CAAE,EACxD,MACF,IAAK,MACH0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,MACF,IAAK,OACL,QACE0F,EAAiB1F,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,KACN,CAEE,OAAO0F,EACJ,QAAQ,WAAYL,GAAkBG,EAAaxF,CAAU,CAAC,EAC9D,QAAQ,WAAYsF,GAAkBG,EAAazF,CAAU,CAAC,CACnE,EAEa2F,GAAiB,CAC5B,EAAGL,GACH,EAAGC,GACL,EC/DMK,IAAmB,OACnBC,IAAkB,OAElBC,IAAc,CAAC,IAAK,KAAM,KAAM,MAAM,EAErC,SAASC,GAA0BhZ,EAAO,CAC/C,OAAO6Y,IAAiB,KAAK7Y,CAAK,CACpC,CAEO,SAASiZ,GAAyBjZ,EAAO,CAC9C,OAAO8Y,IAAgB,KAAK9Y,CAAK,CACnC,CAEO,SAASkZ,GAA0BlZ,EAAOmZ,EAAQC,EAAO,CAC9D,MAAMC,EAAW/X,IAAQtB,EAAOmZ,EAAQC,CAAK,EAE7C,GADA,QAAQ,KAAKC,CAAQ,EACjBN,IAAY,SAAS/Y,CAAK,EAAG,MAAM,IAAI,WAAWqZ,CAAQ,CAChE,CAEA,SAAS/X,IAAQtB,EAAOmZ,EAAQC,EAAO,CACrC,MAAME,EAAUtZ,EAAM,CAAC,IAAM,IAAM,QAAU,oBAC7C,MAAO,SAASA,EAAM,YAAa,oBAAmBA,CAAK,YAAYmZ,CAAM,sBAAsBG,CAAO,mBAAmBF,CAAK,iFACpI,CCKA,MAAMG,IACJ,wDAIIC,IAA6B,oCAE7BC,IAAsB,eACtBC,IAAoB,MACpBC,IAAgC,WAsS/B,SAASR,IAAO5K,EAAMqL,EAAWr4C,EAAS,qBAC/C,MAAM+tC,EAAiBC,GAAmB,EACpCsK,GAASt4C,GAAA,YAAAA,EAAS,SAAU+tC,EAAe,QAAUwK,GAErD9D,GACJz0C,GAAA,YAAAA,EAAS,0BACTmuC,GAAAt7C,EAAAmN,GAAA,YAAAA,EAAS,SAAT,YAAAnN,EAAiB,UAAjB,YAAAs7C,EAA0B,wBAC1BJ,EAAe,yBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,wBAChC,EAEIF,GACJluC,GAAA,YAAAA,EAAS,iBACTw4C,GAAAC,EAAAz4C,GAAA,YAAAA,EAAS,SAAT,YAAAy4C,EAAiB,UAAjB,YAAAD,EAA0B,eAC1BzK,EAAe,gBACf2K,GAAAC,EAAA5K,EAAe,SAAf,YAAA4K,EAAuB,UAAvB,YAAAD,EAAgC,eAChC,EAEIE,EAAehM,GAAOI,CAAI,EAEhC,GAAI,CAACgD,GAAQ4I,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAIC,EAAQR,EACT,MAAMJ,GAA0B,EAChC,IAAKa,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,MAAMC,EAAgB3B,GAAe0B,CAAc,EACnD,OAAOC,EAAcF,EAAWR,EAAO,UAAU,CACzD,CACM,OAAOQ,CACR,GACA,KAAK,EAAE,EACP,MAAMd,GAAsB,EAC5B,IAAKc,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,CAAE,QAAS,GAAO,MAAO,GAAK,EAGvC,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,MAAO,CAAE,QAAS,GAAO,MAAOE,IAAmBH,CAAS,CAAG,EAGjE,GAAIrD,GAAWsD,CAAc,EAC3B,MAAO,CAAE,QAAS,GAAM,MAAOD,CAAW,EAG5C,GAAIC,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WACR,iEACEW,EACA,GACH,EAGH,MAAO,CAAE,QAAS,GAAO,MAAOD,CAAW,CACjD,CAAK,EAGCR,EAAO,SAAS,eAClBO,EAAQP,EAAO,SAAS,aAAaM,EAAcC,CAAK,GAG1D,MAAMK,EAAmB,CACvB,sBAAAzE,EACA,aAAAvG,EACA,OAAAoK,CACD,EAED,OAAOO,EACJ,IAAKM,GAAS,CACb,GAAI,CAACA,EAAK,QAAS,OAAOA,EAAK,MAE/B,MAAM1a,EAAQ0a,EAAK,OAGhB,EAACn5C,GAAA,MAAAA,EAAS,8BACT03C,GAAyBjZ,CAAK,GAC/B,EAACz+B,GAAA,MAAAA,EAAS,+BACTy3C,GAA0BhZ,CAAK,IAEjCkZ,GAA0BlZ,EAAO4Z,EAAW,OAAOrL,CAAI,CAAC,EAG1D,MAAMoM,EAAY3D,GAAWhX,EAAM,CAAC,CAAC,EACrC,OAAO2a,EAAUR,EAAcna,EAAO6Z,EAAO,SAAUY,CAAgB,CACxE,GACA,KAAK,EAAE,CACZ,CAEA,SAASD,IAAmBpB,EAAO,CACjC,MAAMxV,EAAUwV,EAAM,MAAMK,GAAmB,EAE/C,OAAK7V,EAIEA,EAAQ,CAAC,EAAE,QAAQ8V,IAAmB,GAAG,EAHvCN,CAIX,CClVO,SAAS3G,IAAelE,EAAMqM,EAAUr5C,EAAS,CACtD,MAAM+tC,EAAiBC,GAAmB,EACpCsK,GAASt4C,GAAA,YAAAA,EAAS,SAAU+tC,EAAe,QAAUwK,GACrDe,EAAyB,KAEzBC,EAAa5J,GAAW3C,EAAMqM,CAAQ,EAE5C,GAAI,MAAME,CAAU,EAClB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,MAAMC,EAAkB,OAAO,OAAO,GAAIx5C,EAAS,CACjD,UAAWA,GAAA,YAAAA,EAAS,UACpB,WAAYu5C,CAChB,CAAG,EAED,IAAIrK,EACAC,EACAoK,EAAa,GACfrK,EAAWtC,GAAOyM,CAAQ,EAC1BlK,EAAYvC,GAAOI,CAAI,IAEvBkC,EAAWtC,GAAOI,CAAI,EACtBmC,EAAYvC,GAAOyM,CAAQ,GAG7B,MAAMI,EAAU3I,IAAoB3B,EAAWD,CAAQ,EACjDwK,GACH3K,GAAgCI,CAAS,EACxCJ,GAAgCG,CAAQ,GAC1C,IACI4H,EAAU,KAAK,OAAO2C,EAAUC,GAAmB,EAAE,EAC3D,IAAIC,EAGJ,GAAI7C,EAAU,EACZ,OAAI92C,GAAA,MAAAA,EAAS,eACPy5C,EAAU,EACLnB,EAAO,eAAe,mBAAoB,EAAGkB,CAAe,EAC1DC,EAAU,GACZnB,EAAO,eAAe,mBAAoB,GAAIkB,CAAe,EAC3DC,EAAU,GACZnB,EAAO,eAAe,mBAAoB,GAAIkB,CAAe,EAC3DC,EAAU,GACZnB,EAAO,eAAe,cAAe,EAAGkB,CAAe,EACrDC,EAAU,GACZnB,EAAO,eAAe,mBAAoB,EAAGkB,CAAe,EAE5DlB,EAAO,eAAe,WAAY,EAAGkB,CAAe,EAGzD1C,IAAY,EACPwB,EAAO,eAAe,mBAAoB,EAAGkB,CAAe,EAE5DlB,EAAO,eAAe,WAAYxB,EAAS0C,CAAe,EAKhE,GAAI1C,EAAU,GACnB,OAAOwB,EAAO,eAAe,WAAYxB,EAAS0C,CAAe,EAG5D,GAAI1C,EAAU,GACnB,OAAOwB,EAAO,eAAe,cAAe,EAAGkB,CAAe,EAGzD,GAAI1C,EAAUhJ,GAAc,CACjC,MAAMuI,EAAQ,KAAK,MAAMS,EAAU,EAAE,EACrC,OAAOwB,EAAO,eAAe,cAAejC,EAAOmD,CAAe,CAGtE,KAAS,IAAI1C,EAAUwC,EACnB,OAAOhB,EAAO,eAAe,QAAS,EAAGkB,CAAe,EAGnD,GAAI1C,EAAUjJ,GAAgB,CACnC,MAAM+L,EAAO,KAAK,MAAM9C,EAAUhJ,EAAY,EAC9C,OAAOwK,EAAO,eAAe,QAASsB,EAAMJ,CAAe,CAG/D,SAAa1C,EAAUjJ,GAAiB,EACpC,OAAA8L,EAAS,KAAK,MAAM7C,EAAUjJ,EAAc,EACrCyK,EAAO,eAAe,eAAgBqB,EAAQH,CAAe,EAMtE,GAHAG,EAASjJ,IAAmBvB,EAAWD,CAAQ,EAG3CyK,EAAS,GAAI,CACf,MAAME,EAAe,KAAK,MAAM/C,EAAUjJ,EAAc,EACxD,OAAOyK,EAAO,eAAe,UAAWuB,EAAcL,CAAe,CAGzE,KAAS,CACL,MAAMM,EAAyBH,EAAS,GAClCI,EAAQ,KAAK,MAAMJ,EAAS,EAAE,EAGpC,OAAIG,EAAyB,EACpBxB,EAAO,eAAe,cAAeyB,EAAOP,CAAe,EAGzDM,EAAyB,EAC3BxB,EAAO,eAAe,aAAcyB,EAAOP,CAAe,EAI1DlB,EAAO,eAAe,eAAgByB,EAAQ,EAAGP,CAAe,CAE7E,CACA,CCnHO,SAASQ,IAAoBhN,EAAMhtC,EAAS,CACjD,OAAOkxC,IAAelE,EAAM8C,IAAa9C,CAAI,EAAGhtC,CAAO,CACzD,CClEO,SAASguC,IAAoB,CAClC,OAAO,OAAO,OAAO,CAAE,EAAEiM,GAAyB,CAAE,CACtD,CCJO,SAASC,IAAUlN,EAAM,CAE9B,IAAIsB,EADU1B,GAAOI,CAAI,EACT,OAAQ,EAExB,OAAIsB,IAAQ,IACVA,EAAM,GAGDA,CACT,CCHO,SAAS6L,IAAUC,EAAUC,EAAa,CAC/C,MAAMrN,EACJqN,aAAuB,KACnBtN,GAAcsN,EAAa,CAAC,EAC5B,IAAIA,EAAY,CAAC,EACvB,OAAArN,EAAK,YACHoN,EAAS,YAAa,EACtBA,EAAS,SAAU,EACnBA,EAAS,QAAS,CACnB,EACDpN,EAAK,SACHoN,EAAS,SAAU,EACnBA,EAAS,WAAY,EACrBA,EAAS,WAAY,EACrBA,EAAS,gBAAiB,CAC3B,EACMpN,CACT,CC5CA,MAAMsN,IAAyB,GAExB,IAAAC,GAAA,KAAa,CAAb,cACLC,GAAA,mBAAc,GAEd,SAASC,EAAU3I,EAAU,CAC3B,MAAO,EACX,CACA,MAEO,cAA0B4I,EAAO,CACtC,YACEtrD,EAEAurD,EAEAC,EAEAC,EACAC,EACA,CACA,MAAO,EACP,KAAK,MAAQ1rD,EACb,KAAK,cAAgBurD,EACrB,KAAK,SAAWC,EAChB,KAAK,SAAWC,EACZC,IACF,KAAK,YAAcA,EAEzB,CAEE,SAAS9N,EAAMhtC,EAAS,CACtB,OAAO,KAAK,cAAcgtC,EAAM,KAAK,MAAOhtC,CAAO,CACvD,CAEE,IAAIgtC,EAAM+N,EAAO/6C,EAAS,CACxB,OAAO,KAAK,SAASgtC,EAAM+N,EAAO,KAAK,MAAO/6C,CAAO,CACzD,CACA,MAEO,cAAyC06C,EAAO,CAAhD,kCACLF,GAAA,gBAAWF,KACXE,GAAA,mBAAc,IACd,IAAIxN,EAAM+N,EAAO,CACf,OAAIA,EAAM,eAAuB/N,EAC1BD,GAAcC,EAAMmN,IAAUnN,EAAM,IAAI,CAAC,CACpD,CACA,EChDOgO,GAAA,KAAa,CAClB,IAAIC,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACrC,MAAMhH,EAAS,KAAK,MAAMiiD,EAAYxc,EAAOQ,EAAOj/B,CAAO,EAC3D,OAAKhH,EAIE,CACL,OAAQ,IAAIkiD,IACVliD,EAAO,MACP,KAAK,SACL,KAAK,IACL,KAAK,SACL,KAAK,WACN,EACD,KAAMA,EAAO,IACd,EAZQ,IAab,CAEE,SAASyhD,EAAUU,EAAQrJ,EAAU,CACnC,MAAO,EACX,CACA,MCtBO,cAAwBsJ,EAAO,CAA/B,kCACLZ,GAAA,gBAAW,KAkCXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,GAhCxC,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEQ,EAAM,IAAIgc,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9Chc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAU,GAI7C,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAQ,CAAE,EAElD,IAAK,OACL,QACE,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,MAAM,CAAE,GACvChc,EAAM,IAAIgc,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9Chc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAU,EAEnD,CACA,CAEE,IAAIjO,EAAM+N,EAAO3rD,EAAO,CACtB,OAAA2rD,EAAM,IAAM3rD,EACZ49C,EAAK,YAAY59C,EAAO,EAAG,CAAC,EAC5B49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAGA,ECtCO,MAAMqO,GAAkB,CAC7B,MAAO,iBACP,KAAM,qBACN,UAAW,kCACX,KAAM,qBACN,QAAS,qBACT,QAAS,qBACT,QAAS,iBACT,QAAS,iBACT,OAAQ,YACR,OAAQ,YAER,YAAa,MACb,UAAW,WACX,YAAa,WACb,WAAY,WAEZ,gBAAiB,SACjB,kBAAmB,QACnB,gBAAiB,aACjB,kBAAmB,aACnB,iBAAkB,YACpB,EAEaC,GAAmB,CAC9B,qBAAsB,2BACtB,MAAO,0BACP,qBAAsB,oCACtB,SAAU,2BACV,wBAAyB,qCAC3B,ECvBO,SAASC,GAASC,EAAeC,EAAO,CAC7C,OAAKD,GAIE,CACL,MAAOC,EAAMD,EAAc,KAAK,EAChC,KAAMA,EAAc,IACrB,CACH,CAEO,SAASE,GAAoBpd,EAAS2c,EAAY,CACvD,MAAMjI,EAAciI,EAAW,MAAM3c,CAAO,EAE5C,OAAK0U,EAIE,CACL,MAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAClC,KAAMiI,EAAW,MAAMjI,EAAY,CAAC,EAAE,MAAM,CAC7C,EANQ,IAOX,CAEO,SAAS2I,GAAqBrd,EAAS2c,EAAY,CACxD,MAAMjI,EAAciI,EAAW,MAAM3c,CAAO,EAE5C,GAAI,CAAC0U,EACH,OAAO,KAIT,GAAIA,EAAY,CAAC,IAAM,IACrB,MAAO,CACL,MAAO,EACP,KAAMiI,EAAW,MAAM,CAAC,CACzB,EAGH,MAAMtK,EAAOqC,EAAY,CAAC,IAAM,IAAM,EAAI,GACpCqD,EAAQrD,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACxD8D,EAAU9D,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAC1DyG,EAAUzG,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAEhE,MAAO,CACL,MACErC,GACC0F,EAAQ1I,IACPmJ,EAAUpJ,IACV+L,EAAU7L,KACd,KAAMqN,EAAW,MAAMjI,EAAY,CAAC,EAAE,MAAM,CAC7C,CACH,CAEO,SAAS4I,GAAqBX,EAAY,CAC/C,OAAOS,GAAoBL,GAAgB,gBAAiBJ,CAAU,CACxE,CAEO,SAASY,GAAahrD,EAAGoqD,EAAY,CAC1C,OAAQpqD,EAAC,CACP,IAAK,GACH,OAAO6qD,GAAoBL,GAAgB,YAAaJ,CAAU,EACpE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,UAAWJ,CAAU,EAClE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,YAAaJ,CAAU,EACpE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,WAAYJ,CAAU,EACnE,QACE,OAAOS,GAAoB,IAAI,OAAO,UAAY7qD,EAAI,GAAG,EAAGoqD,CAAU,CAC5E,CACA,CAEO,SAASa,GAAmBjrD,EAAGoqD,EAAY,CAChD,OAAQpqD,EAAC,CACP,IAAK,GACH,OAAO6qD,GAAoBL,GAAgB,kBAAmBJ,CAAU,EAC1E,IAAK,GACH,OAAOS,GAAoBL,GAAgB,gBAAiBJ,CAAU,EACxE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,kBAAmBJ,CAAU,EAC1E,IAAK,GACH,OAAOS,GAAoBL,GAAgB,iBAAkBJ,CAAU,EACzE,QACE,OAAOS,GAAoB,IAAI,OAAO,YAAc7qD,EAAI,GAAG,EAAGoqD,CAAU,CAC9E,CACA,CAEO,SAASc,GAAqBC,EAAW,CAC9C,OAAQA,EAAS,CACf,IAAK,UACH,MAAO,GACT,IAAK,UACH,MAAO,IACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,MAAO,IACT,IAAK,KACL,IAAK,WACL,IAAK,QACL,QACE,MAAO,EACb,CACA,CAEO,SAASC,GAAsBpG,EAAcqG,EAAa,CAC/D,MAAMC,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAEvD,IAAIljD,EACJ,GAAIojD,GAAkB,GACpBpjD,EAAS68C,GAAgB,QACpB,CACL,MAAMwG,EAAWD,EAAiB,GAC5BE,EAAkB,KAAK,MAAMD,EAAW,GAAG,EAAI,IAC/CE,EAAoB1G,GAAgBwG,EAAW,IACrDrjD,EAAS68C,EAAeyG,GAAmBC,EAAoB,IAAM,EACzE,CAEE,OAAOJ,EAAcnjD,EAAS,EAAIA,CACpC,CAEO,SAASwjD,GAAgB/N,EAAM,CACpC,OAAOA,EAAO,MAAQ,GAAMA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC/D,SC7HO,cAAyB2M,EAAO,CAAhC,kCACLZ,GAAA,gBAAW,KACXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GAEtE,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,MAAMwd,EAAiBhO,IAAU,CAC/B,KAAAA,EACA,eAAgBhQ,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAO8c,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDwB,CACD,EACH,QACE,OAAOlB,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CAC7E,CACA,CAEE,SAAStP,EAAO/9C,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAChD,CAEE,IAAI49C,EAAM+N,EAAO3rD,EAAO,CACtB,MAAM8sD,EAAclP,EAAK,YAAa,EAEtC,GAAI59C,EAAM,eAAgB,CACxB,MAAMstD,EAAyBT,GAC7B7sD,EAAM,KACN8sD,CACD,EACD,OAAAlP,EAAK,YAAY0P,EAAwB,EAAG,CAAC,EAC7C1P,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACb,CAEI,MAAMyB,EACJ,EAAE,QAASsM,IAAUA,EAAM,MAAQ,EAAI3rD,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAA49C,EAAK,YAAYyB,EAAM,EAAG,CAAC,EAC3BzB,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CACA,MCrDO,cAAkCoO,EAAO,CAAzC,kCACLZ,GAAA,gBAAW,KAmDXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GA/DD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,MAAMwd,EAAiBhO,IAAU,CAC/B,KAAAA,EACA,eAAgBhQ,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAO8c,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDwB,CACD,EACH,QACE,OAAOlB,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CAC7E,CACA,CAEE,SAAStP,EAAO/9C,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAChD,CAEE,IAAI49C,EAAM+N,EAAO3rD,EAAO4Q,EAAS,CAC/B,MAAMk8C,EAAc1H,GAAYxH,EAAMhtC,CAAO,EAE7C,GAAI5Q,EAAM,eAAgB,CACxB,MAAMstD,EAAyBT,GAC7B7sD,EAAM,KACN8sD,CACD,EACD,OAAAlP,EAAK,YACH0P,EACA,EACA18C,EAAQ,qBACT,EACDgtC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBiB,GAAYjB,EAAMhtC,CAAO,CACtC,CAEI,MAAMyuC,EACJ,EAAE,QAASsM,IAAUA,EAAM,MAAQ,EAAI3rD,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAA49C,EAAK,YAAYyB,EAAM,EAAGzuC,EAAQ,qBAAqB,EACvDgtC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBiB,GAAYjB,EAAMhtC,CAAO,CACpC,CAiBA,MCnEO,cAAgCo7C,EAAO,CAAvC,kCACLZ,GAAA,gBAAW,KAiBXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GA/BD,MAAMS,EAAYxc,EAAO,CACvB,OACSqd,GADLrd,IAAU,IACc,EAGFA,EAAM,OAHDwc,CAAU,CAI7C,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,MAAMwtD,EAAkB7P,GAAcC,EAAM,CAAC,EAC7C,OAAA4P,EAAgB,YAAYxtD,EAAO,EAAG,CAAC,EACvCwtD,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BrO,GAAeqO,CAAe,CACzC,CAmBA,MCtCO,cAAiCxB,EAAO,CAAxC,kCACLZ,GAAA,gBAAW,KAgBXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GAd3E,MAAMS,EAAYxc,EAAO,CACvB,OACSqd,GADLrd,IAAU,IACc,EAGFA,EAAM,OAHDwc,CAAU,CAI7C,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,YAAY59C,EAAO,EAAG,CAAC,EAC5B49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAGA,MClBO,cAA4BoO,EAAO,CAAnC,kCACLZ,GAAA,gBAAW,KA4DXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAzED,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACEhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,SACP,QAAS,YACV,GAIL,IAAK,QACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,SACP,QAAS,YACV,EAEX,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,UAAU59C,EAAQ,GAAK,EAAG,CAAC,EAChC49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAkBA,MC7EO,cAAsCoO,EAAO,CAA7C,kCACLZ,GAAA,gBAAW,KA4DXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAzED,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACEhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,SACP,QAAS,YACV,GAIL,IAAK,QACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,QAAQgc,EAAY,CACxB,MAAO,SACP,QAAS,YACV,EAEX,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,UAAU59C,EAAQ,GAAK,EAAG,CAAC,EAChC49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAkBA,MC5EO,cAA0BoO,EAAO,CAAjC,kCACLZ,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAEDA,GAAA,gBAAW,KAEX,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,MAAMwd,EAAiBrtD,GAAUA,EAAQ,EAEzC,OAAQqvC,EAAK,CAEX,IAAK,IACH,OAAO8c,GACLG,GAAoBL,GAAgB,MAAOJ,CAAU,EACrDwB,CACD,EAEH,IAAK,KACH,OAAOlB,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDwB,CACD,EAEH,IAAK,MACH,OACExd,EAAM,MAAMgc,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAItE,IAAK,QACH,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChEhc,EAAM,MAAMgc,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,EAE5E,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS59C,EAAO,CAAC,EACtB49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CACA,MC/EO,cAAoCoO,EAAO,CAA3C,kCACLZ,GAAA,gBAAW,KA+DXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GA3ED,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,MAAMwd,EAAiBrtD,GAAUA,EAAQ,EAEzC,OAAQqvC,EAAK,CAEX,IAAK,IACH,OAAO8c,GACLG,GAAoBL,GAAgB,MAAOJ,CAAU,EACrDwB,CACD,EAEH,IAAK,KACH,OAAOlB,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDwB,CACD,EAEH,IAAK,MACH,OACExd,EAAM,MAAMgc,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAItE,IAAK,QACH,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChEhc,EAAM,MAAMgc,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,MAAMgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,EAE5E,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS59C,EAAO,CAAC,EACtB49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAiBA,ECvCO,SAAS6P,IAAQ7P,EAAM+I,EAAM/1C,EAAS,CAC3C,MAAMmtC,EAAQP,GAAOI,CAAI,EACnB1N,EAAOwV,GAAQ3H,EAAOntC,CAAO,EAAI+1C,EACvC,OAAA5I,EAAM,QAAQA,EAAM,QAAO,EAAK7N,EAAO,CAAC,EACjC6N,CACT,SC1CO,cAA8BiO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,KAqBXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAjCD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChC,OAAOiuC,GAAY4O,IAAQ7P,EAAM59C,EAAO4Q,CAAO,EAAGA,CAAO,CAC7D,CAiBA,ECnBO,SAAS88C,IAAW9P,EAAM+I,EAAM,CACrC,MAAM5I,EAAQP,GAAOI,CAAI,EACnB1N,EAAOiV,GAAWpH,CAAK,EAAI4I,EACjC,OAAA5I,EAAM,QAAQA,EAAM,QAAO,EAAK7N,EAAO,CAAC,EACjC6N,CACT,SCvBO,cAA4BiO,EAAO,CAAnC,kCACLZ,GAAA,gBAAW,KAqBXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAlCD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAOm/C,GAAeuO,IAAW9P,EAAM59C,CAAK,CAAC,CACjD,CAkBA,ECrCA,MAAM2tD,IAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/DC,IAA0B,CAC9B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC9C,UAGO,cAAyB5B,EAAO,CAAhC,kCACLZ,GAAA,gBAAW,IACXA,GAAA,mBAAc,GA8BdA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GAzCD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAASjO,EAAM59C,EAAO,CACpB,MAAMq/C,EAAOzB,EAAK,YAAa,EACzBiQ,EAAaT,GAAgB/N,CAAI,EACjC+B,EAAQxD,EAAK,SAAU,EAC7B,OAAIiQ,EACK7tD,GAAS,GAAKA,GAAS4tD,IAAwBxM,CAAK,EAEpDphD,GAAS,GAAKA,GAAS2tD,IAAcvM,CAAK,CAEvD,CAEE,IAAIxD,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,QAAQ59C,CAAK,EAClB49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAgBA,MCpDO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IAEXA,GAAA,mBAAc,GA8BdA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GA5CD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOid,GAAoBL,GAAgB,UAAWJ,CAAU,EAClE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAASjO,EAAM59C,EAAO,CACpB,MAAMq/C,EAAOzB,EAAK,YAAa,EAE/B,OADmBwP,GAAgB/N,CAAI,EAE9Br/C,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAEpC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS,EAAG59C,CAAK,EACtB49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAmBA,ECxBO,SAASkQ,GAAOlQ,EAAMsB,EAAKtuC,EAAS,aACzC,MAAM+tC,EAAiBC,GAAmB,EACpCE,GACJluC,GAAA,YAAAA,EAAS,iBACTmuC,GAAAt7C,EAAAmN,GAAA,YAAAA,EAAS,SAAT,YAAAnN,EAAiB,UAAjB,YAAAs7C,EAA0B,eAC1BJ,EAAe,gBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,eAChC,EAEIjB,EAAQP,GAAOI,CAAI,EACnBmQ,EAAahQ,EAAM,OAAQ,EAG3BiQ,GADY9O,EAAM,EACM,GAAK,EAE7BvT,EAAQ,EAAImT,EACZ5O,EACJgP,EAAM,GAAKA,EAAM,EACbA,GAAQ6O,EAAapiB,GAAS,GAC5BqiB,EAAWriB,GAAS,GAAOoiB,EAAapiB,GAAS,EACzD,OAAOkS,GAAQE,EAAO7N,CAAI,CAC5B,SCnDO,cAAwB8b,EAAO,CAA/B,kCACLZ,GAAA,gBAAW,IAuDXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GArDlD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEQ,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,OACL,QACE,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9Dhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,EAE1E,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChC,OAAAgtC,EAAOkQ,GAAOlQ,EAAM59C,EAAO4Q,CAAO,EAClCgtC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAGA,MCxDO,cAA6BoO,EAAO,CAApC,kCACLZ,GAAA,gBAAW,IAsEXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GArFD,MAAMS,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACvC,MAAMy8C,EAAiBrtD,GAAU,CAE/B,MAAMiuD,EAAgB,KAAK,OAAOjuD,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQ4Q,EAAQ,aAAe,GAAK,EAAKq9C,CACnD,EAED,OAAQ5e,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDwB,CACD,EAEH,IAAK,MACH,OACExd,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,OACL,QACE,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9Dhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,EAE1E,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChC,OAAAgtC,EAAOkQ,GAAOlQ,EAAM59C,EAAO4Q,CAAO,EAClCgtC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAmBA,MCxFO,cAAuCoO,EAAO,CAA9C,kCACLZ,GAAA,gBAAW,IAuEXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GArFD,MAAMS,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACvC,MAAMy8C,EAAiBrtD,GAAU,CAE/B,MAAMiuD,EAAgB,KAAK,OAAOjuD,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQ4Q,EAAQ,aAAe,GAAK,EAAKq9C,CACnD,EAED,OAAQ5e,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOlB,GACLtc,EAAM,cAAcgc,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDwB,CACD,EAEH,IAAK,MACH,OACExd,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,GAIpE,IAAK,OACL,QACE,OACEhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9Dhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/Dhc,EAAM,IAAIgc,EAAY,CAAE,MAAO,SAAU,QAAS,YAAc,EAE1E,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChC,OAAAgtC,EAAOkQ,GAAOlQ,EAAM59C,EAAO4Q,CAAO,EAClCgtC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAmBA,ECpEO,SAASsQ,IAAUtQ,EAAMsB,EAAK,CACnC,MAAMnB,EAAQP,GAAOI,CAAI,EACnBmQ,EAAajD,IAAU/M,CAAK,EAC5B7N,EAAOgP,EAAM6O,EACnB,OAAOlQ,GAAQE,EAAO7N,CAAI,CAC5B,SC1BO,cAA2B8b,EAAO,CAAlC,kCACLZ,GAAA,gBAAW,IA4FXA,GAAA,0BAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACD,GA1GD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,MAAMwd,EAAiBrtD,GACjBA,IAAU,EACL,EAEFA,EAGT,OAAQqvC,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,KAAK,CAAE,EAExD,IAAK,MACH,OAAOM,GACLtc,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACChc,EAAM,IAAIgc,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACDhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACD,EAEH,IAAK,QACH,OAAOlB,GACLtc,EAAM,IAAIgc,EAAY,CACpB,MAAO,SACP,QAAS,YACrB,CAAW,EACDwB,CACD,EAEH,IAAK,SACH,OAAOlB,GACLtc,EAAM,IAAIgc,EAAY,CACpB,MAAO,QACP,QAAS,YACrB,CAAW,GACChc,EAAM,IAAIgc,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACD,EAEH,IAAK,OACL,QACE,OAAOlB,GACLtc,EAAM,IAAIgc,EAAY,CACpB,MAAO,OACP,QAAS,YACrB,CAAW,GACChc,EAAM,IAAIgc,EAAY,CACpB,MAAO,cACP,QAAS,YACvB,CAAa,GACDhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACDhc,EAAM,IAAIgc,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACD,CACT,CACA,CAEE,SAAStP,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAOsQ,IAAUtQ,EAAM59C,CAAK,EAC5B49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACX,CAmBA,MChHO,cAAyBoO,EAAO,CAAhC,kCACLZ,GAAA,gBAAW,IA+CXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GA7ClD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEQ,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAGL,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,EAEX,CACA,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3C49C,CACX,CAGA,MCjDO,cAAiCoO,EAAO,CAAxC,kCACLZ,GAAA,gBAAW,IA+CXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GA7ClD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEQ,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAGL,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,EAEX,CACA,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3C49C,CACX,CAGA,MChDO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IA+CXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,GA7CxC,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACEQ,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAGL,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDhc,EAAM,UAAUgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,EAEX,CACA,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3C49C,CACX,CAGA,MCjDO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IA6BXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,GA3B7C,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,MAAMmuD,EAAOvQ,EAAK,SAAQ,GAAM,GAChC,OAAIuQ,GAAQnuD,EAAQ,GAClB49C,EAAK,SAAS59C,EAAQ,GAAI,EAAG,EAAG,CAAC,EACxB,CAACmuD,GAAQnuD,IAAU,GAC5B49C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExBA,EAAK,SAAS59C,EAAO,EAAG,EAAG,CAAC,EAEvB49C,CACX,CAGA,MC/BO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IAsBXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GApBvD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,SAAS59C,EAAO,EAAG,EAAG,CAAC,EACrB49C,CACX,CAGA,MCxBO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IA2BXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,GAzB7C,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CAEvB,OADa49C,EAAK,SAAQ,GAAM,IACpB59C,EAAQ,GAClB49C,EAAK,SAAS59C,EAAQ,GAAI,EAAG,EAAG,CAAC,EAEjC49C,EAAK,SAAS59C,EAAO,EAAG,EAAG,CAAC,EAEvB49C,CACX,CAGA,MC7BO,cAA8BoO,EAAO,CAArC,kCACLZ,GAAA,gBAAW,IAuBXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,GArBvD,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,MAAMinD,EAAQjnD,GAAS,GAAKA,EAAQ,GAAKA,EACzC,OAAA49C,EAAK,SAASqJ,EAAO,EAAG,EAAG,CAAC,EACrBrJ,CACX,CAGA,MCzBO,cAA2BoO,EAAO,CAAlC,kCACLZ,GAAA,gBAAW,IAsBXA,GAAA,0BAAqB,CAAC,IAAK,GAAG,GApB9B,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,OAAQJ,CAAU,EAC/D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,WAAW59C,EAAO,EAAG,CAAC,EACpB49C,CACX,CAGA,MCxBO,cAA2BoO,EAAO,CAAlC,kCACLZ,GAAA,gBAAW,IAsBXA,GAAA,0BAAqB,CAAC,IAAK,GAAG,GApB9B,MAAMS,EAAYxc,EAAOQ,EAAO,CAC9B,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,OAAQJ,CAAU,EAC/D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACpD,CACA,CAEE,SAAS9N,EAAO/9C,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAClC,CAEE,IAAI49C,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,WAAW59C,EAAO,CAAC,EACjB49C,CACX,CAGA,MCzBO,cAAqCoO,EAAO,CAA5C,kCACLZ,GAAA,gBAAW,IAaXA,GAAA,0BAAqB,CAAC,IAAK,GAAG,GAX9B,MAAMS,EAAYxc,EAAO,CACvB,MAAMge,EAAiBrtD,GACrB,KAAK,MAAMA,EAAQ,KAAK,IAAI,GAAI,CAACqvC,EAAM,OAAS,CAAC,CAAC,EACpD,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CACzE,CAEE,IAAIzP,EAAM2P,EAAQvtD,EAAO,CACvB,OAAA49C,EAAK,gBAAgB59C,CAAK,EACnB49C,CACX,CAGA,MCXO,cAAqCoO,EAAO,CAA5C,kCACLZ,GAAA,gBAAW,IAmCXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,GAAG,GAjCnC,MAAMS,EAAYxc,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOkd,GACLL,GAAiB,qBACjBL,CACD,EACH,IAAK,KACH,OAAOU,GAAqBL,GAAiB,MAAOL,CAAU,EAChE,IAAK,OACH,OAAOU,GACLL,GAAiB,qBACjBL,CACD,EACH,IAAK,QACH,OAAOU,GACLL,GAAiB,wBACjBL,CACD,EACH,IAAK,MACL,QACE,OAAOU,GAAqBL,GAAiB,SAAUL,CAAU,CACzE,CACA,CAEE,IAAIjO,EAAM+N,EAAO3rD,EAAO,CACtB,OAAI2rD,EAAM,eAAuB/N,EAC1BD,GACLC,EACAA,EAAK,QAAS,EAAG+B,GAAgC/B,CAAI,EAAI59C,CAC1D,CACL,CAGA,MCrCO,cAAgCgsD,EAAO,CAAvC,kCACLZ,GAAA,gBAAW,IAmCXA,GAAA,0BAAqB,CAAC,IAAK,IAAK,GAAG,GAjCnC,MAAMS,EAAYxc,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOkd,GACLL,GAAiB,qBACjBL,CACD,EACH,IAAK,KACH,OAAOU,GAAqBL,GAAiB,MAAOL,CAAU,EAChE,IAAK,OACH,OAAOU,GACLL,GAAiB,qBACjBL,CACD,EACH,IAAK,QACH,OAAOU,GACLL,GAAiB,wBACjBL,CACD,EACH,IAAK,MACL,QACE,OAAOU,GAAqBL,GAAiB,SAAUL,CAAU,CACzE,CACA,CAEE,IAAIjO,EAAM+N,EAAO3rD,EAAO,CACtB,OAAI2rD,EAAM,eAAuB/N,EAC1BD,GACLC,EACAA,EAAK,QAAS,EAAG+B,GAAgC/B,CAAI,EAAI59C,CAC1D,CACL,CAGA,MCxCO,cAAqCgsD,EAAO,CAA5C,kCACLZ,GAAA,gBAAW,IAUXA,GAAA,0BAAqB,KARrB,MAAMS,EAAY,CAChB,OAAOW,GAAqBX,CAAU,CAC1C,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,MAAO,CAAC29C,GAAcC,EAAM59C,EAAQ,GAAI,EAAG,CAAE,eAAgB,GAAM,CACvE,CAGA,MCZO,cAA0CgsD,EAAO,CAAjD,kCACLZ,GAAA,gBAAW,IAUXA,GAAA,0BAAqB,KARrB,MAAMS,EAAY,CAChB,OAAOW,GAAqBX,CAAU,CAC1C,CAEE,IAAIjO,EAAM2P,EAAQvtD,EAAO,CACvB,MAAO,CAAC29C,GAAcC,EAAM59C,CAAK,EAAG,CAAE,eAAgB,GAAM,CAChE,CAGA,EC4DO,MAAMouD,IAAU,CACrB,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,GACT,EC5EMvH,IACJ,wDAIIC,IAA6B,oCAE7BC,IAAsB,eACtBC,IAAoB,MAEpBqH,IAAsB,KACtBpH,IAAgC,WA2S/B,SAASpZ,GAAMygB,EAASpH,EAAWqH,EAAe1/C,EAAS,aAChE,MAAM+tC,EAAiBC,GAAmB,EACpCsK,EAA4BvK,EAAe,QAAUwK,GAErD9D,EAGJ1G,EAAe,yBACfI,GAAAt7C,EAAAk7C,EAAe,SAAf,YAAAl7C,EAAuB,UAAvB,YAAAs7C,EAAgC,wBAChC,EAEID,EAGJH,EAAe,gBACfK,GAAAC,EAAAN,EAAe,SAAf,YAAAM,EAAuB,UAAvB,YAAAD,EAAgC,eAChC,EAEF,GAAIiK,IAAc,GAChB,OAAIoH,IAAY,GACP7S,GAAO8S,CAAa,EAEpB3S,GAAc2S,EAAe,GAAG,EAI3C,MAAMC,EAAe,CACnB,sBAAAlL,EACA,aAAAvG,EACA,OAAAoK,CACD,EAGKhuB,EAAU,CAAC,IAAIs1B,GAA4B,EAE3C1f,EAASmY,EACZ,MAAMJ,GAA0B,EAChC,IAAKa,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,KAAkB1B,GAAgB,CACpC,MAAM2B,EAAgB3B,GAAe0B,CAAc,EACnD,OAAOC,EAAcF,EAAWR,EAAO,UAAU,CACzD,CACM,OAAOQ,CACR,GACA,KAAK,EAAE,EACP,MAAMd,GAAsB,EAEzB6H,EAAa,CAAE,EAErB,QAASphB,KAASyB,EAAQ,CAGtBwX,GAAyBjZ,CAAK,GAE9BkZ,GAA0BlZ,EAAO4Z,EAAWoH,CAAO,EAInDhI,GAA0BhZ,CAAK,GAE/BkZ,GAA0BlZ,EAAO4Z,EAAWoH,CAAO,EAGrD,MAAM1G,EAAiBta,EAAM,CAAC,EACxBiC,EAAS8c,IAAQzE,CAAc,EACrC,GAAIrY,EAAQ,CACV,KAAM,CAAE,mBAAAof,CAAkB,EAAKpf,EAC/B,GAAI,MAAM,QAAQof,CAAkB,EAAG,CACrC,MAAMC,EAAoBF,EAAW,KAClCG,GACCF,EAAmB,SAASE,EAAU,KAAK,GAC3CA,EAAU,QAAUjH,CACvB,EACD,GAAIgH,EACF,MAAM,IAAI,WACR,uCAAuCA,EAAkB,SAAS,YAAYthB,CAAK,qBACpF,CAEX,SAAiBiC,EAAO,qBAAuB,KAAOmf,EAAW,OAAS,EAClE,MAAM,IAAI,WACR,uCAAuCphB,CAAK,yCAC7C,EAGHohB,EAAW,KAAK,CAAE,MAAO9G,EAAgB,UAAWta,EAAO,EAE3D,MAAM+U,EAAc9S,EAAO,IACzB+e,EACAhhB,EACA6Z,EAAO,MACPqH,CACD,EAED,GAAI,CAACnM,EACH,OAAOzG,GAAc2S,EAAe,GAAG,EAGzCp1B,EAAQ,KAAKkpB,EAAY,MAAM,EAE/BiM,EAAUjM,EAAY,IAC5B,KAAW,CACL,GAAIuF,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WACR,iEACEW,EACA,GACH,EAWH,GAPIta,IAAU,KACZA,EAAQ,IACCsa,IAAmB,MAC5Bta,EAAQwa,IAAmBxa,CAAK,GAI9BghB,EAAQ,QAAQhhB,CAAK,IAAM,EAC7BghB,EAAUA,EAAQ,MAAMhhB,EAAM,MAAM,MAEpC,QAAOsO,GAAc2S,EAAe,GAAG,CAE/C,CACA,CAGE,GAAID,EAAQ,OAAS,GAAKD,IAAoB,KAAKC,CAAO,EACxD,OAAO1S,GAAc2S,EAAe,GAAG,EAGzC,MAAMO,EAAwB31B,EAC3B,IAAKprB,GAAWA,EAAO,QAAQ,EAC/B,KAAK,CAACiF,EAAGC,IAAMA,EAAID,CAAC,EACpB,OAAO,CAAC02C,EAAUthD,EAAO5B,IAAUA,EAAM,QAAQkjD,CAAQ,IAAMthD,CAAK,EACpE,IAAKshD,GACJvwB,EACG,OAAQprB,GAAWA,EAAO,WAAa27C,CAAQ,EAC/C,KAAK,CAAC12C,EAAGC,IAAMA,EAAE,YAAcD,EAAE,WAAW,CACrD,EACK,IAAK+7C,GAAgBA,EAAY,CAAC,CAAC,EAEtC,IAAIlT,EAAOJ,GAAO8S,CAAa,EAE/B,GAAI,MAAM1S,EAAK,QAAO,CAAE,EACtB,OAAOD,GAAc2S,EAAe,GAAG,EAGzC,MAAM3E,EAAQ,CAAE,EAChB,UAAW77C,KAAU+gD,EAAuB,CAC1C,GAAI,CAAC/gD,EAAO,SAAS8tC,EAAM2S,CAAY,EACrC,OAAO5S,GAAc2S,EAAe,GAAG,EAGzC,MAAM1mD,EAASkG,EAAO,IAAI8tC,EAAM+N,EAAO4E,CAAY,EAE/C,MAAM,QAAQ3mD,CAAM,GACtBg0C,EAAOh0C,EAAO,CAAC,EACf,OAAO,OAAO+hD,EAAO/hD,EAAO,CAAC,CAAC,GAG9Bg0C,EAAOh0C,CAEb,CAEE,OAAO+zC,GAAc2S,EAAe1S,CAAI,CAC1C,CAEA,SAASiM,IAAmBpB,EAAO,CACjC,OAAOA,EAAM,MAAMK,GAAmB,EAAE,CAAC,EAAE,QAAQC,IAAmB,GAAG,CAC3E,CC/eA,MAAMH,IAAyB,iCAEzBE,IAAsB,eACtBC,IAAoB,MACpBC,IAAgC,WAiE/B,SAAS+H,GAAYnT,EAAMqL,EAAW,CAC3C,MAAMlL,EAAQP,GAAOI,CAAI,EAEzB,GAAI,CAACgD,GAAQ7C,CAAK,EAChB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,MAAMjN,EAASmY,EAAU,MAAML,GAAsB,EAGrD,OAAK9X,EAEUA,EACZ,IAAK4Y,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,IAGT,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,OAAOE,IAAmBH,CAAS,EAGrC,MAAMM,EAAYlE,GAAgB6D,CAAc,EAChD,GAAIK,EACF,OAAOA,EAAUjM,EAAO2L,CAAS,EAGnC,GAAIC,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WACR,iEACEW,EACA,GACH,EAGH,OAAOD,CACR,GACA,KAAK,EAAE,EA7BU,EAgCtB,CAEA,SAASG,IAAmBpB,EAAO,CACjC,MAAMuI,EAAUvI,EAAM,MAAMK,GAAmB,EAE/C,OAAKkI,EAIEA,EAAQ,CAAC,EAAE,QAAQjI,IAAmB,GAAG,EAHvCN,CAIX,CCpIO,SAASwI,GAAmB9a,EAAQyH,EAAMhtC,EAAS,CACtD,MAAM+tC,EAAiBC,GAAmB,EACpCsS,EAAMC,IAAOhb,EAAQvlC,EAAQ,SAAUA,EAAQ,QAAU+tC,EAAe,MAAM,EACpF,MAAO,kBAAmBuS,EAAME,IAAcF,EAAKtT,CAAI,EAAIyT,IAAcH,EAAKtT,CAAI,CACtF,CACA,SAASwT,IAAcF,EAAKtT,EAAM,CAC9B,MAAM0T,EAAYJ,EAAI,cAActT,CAAI,EACxC,QAASz+C,EAAImyD,EAAU,OAAS,EAAGnyD,GAAK,EAAG,EAAEA,EACzC,GAAImyD,EAAUnyD,CAAC,EAAE,OAAS,eACtB,OAAOmyD,EAAUnyD,CAAC,EAAE,KAIhC,CACA,SAASkyD,IAAcH,EAAKtT,EAAM,CAC9B,MAAM0T,EAAYJ,EAAI,OAAOtT,CAAI,EAAE,QAAQ,UAAW,EAAE,EAClD2T,EAAc,aAAa,KAAKD,CAAS,EAC/C,OAAOC,EAAcA,EAAY,CAAC,EAAE,OAAO,CAAC,EAAI,EACpD,CAGA,SAASJ,IAAOhb,EAAQqb,EAAUtI,EAAQ,CACtC,OAAO,IAAI,KAAK,eAAeA,EAAS,CAACA,EAAO,KAAM,OAAO,EAAI,OAAW,CACxE,SAAUsI,EACV,aAAcrb,CACtB,CAAK,CACL,CC5BO,SAASsb,IAAe7T,EAAM4T,EAAU,CAC3C,MAAMN,EAAMQ,IAAkBF,CAAQ,EACtC,MAAO,kBAAmBN,EAAMS,IAAYT,EAAKtT,CAAI,EAAIgU,IAAYV,EAAKtT,CAAI,CAClF,CACA,MAAMiU,IAAY,CACd,KAAM,EACN,MAAO,EACP,IAAK,EACL,KAAM,EACN,OAAQ,EACR,OAAQ,CACZ,EACA,SAASF,IAAYT,EAAKtT,EAAM,CAC5B,GAAI,CACA,MAAM0T,EAAYJ,EAAI,cAActT,CAAI,EAClCkU,EAAS,CAAE,EACjB,QAAS,EAAI,EAAG,EAAIR,EAAU,OAAQ,IAAK,CACvC,MAAMS,EAAMF,IAAUP,EAAU,CAAC,EAAE,IAAI,EACnCS,IAAQ,SACRD,EAAOC,CAAG,EAAI,SAAST,EAAU,CAAC,EAAE,MAAO,EAAE,EAE7D,CACQ,OAAOQ,CACf,OACWpsD,EAAO,CACV,GAAIA,aAAiB,WACjB,MAAO,CAAC,GAAG,EAEf,MAAMA,CACd,CACA,CACA,SAASksD,IAAYV,EAAKtT,EAAM,CAC5B,MAAM0T,EAAYJ,EAAI,OAAOtT,CAAI,EAE3BoU,EAAS,0CAA0C,KAAKV,CAAS,EAGvE,MAAO,CACH,SAASU,EAAO,CAAC,EAAG,EAAE,EACtB,SAASA,EAAO,CAAC,EAAG,EAAE,EACtB,SAASA,EAAO,CAAC,EAAG,EAAE,EACtB,SAASA,EAAO,CAAC,EAAG,EAAE,EACtB,SAASA,EAAO,CAAC,EAAG,EAAE,EACtB,SAASA,EAAO,CAAC,EAAG,EAAE,CACzB,CACL,CAIA,MAAMC,GAAW,CAAE,EAEbC,GAAoB,IAAI,KAAK,eAAe,QAAS,CACvD,UAAW,MACX,SAAU,mBACV,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,SACZ,CAAC,EAAE,OAAO,IAAI,KAAK,0BAA0B,CAAC,EACxCC,IAAqBD,KAAsB,wBAC7CA,KAAsB,iCAC1B,SAASR,IAAkBF,EAAU,CACjC,OAAKS,GAAST,CAAQ,IAClBS,GAAST,CAAQ,EAAIW,IACf,IAAI,KAAK,eAAe,QAAS,CAC/B,UAAW,MACX,SAAUX,EACV,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,SACX,GACC,IAAI,KAAK,eAAe,QAAS,CAC/B,OAAQ,GACR,SAAUA,EACV,KAAM,UACN,MAAO,UACP,IAAK,UACL,KAAM,UACN,OAAQ,UACR,OAAQ,SACxB,CAAa,GAEFS,GAAST,CAAQ,CAC5B,CCrFO,SAASY,GAAWC,EAAUjR,EAAOlC,EAAKoT,EAAMC,EAAQC,EAAQC,EAAa,CAChF,MAAM7S,EAAU,IAAI,KAAK,CAAC,EAC1B,OAAAA,EAAQ,eAAeyS,EAAUjR,EAAOlC,CAAG,EAC3CU,EAAQ,YAAY0S,EAAMC,EAAQC,EAAQC,CAAW,EAC9C7S,CACX,CCVA,MAAM8S,GAAuB,KACvBC,IAAyB,IACzBC,GAAW,CACb,SAAU,aACV,UAAW,QACX,WAAY,gBACZ,aAAc,0BAClB,EAEO,SAASC,GAAgBC,EAAgBlV,EAAMmV,EAAW,CAE7D,GAAI,CAACD,EACD,MAAO,GAGX,IAAIzjB,EAAQujB,GAAS,UAAU,KAAKE,CAAc,EAClD,GAAIzjB,EACA,MAAO,GAEX,IAAI4X,EACA+L,EAGJ,GADA3jB,EAAQujB,GAAS,WAAW,KAAKE,CAAc,EAC3CzjB,EAEA,OADA4X,EAAQ,SAAS5X,EAAM,CAAC,EAAG,EAAE,EACxB4jB,GAAiBhM,CAAK,EAGpB,EAAEA,EAAQyL,IAFN,IAMf,GADArjB,EAAQujB,GAAS,aAAa,KAAKE,CAAc,EAC7CzjB,EAAO,CACP4X,EAAQ,SAAS5X,EAAM,CAAC,EAAG,EAAE,EAC7B,MAAMqY,EAAU,SAASrY,EAAM,CAAC,EAAG,EAAE,EACrC,OAAK4jB,GAAiBhM,EAAOS,CAAO,GAGpCsL,EAAiB,KAAK,IAAI/L,CAAK,EAAIyL,GAAuBhL,EAAUiL,IAC7DtjB,EAAM,CAAC,IAAM,IAAM,CAAC2jB,EAAiBA,GAHjC,GAInB,CAEI,GAAIE,IAA0BJ,CAAc,EAAG,CAC3ClV,EAAO,IAAI,KAAKA,GAAQ,KAAK,IAAG,CAAE,EAClC,MAAMgC,EAAUmT,EAAYnV,EAAOuV,IAAUvV,CAAI,EAC3C1S,EAASkoB,GAAWxT,EAASkT,CAAc,EAEjD,MAAO,EADaC,EAAY7nB,EAASmoB,IAAUzV,EAAM1S,EAAQ4nB,CAAc,EAEvF,CACI,MAAO,IACX,CACA,SAASK,IAAUvV,EAAM,CACrB,OAAOwU,GAAWxU,EAAK,YAAa,EAAEA,EAAK,SAAU,EAAEA,EAAK,QAAS,EAAEA,EAAK,SAAU,EAAEA,EAAK,WAAY,EAAEA,EAAK,WAAY,EAAEA,EAAK,iBAAiB,CACxJ,CACA,SAASwV,GAAWxV,EAAMkV,EAAgB,CACtC,MAAMhiB,EAAS2gB,IAAe7T,EAAMkV,CAAc,EAE5CQ,EAAQlB,GAAWthB,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAI,EAAGA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAI,GAAIA,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAG,CAAC,EAAE,QAAS,EAChH,IAAIyiB,EAAO3V,EAAK,QAAS,EACzB,MAAM4V,EAAOD,EAAO,IACpB,OAAAA,GAAQC,GAAQ,EAAIA,EAAO,IAAOA,EAC3BF,EAAQC,CACnB,CACA,SAASF,IAAUzV,EAAM1S,EAAQ4nB,EAAgB,CAG7C,IAAIW,EAFY7V,EAAK,QAAS,EAEL1S,EAEzB,MAAMwoB,EAAKN,GAAW,IAAI,KAAKK,CAAQ,EAAGX,CAAc,EAExD,GAAI5nB,IAAWwoB,EACX,OAAOxoB,EAGXuoB,GAAYC,EAAKxoB,EAEjB,MAAMyoB,EAAKP,GAAW,IAAI,KAAKK,CAAQ,EAAGX,CAAc,EACxD,OAAIY,IAAOC,EACAD,EAGJ,KAAK,IAAIA,EAAIC,CAAE,CAC1B,CACA,SAASV,GAAiBhM,EAAOS,EAAS,CACtC,MAAO,KAAOT,GAASA,GAAS,KAAOS,GAAW,MAAS,GAAKA,GAAWA,GAAW,GAC1F,CACA,MAAMkM,GAAyB,CAAE,EACjC,SAASV,IAA0BW,EAAgB,CAC/C,GAAID,GAAuBC,CAAc,EACrC,MAAO,GACX,GAAI,CACA,WAAI,KAAK,eAAe,OAAW,CAAE,SAAUA,CAAc,CAAE,EAC/DD,GAAuBC,CAAc,EAAI,GAClC,EACf,MACkB,CACV,MAAO,EACf,CACA,CClGA,MAAMlB,IAAyB,GAAK,IACvBtM,IAAa,CAEtB,EAAG,SAAUzI,EAAMvO,EAAOz+B,EAAS,CAC/B,MAAMu2C,EAAiB2M,GAAkBljD,EAAQ,SAAUgtC,CAAI,EAC/D,GAAIuJ,IAAmB,EACnB,MAAO,IAEX,OAAQ9X,EAAK,CAET,IAAK,IACD,OAAO+X,GAAkCD,CAAc,EAI3D,IAAK,OACL,IAAK,KACD,OAAOE,GAAeF,CAAc,EAIxC,IAAK,QACL,IAAK,MACL,QACI,OAAOE,GAAeF,EAAgB,GAAG,CACzD,CACK,EAED,EAAG,SAAUvJ,EAAMvO,EAAOz+B,EAAS,CAC/B,MAAMu2C,EAAiB2M,GAAkBljD,EAAQ,SAAUgtC,CAAI,EAC/D,OAAQvO,EAAK,CAET,IAAK,IACD,OAAO+X,GAAkCD,CAAc,EAI3D,IAAK,OACL,IAAK,KACD,OAAOE,GAAeF,CAAc,EAIxC,IAAK,QACL,IAAK,MACL,QACI,OAAOE,GAAeF,EAAgB,GAAG,CACzD,CACK,EAED,EAAG,SAAUvJ,EAAMvO,EAAOz+B,EAAS,CAC/B,MAAMu2C,EAAiB2M,GAAkBljD,EAAQ,SAAUgtC,CAAI,EAC/D,OAAQvO,EAAK,CAET,IAAK,IACL,IAAK,KACL,IAAK,MACD,MAAO,MAAQiY,IAAoBH,EAAgB,GAAG,EAE1D,IAAK,OACL,QACI,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACjE,CACK,EAED,EAAG,SAAUvJ,EAAMvO,EAAOz+B,EAAS,CAC/B,OAAQy+B,EAAK,CAET,IAAK,IACL,IAAK,KACL,IAAK,MACD,OAAO4hB,GAAmB,QAASrT,EAAMhtC,CAAO,EAEpD,IAAK,OACL,QACI,OAAOqgD,GAAmB,OAAQrT,EAAMhtC,CAAO,CAC/D,CACK,CACL,EACA,SAASkjD,GAAkBtC,EAAUhI,EAAc,CAC/C,MAAMuK,EAAiBvC,EACjBqB,GAAgBrB,EAAUhI,EAAc,EAAI,EAAImJ,KAChDnJ,GAAA,YAAAA,EAAc,sBAAuB,EAC3C,GAAI,OAAO,MAAMuK,CAAc,EAC3B,MAAM,IAAI,WAAW,gCAAkCvC,CAAQ,EAEnE,OAAOuC,CACX,CACA,SAASpO,GAAgB/f,EAAQggB,EAAc,CAC3C,MAAMrE,EAAO3b,EAAS,EAAI,IAAM,GAChC,IAAIigB,EAAS,KAAK,IAAIjgB,CAAM,EAAE,SAAU,EACxC,KAAOigB,EAAO,OAASD,GACnBC,EAAS,IAAMA,EAEnB,OAAOtE,EAAOsE,CAClB,CACA,SAASwB,GAAenc,EAAQsc,EAAY,GAAI,CAC5C,MAAMjG,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQtB,GAAgB,KAAK,MAAM8B,EAAY,EAAE,EAAG,CAAC,EACrDC,EAAU/B,GAAgB,KAAK,MAAM8B,EAAY,EAAE,EAAG,CAAC,EAC7D,OAAOlG,EAAO0F,EAAQO,EAAYE,CACtC,CACA,SAASN,GAAkClc,EAAQsc,EAAW,CAC1D,OAAItc,EAAS,KAAO,GACHA,EAAS,EAAI,IAAM,KAClBya,GAAgB,KAAK,IAAIza,CAAM,EAAI,GAAI,CAAC,EAEnDmc,GAAenc,EAAQsc,CAAS,CAC3C,CACA,SAASF,IAAoBpc,EAAQsc,EAAY,GAAI,CACjD,MAAMjG,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQ,KAAK,MAAMQ,EAAY,EAAE,EACjCC,EAAUD,EAAY,GAC5B,OAAIC,IAAY,EACLnG,EAAO,OAAO0F,CAAK,EAEvB1F,EAAO,OAAO0F,CAAK,EAAIO,EAAY7B,GAAgB+B,EAAS,CAAC,CACxE,CC9GO,SAAS/H,GAAgC/B,EAAM,CAClD,MAAMgC,EAAU,IAAI,KAAK,KAAK,IAAIhC,EAAK,cAAeA,EAAK,SAAQ,EAAIA,EAAK,QAAS,EAAEA,EAAK,WAAYA,EAAK,WAAU,EAAIA,EAAK,WAAY,EAAEA,EAAK,gBAAiB,EAAC,EACrK,OAAAgC,EAAQ,eAAehC,EAAK,aAAa,EAClC,CAACA,EAAO,CAACgC,CACpB,CCdO,MAAMoU,IAAY,0ECEnBtB,GAAuB,KACvBC,GAAyB,IACzBsB,IAA4B,EAC5BrB,GAAW,CACb,gBAAiB,wBACjB,YAAa,mBACb,UAAW,IAEX,GAAI,YACJ,IAAK,CACD,gBACA,gBACA,eACH,EACD,KAAM,WACN,MAAO,CACH,eACA,eACA,cACH,EAED,GAAI,aACJ,IAAK,cACL,KAAM,uBACN,IAAK,eACL,KAAM,wBACN,GAAI,sBACJ,KAAM,+BACN,OAAQ,wCAER,SAAUoB,GACd,EA2CO,SAASxW,GAAOC,EAAU7sC,EAAU,GAAI,CAC3C,GAAI,UAAU,OAAS,EACnB,MAAM,IAAI,UAAU,iCAAmC,UAAU,OAAS,UAAU,EAExF,GAAI6sC,IAAa,KACb,OAAO,IAAI,KAAK,GAAG,EAEvB,MAAMyW,EAAmBtjD,EAAQ,kBAAoB,KAAOqjD,IAA4B,OAAOrjD,EAAQ,gBAAgB,EACvH,GAAIsjD,IAAqB,GAAKA,IAAqB,GAAKA,IAAqB,EACzE,MAAM,IAAI,WAAW,oCAAoC,EAG7D,GAAIzW,aAAoB,MACnB,OAAOA,GAAa,UAAY,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,gBAE9E,OAAO,IAAI,KAAKA,EAAS,SAAS,EAEjC,GAAI,OAAOA,GAAa,UACzB,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,kBAC7C,OAAO,IAAI,KAAKA,CAAQ,EAEvB,GAAM,OAAO,UAAU,SAAS,KAAKA,CAAQ,IAAM,kBACpD,OAAO,IAAI,KAAK,GAAG,EAEvB,MAAM0W,EAAcC,IAAgB3W,CAAQ,EACtC,CAAE,KAAA4B,EAAM,eAAAgV,CAAgB,EAAGC,IAAUH,EAAY,KAAMD,CAAgB,EACvEtW,EAAO2W,IAAUF,EAAgBhV,CAAI,EAC3C,GAAIzB,IAAS,MAAQ,MAAMA,EAAK,QAAS,GACrC,OAAO,IAAI,KAAK,GAAG,EAEvB,GAAIA,EAAM,CACN,MAAM2J,EAAY3J,EAAK,QAAS,EAChC,IAAI4W,EAAO,EACPtpB,EACJ,GAAIipB,EAAY,OACZK,EAAOC,IAAUN,EAAY,IAAI,EAC7BK,IAAS,MAAQ,MAAMA,CAAI,GAC3B,OAAO,IAAI,KAAK,GAAG,EAG3B,GAAIL,EAAY,UAAYvjD,EAAQ,UAEhC,GADAs6B,EAAS2nB,GAAgBsB,EAAY,UAAYvjD,EAAQ,SAAU,IAAI,KAAK22C,EAAYiN,CAAI,CAAC,EACzF,MAAMtpB,CAAM,EACZ,OAAO,IAAI,KAAK,GAAG,OAKvBA,EAASyU,GAAgC,IAAI,KAAK4H,EAAYiN,CAAI,CAAC,EACnEtpB,EAASyU,GAAgC,IAAI,KAAK4H,EAAYiN,EAAOtpB,CAAM,CAAC,EAEhF,OAAO,IAAI,KAAKqc,EAAYiN,EAAOtpB,CAAM,CACjD,KAEQ,QAAO,IAAI,KAAK,GAAG,CAE3B,CACA,SAASkpB,IAAgBvI,EAAY,CACjC,MAAMsI,EAAc,CAAE,EACtB,IAAI1K,EAAQmJ,GAAS,gBAAgB,KAAK/G,CAAU,EAChD6I,EAgBJ,GAfKjL,GAYD0K,EAAY,KAAO1K,EAAM,CAAC,EAC1BiL,EAAajL,EAAM,CAAC,IAZpBA,EAAQmJ,GAAS,YAAY,KAAK/G,CAAU,EACxCpC,GACA0K,EAAY,KAAO1K,EAAM,CAAC,EAC1BiL,EAAajL,EAAM,CAAC,IAGpB0K,EAAY,KAAO,KACnBO,EAAa7I,IAOjB6I,EAAY,CACZ,MAAMrlB,EAAQujB,GAAS,SAAS,KAAK8B,CAAU,EAC3CrlB,GACA8kB,EAAY,KAAOO,EAAW,QAAQrlB,EAAM,CAAC,EAAG,EAAE,EAClD8kB,EAAY,SAAW9kB,EAAM,CAAC,EAAE,KAAM,GAGtC8kB,EAAY,KAAOO,CAE/B,CACI,OAAOP,CACX,CACA,SAASG,IAAUzI,EAAYqI,EAAkB,CAC7C,GAAIrI,EAAY,CACZ,MAAM8I,EAAa/B,GAAS,IAAIsB,CAAgB,EAC1CU,EAAehC,GAAS,MAAMsB,CAAgB,EAEpD,IAAI7kB,EAAQujB,GAAS,KAAK,KAAK/G,CAAU,GAAK+I,EAAa,KAAK/I,CAAU,EAC1E,GAAIxc,EAAO,CACP,MAAMwlB,EAAaxlB,EAAM,CAAC,EAC1B,MAAO,CACH,KAAM,SAASwlB,EAAY,EAAE,EAC7B,eAAgBhJ,EAAW,MAAMgJ,EAAW,MAAM,CACrD,CACb,CAGQ,GADAxlB,EAAQujB,GAAS,GAAG,KAAK/G,CAAU,GAAK8I,EAAW,KAAK9I,CAAU,EAC9Dxc,EAAO,CACP,MAAMylB,EAAgBzlB,EAAM,CAAC,EAC7B,MAAO,CACH,KAAM,SAASylB,EAAe,EAAE,EAAI,IACpC,eAAgBjJ,EAAW,MAAMiJ,EAAc,MAAM,CACxD,CACb,CACA,CAEI,MAAO,CACH,KAAM,IACT,CACL,CACA,SAASP,IAAU1I,EAAYxM,EAAM,CAEjC,GAAIA,IAAS,KACT,OAAO,KAEX,IAAIzB,EACAwD,EACAuF,EAEJ,GAAI,CAACkF,GAAc,CAACA,EAAW,OAC3B,OAAAjO,EAAO,IAAI,KAAK,CAAC,EACjBA,EAAK,eAAeyB,CAAI,EACjBzB,EAGX,IAAIvO,EAAQujB,GAAS,GAAG,KAAK/G,CAAU,EACvC,GAAIxc,EAGA,OAFAuO,EAAO,IAAI,KAAK,CAAC,EACjBwD,EAAQ,SAAS/R,EAAM,CAAC,EAAG,EAAE,EAAI,EAC5B0lB,GAAa1V,EAAM+B,CAAK,GAG7BxD,EAAK,eAAeyB,EAAM+B,CAAK,EACxBxD,GAHI,IAAI,KAAK,GAAG,EAO3B,GADAvO,EAAQujB,GAAS,IAAI,KAAK/G,CAAU,EAChCxc,EAAO,CACPuO,EAAO,IAAI,KAAK,CAAC,EACjB,MAAMiJ,EAAY,SAASxX,EAAM,CAAC,EAAG,EAAE,EACvC,OAAK2lB,IAAsB3V,EAAMwH,CAAS,GAG1CjJ,EAAK,eAAeyB,EAAM,EAAGwH,CAAS,EAC/BjJ,GAHI,IAAI,KAAK,GAAG,CAI/B,CAGI,GADAvO,EAAQujB,GAAS,KAAK,KAAK/G,CAAU,EACjCxc,EAAO,CACPuO,EAAO,IAAI,KAAK,CAAC,EACjBwD,EAAQ,SAAS/R,EAAM,CAAC,EAAG,EAAE,EAAI,EACjC,MAAM6P,EAAM,SAAS7P,EAAM,CAAC,EAAG,EAAE,EACjC,OAAK0lB,GAAa1V,EAAM+B,EAAOlC,CAAG,GAGlCtB,EAAK,eAAeyB,EAAM+B,EAAOlC,CAAG,EAC7BtB,GAHI,IAAI,KAAK,GAAG,CAI/B,CAGI,GADAvO,EAAQujB,GAAS,IAAI,KAAK/G,CAAU,EAChCxc,EAEA,OADAsX,EAAO,SAAStX,EAAM,CAAC,EAAG,EAAE,EAAI,EAC3B4lB,GAAiBtO,CAAI,EAGnBuO,GAAiB7V,EAAMsH,CAAI,EAFvB,IAAI,KAAK,GAAG,EAM3B,GADAtX,EAAQujB,GAAS,KAAK,KAAK/G,CAAU,EACjCxc,EAAO,CACPsX,EAAO,SAAStX,EAAM,CAAC,EAAG,EAAE,EAAI,EAChC,MAAMyX,EAAY,SAASzX,EAAM,CAAC,EAAG,EAAE,EAAI,EAC3C,OAAK4lB,GAAiBtO,EAAMG,CAAS,EAG9BoO,GAAiB7V,EAAMsH,EAAMG,CAAS,EAFlC,IAAI,KAAK,GAAG,CAG/B,CAEI,OAAO,IACX,CACA,SAAS2N,IAAUC,EAAY,CAC3B,IAAIzN,EACAS,EAEArY,EAAQujB,GAAS,GAAG,KAAK8B,CAAU,EACvC,GAAIrlB,EAEA,OADA4X,EAAQ,WAAW5X,EAAM,CAAC,EAAE,QAAQ,IAAK,GAAG,CAAC,EACxC8lB,GAAalO,CAAK,EAGfA,EAAQ,GAAMyL,GAFX,IAMf,GADArjB,EAAQujB,GAAS,KAAK,KAAK8B,CAAU,EACjCrlB,EAGA,OAFA4X,EAAQ,SAAS5X,EAAM,CAAC,EAAG,EAAE,EAC7BqY,EAAU,WAAWrY,EAAM,CAAC,EAAE,QAAQ,IAAK,GAAG,CAAC,EAC1C8lB,GAAalO,EAAOS,CAAO,EAGxBT,EAAQ,GAAMyL,GAAuBhL,EAAUiL,GAF5C,IAMf,GADAtjB,EAAQujB,GAAS,OAAO,KAAK8B,CAAU,EACnCrlB,EAAO,CACP4X,EAAQ,SAAS5X,EAAM,CAAC,EAAG,EAAE,EAC7BqY,EAAU,SAASrY,EAAM,CAAC,EAAG,EAAE,EAC/B,MAAMgb,EAAU,WAAWhb,EAAM,CAAC,EAAE,QAAQ,IAAK,GAAG,CAAC,EACrD,OAAK8lB,GAAalO,EAAOS,EAAS2C,CAAO,EAGjCpD,EAAQ,GAAMyL,GAAuBhL,EAAUiL,GAAyBtI,EAAU,IAF/E,GAGnB,CAEI,OAAO,IACX,CACA,SAAS6K,GAAiBxO,EAAaC,EAAMzH,EAAK,CAC9CyH,EAAOA,GAAQ,EACfzH,EAAMA,GAAO,EACb,MAAMtB,EAAO,IAAI,KAAK,CAAC,EACvBA,EAAK,eAAe8I,EAAa,EAAG,CAAC,EACrC,MAAM0O,EAAqBxX,EAAK,UAAS,GAAM,EACzC1N,EAAOyW,EAAO,EAAIzH,EAAM,EAAIkW,EAClC,OAAAxX,EAAK,WAAWA,EAAK,WAAU,EAAK1N,CAAI,EACjC0N,CACX,CAEA,MAAM+P,IAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/DC,IAA0B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/E,SAASR,GAAgB/N,EAAM,CAC3B,OAAOA,EAAO,MAAQ,GAAMA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CACjE,CACA,SAAS0V,GAAa1V,EAAM+B,EAAOxD,EAAM,CACrC,GAAIwD,EAAQ,GAAKA,EAAQ,GACrB,MAAO,GAEX,GAAIxD,GAAQ,KAAM,CACd,GAAIA,EAAO,EACP,MAAO,GAEX,MAAMiQ,EAAaT,GAAgB/N,CAAI,EAIvC,GAHIwO,GAAcjQ,EAAOgQ,IAAwBxM,CAAK,GAGlD,CAACyM,GAAcjQ,EAAO+P,IAAcvM,CAAK,EACzC,MAAO,EAEnB,CACI,MAAO,EACX,CACA,SAAS4T,IAAsB3V,EAAMwH,EAAW,CAC5C,GAAIA,EAAY,EACZ,MAAO,GAEX,MAAMgH,EAAaT,GAAgB/N,CAAI,EAIvC,MAHI,EAAAwO,GAAchH,EAAY,KAG1B,CAACgH,GAAchH,EAAY,IAInC,CACA,SAASoO,GAAiBtO,EAAMzH,EAAK,CAIjC,MAHI,EAAAyH,EAAO,GAAKA,EAAO,IAGnBzH,GAAO,OAASA,EAAM,GAAKA,EAAM,GAIzC,CACA,SAASiW,GAAalO,EAAOS,EAAS2C,EAAS,CAO3C,MANI,EAAApD,EAAQ,GAAKA,GAAS,IAGtBS,GAAW,OAASA,EAAU,GAAKA,GAAW,KAG9C2C,GAAW,OAASA,EAAU,GAAKA,GAAW,IAItD,CC3WA,MAAMgL,IAA2B,iCAwT1B,SAAS7M,GAAO5K,EAAMqL,EAAWr4C,EAAU,GAAI,CAClDq4C,EAAY,OAAOA,CAAS,EAC5B,MAAM+H,EAAU/H,EAAU,MAAMoM,GAAwB,EACxD,GAAIrE,EAAS,CACT,MAAM/vB,EAAIuc,GAAO5sC,EAAQ,cAAgBgtC,EAAMhtC,CAAO,EAGtDq4C,EAAY+H,EAAQ,OAAO,SAAUpnD,EAAQylC,EAAO,CAChD,GAAIA,EAAM,CAAC,IAAM,IACb,OAAOzlC,EAEX,MAAMmoD,EAAMnoD,EAAO,QAAQylC,CAAK,EAC1BimB,EAA0B1rD,EAAOmoD,EAAM,CAAC,IAAM,IAC9CvkB,EAAW5jC,EAAO,QAAQylC,EAAO,IAAMgX,IAAWhX,EAAM,CAAC,CAAC,EAAEpO,EAAGoO,EAAOz+B,CAAO,EAAI,GAAG,EAG1F,OAAO0kD,EACD9nB,EAAS,UAAU,EAAGukB,EAAM,CAAC,EAAIvkB,EAAS,UAAUukB,EAAM,CAAC,EAC3DvkB,CACT,EAAEyb,CAAS,CACpB,CACI,OAAOsM,IAAc3X,EAAMqL,EAAWr4C,CAAO,CACjD,CCvTO,SAAS4kD,IAAY5X,EAAM4T,EAAU5gD,EAAS,CACjDgtC,EAAOJ,GAAOI,EAAMhtC,CAAO,EAC3B,MAAM6kD,EAAqB5C,GAAgBrB,EAAU5T,EAAM,EAAI,EACzD3c,EAAI,IAAI,KAAK2c,EAAK,QAAO,EAAK6X,CAAkB,EAChDC,EAAa,IAAI,KAAK,CAAC,EAC7B,OAAAA,EAAW,YAAYz0B,EAAE,eAAgB,EAAEA,EAAE,YAAa,EAAEA,EAAE,YAAY,EAC1Ey0B,EAAW,SAASz0B,EAAE,YAAa,EAAEA,EAAE,cAAe,EAAEA,EAAE,cAAa,EAAIA,EAAE,mBAAkB,CAAE,EAC1Fy0B,CACX,CCXO,SAASC,IAAiB/X,EAAM4T,EAAUvI,EAAWr4C,EAAS,CACjE,OAAAA,EAAU,CACN,GAAGA,EACH,SAAA4gD,EACA,aAAc5T,CACjB,EACM4K,GAAOgN,IAAY5X,EAAM4T,EAAU,CAAE,SAAU5gD,EAAQ,QAAQ,CAAE,EAAGq4C,EAAWr4C,CAAO,CACjG,CC5BO,SAASglD,IAAmB51D,EAAO,CAEtC,GAAIA,GAAS,MAAQA,IAAU,GAC3B,MAAO,GAEX,QAASb,EAAI,EAAGA,EAAIa,EAAM,OAAQb,IAC9B,OAAQa,EAAMb,CAAC,EAAC,CACZ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK;AAAA,EACD,SACJ,QACI,MAAO,EACvB,CAEI,MAAO,EACX,CACA,MAAM02D,IAAmB,wGACnBC,IAAmB,uEAClB,SAASC,IAActY,EAAUuY,EAAO,WAAY,CAcvD,GAAIA,GAAQ,OAAQ,CAGhB,IAAIC,EAAYxY,EAAS,MAAMqY,GAAgB,GAAK,CAAE,EACtD,GAAIG,EAAU,QAAU,EAMpB,OAAO,IAAI,KAAK,IAAI,OAAO,cAAe,EAAG,EAAG,CAACA,EAAU,CAAC,EAC5D,CAACA,EAAU,CAAC,EACZ,CAACA,EAAU,CAAC,EACZ,GAAGA,EAAU,CAAC,GAAK,KAAO,MAAM,UAAU,EAAG,CAAC,CAC7C,CAEb,CACI,IAAIxM,EAAQhM,EAAS,MAAMoY,GAAgB,GAAK,CAAE,EAClD,MAAMK,EAAezM,EAAM,CAAC,GAAK,IAAM,EAAIA,EAAM,EAAE,EACnD,OAAIyM,IAAiB,OAEV,IAAI,KAAK,KAAK,IAAI,CAACzM,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAI,EAAG,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,GAAK,CAACyM,GAAgB,IAAMzM,EAAM,CAAC,GAAK,IAAM,GAAK,GAAI,CAACA,EAAM,CAAC,GAAK,CAACA,EAAM,EAAE,GAAK,IAAMA,EAAM,CAAC,GAAK,IAAM,GAAK,GAAI,CAACA,EAAM,CAAC,EAAG,GAAGA,EAAM,CAAC,GAAK,KAAO,MAAM,UAAU,EAAG,CAAC,CAAC,CAAC,EAE3OA,EAAM,CAAC,IAAM,OAEX,IAAI,KAAK,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAI,EAAG,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAG,GAAGA,EAAM,CAAC,GAAK,KAAO,MAAM,UAAU,EAAG,CAAC,CAAC,EAI1H,IAAI,KAAK,CAACA,EAAM,CAAC,EAAG,CAACA,EAAM,CAAC,EAAI,EAAG,CAACA,EAAM,CAAC,CAAC,CAE3D,CACO,SAAS0M,IAAmB1N,EAAO2N,EAAaC,EAAU,CAM7D,GADA5N,EAAQA,EAAM,KAAM,EAChB4N,IAAa,OAAQ,CAErB,MAAMC,EAAS,uCAAuC,KAAK7N,CAAK,EAChE,GAAI6N,EAAQ,CAER,MAAMlV,EAAQ,SAASkV,EAAO,CAAC,CAAC,EAAI,EAC9BC,EAAMD,EAAO,CAAC,EACdpX,EAAM,SAASoX,EAAO,CAAC,CAAC,EAE9B,GADa,SAASA,EAAO,CAAC,CAAC,EAgC3B7N,EAAQA,EACH,QAAQ6N,EAAO,CAAC,EAAGA,EAAO,CAAC,EAC3B,KAAI,EACJ,QAAQ,IAAI,OAAOC,EAAI,QAAQ,yBAA0B,MAAM,EAAG,GAAG,EAAG,GAAG,CAAC,EAC5E,KAAM,MAnCJ,CAEP,MAAMvE,EAAS,IAAI,KAAKoE,EAAY,cAAehV,EAAOlC,EAAKkX,EAAY,SAAQ,EAAIA,EAAY,aAAcA,EAAY,aAAcA,EAAY,iBAAiB,EAMlKI,EAAqB,IAAM,GAAK,GAAK,GAAK,IAChD,IAAIC,EAAYzE,EACZ0E,EAAgB,KAAK,IAAI,EAAG,EAAE,EAClC,UAAWC,IAAa,CACpBrW,GAAS0R,EAAQ,CAAC,EAClBA,EACA1R,GAAS0R,EAAQ,EAAE,CACvC,EAAmB,CACC,MAAM9hB,EAAO,KAAK,IAAIkmB,EAAY,UAAYO,EAAU,SAAS,EAC7DzmB,EAAOwmB,GAAiBxmB,GAAQsmB,IAChCC,EAAYE,EACZD,EAAgBxmB,EAExC,CACgBuY,EAAQA,EACH,QAAQ6N,EAAO,CAAC,EAAGA,EAAO,CAAC,EAAE,OAAO,QAAQC,EAAK,GAAG,EACrD,IACAE,EAAU,YAAa,EACvB,GAAG,EACF,KAAM,CAC3B,CASA,CACA,CACQJ,GAAY,SAEZ5N,EAAQA,EAAM,QAAQ,aAAc,OAAO,EAE3CA,EAAQA,EAAM,QAAQ,aAAc,KAAK,EAEzCA,EAAQA,EAAM,QAAQ,gDAAiD,SAAS,EAEhFA,EAAQA,EAAM,QAAQ,qCAAsC,SAAS,GAEzE,MAAMnyB,EAAW,CAAC,GAAGmyB,EAAM,SAAS,QAAQ,CAAC,EAAE,OAC/C,GAAI4N,GAAY,OAEZ,OAAI//B,GAAY,EAELsZ,GAAM6Y,EAAO,OAAQ2N,CAAW,EAElC9/B,GAAY,EAEVsZ,GAAM6Y,EAAO,QAAS2N,CAAW,EAGjCxmB,GAAM6Y,EAAO,WAAY2N,CAAW,EAGnD,GAAI,EAAA9/B,GAAY,GAIhB,OAAO,IAAI,KAAKmyB,CAAK,CACzB,CACA;AAAA;AAAA;AAAA,GAWO,SAASmO,GAAoB7hD,EAAG8hD,EAAc,GAAM,CACvD,IAAIC,EAAQ,CAAE,EAUd,OAAAC,GAAY,GAAIhiD,EATJ,SAAUxW,EAAKyB,EAAO,CAC1B,CAAC62D,GAAe72D,GAAS,OAE7BA,EAAQA,GAAgB,GACxB82D,EAAMA,EAAM,MAAM,EACd,mBAAmBv4D,CAAG,EAClB,IACA,mBAAmByB,GAAgB,EAAU,EACxD,CACqB,EACf82D,EAAM,KAAK,GAAG,CACzB,CACO,SAASE,IAAiBjiD,EAAG,CAChC,IAAI+hD,EAAQ,IAAI,SAQhB,OAAAC,GAAY,GAAIhiD,EAPJ,SAAUxW,EAAKyB,EAAO,CAC1BA,aAAiB,aAEjBA,EAAQ,IAAI,KAAK,CAACA,CAAK,CAAC,GAE5B82D,EAAM,OAAOv4D,EAAKyB,GAAgB,EAAU,CAC/C,CACqB,EACf82D,CACX,CACA,MAAMG,IAAW,QACjB,SAASC,GAAkB51D,EAAK,CAC5B,OAAQA,aAAe,MAAQA,aAAe,YAAc,OAAOA,GAAQ,QAC/E,CACA,SAASy1D,GAAYI,EAAQ71D,EAAKszC,EAAK,CACnC,IAAInyC,EACJ,GAAInB,aAAe,MAAO,CACtB,IAAI81D,EAAgB91D,EAAI,MAAM41D,EAAiB,EAC3C51D,EAAI,QAAU,GASdszC,EAAIuiB,EAAS,SAAU,GAAG,EAE9B,QAASh4D,EAAI,EAAG0E,EAAIvC,EAAI,OAAQnC,EAAI0E,EAAG1E,IAAK,CACxC,MAAMqE,EAAIlC,EAAInC,CAAC,EACf,GAAIi4D,GAAiBH,IAAS,KAAKE,CAAM,EAErCviB,EAAIuiB,EAAQ3zD,CAAC,MAEZ,CAED,MAAMgjC,EAAI,OAAOhjC,GAAM,UAAYA,GAAK,KAAOrE,EAAE,SAAQ,EAAK,GAC9D43D,GAAYI,EAASA,EAAS,IAAM3wB,EAAI,IAAMA,EAAGhjC,EAAGoxC,CAAG,CACvE,CACA,CACA,SACatzC,IAAQ,KAGbszC,EAAIuiB,EAAQ71D,CAAG,UAEV,OAAOA,GAAO,UAAY,CAAC41D,GAAkB51D,CAAG,EAErD,IAAKmB,KAAQnB,EACLA,EAAI,eAAemB,CAAI,GACvBs0D,GAAYI,EAASA,EAAS,IAAM10D,EAAO,IAAMA,EAAMnB,EAAImB,CAAI,EAAGmyC,CAAG,OAM7EA,EAAIuiB,EAAQ71D,CAAG,CAEvB,CAgBO,MAAM+1D,GAAqB,WAC3B,SAASC,GAAoBC,EAAK,CAGrC,MAAI,MAAOA,EACAA,EAAI,EAGRA,CACX,CACO,MAAMC,GAAS/tC,GAAQ,OAAO,CAAC,GAAK,IAC9BguC,GAAShuC,GAAQ,OAAO,CAAC,GAAK,ICrQ3C,MAAMiuC,EAAQ,CACV,WAAW13D,EAAOuzC,EAAM,CACpB,OAAQA,EAAK,KAAI,CACb,KAAK,OACD,KAAM,iCACV,IAAK,QACL,IAAK,SACD,OAAO,KAAK,YAAYvzC,EAAOuzC,EAAK,OAAO,EAC/C,IAAK,aACD,OAAO,KAAK,gBAAgBvzC,EAAOuzC,CAAI,EAC3C,IAAK,OACD,OAAO,KAAK,eAAevzC,EAAOuzC,CAAI,EAC1C,IAAK,OACD,OAAO,KAAK,eAAevzC,EAAOuzC,CAAI,EAC1C,IAAK,OACD,OAAO,KAAK,eAAevzC,EAAOuzC,CAAI,EAC1C,IAAK,SACD,OAAO,KAAK,iBAAiBvzC,EAAOuzC,CAAI,EAC5C,IAAK,UACD,OAAO,KAAK,kBAAkBvzC,EAAOuzC,CAAI,EAC7C,QACI,OAAO,KAAK,oBAAoBvzC,EAAOuzC,CAAI,CAC3D,CACA,CACA,CACA,SAASokB,GAAW33D,EAAOuzC,EAAMqkB,EAAS,CACtC,OAAO,IAAI,MAAM,0BAA0B,OAAO53D,CAAK,MAAMA,CAAK,UAAUuzC,EAAK,IAAI,KAAKA,EAAK,IAAI,MAAMqkB,GAAW,EAAE,EAAE,CAC5H,CACO,SAASC,GAAW73D,EAAOuzC,EAAM,CACpC,GAAIvzC,GAAS,KACT,OAAO,KAEX,MAAMyH,EAAO,OAAOzH,EACpB,OAAQuzC,EAAK,KAAI,CACb,IAAK,SACL,IAAK,OACD,GAAI9rC,IAAS,SACT,OAAOzH,EACX,GAAIyH,IAAS,SAGT,MAAMkwD,GAAW33D,EAAOuzC,CAAI,EAKhC,GAAIqiB,IAAmB51D,CAAK,EACxB,OAAO,KAEX,MAAMgyD,EAAS,OAAOhyD,CAAK,EAC3B,GAAI,MAAMgyD,CAAM,EACZ,MAAM2F,GAAW33D,EAAOuzC,CAAI,EAEhC,OAAOye,EACX,IAAK,SACD,GAAIvqD,IAAS,SACT,OAAOzH,EACX,GAAIyH,IAAS,SACT,MAAMkwD,GAAW33D,EAAOuzC,CAAI,EAChC,OAAO,OAAOvzC,CAAK,EACvB,IAAK,UACD,GAAIyH,IAAS,UACT,OAAOzH,EACX,GAAIA,IAAU,OACV,MAAO,GACX,GAAIA,IAAU,QACV,MAAO,GACX,MAAM23D,GAAW33D,EAAOuzC,CAAI,EAChC,IAAK,aACD,GAAI9rC,IAAS,UAAY,CAAC,MAAM,QAAQzH,CAAK,EACzC,MAAM23D,GAAW33D,EAAOuzC,CAAI,EAChC,OAAOvzC,EACX,IAAK,QACL,IAAK,SACD,GAAIyH,IAAS,UAAY,MAAM,QAAQzH,CAAK,EACxC,MAAM23D,GAAW33D,EAAOuzC,CAAI,EAChC,OAAOvzC,EACX,IAAK,OACD,IAAI49C,EASJ,GARI59C,aAAiB,KACjB49C,EAAO59C,EAEFyH,IAAS,WACdm2C,EAAOmY,IAAc/1D,EAAOuzC,EAAK,QAAQ,GAIzCqK,IAAS,QAAa,MAAMA,CAAI,EAChC,MAAM+Z,GAAW33D,EAAOuzC,CAAI,EAEhC,OAAOqK,EACX,IAAK,OACD,GAAI59C,aAAiB,KACjB,OAAOA,EACX,MAAM23D,GAAW33D,EAAOuzC,CAAI,EAChC,IAAK,SACD,GAAI,OAAOvzC,GAAS,UAAYA,aAAiB,WAC7C,OAAOA,EACX,GAAIuzC,EAAK,QAAU,OAAOvzC,GAAU,SAChC,MAAM23D,GAAW33D,EAAOuzC,EAAM,kDAAkD,EAEpF,GAAIvzC,aAAiB,YACjB,OAAO,IAAI,WAAWA,CAAK,EAC/B,MAAM23D,GAAW33D,EAAOuzC,CAAI,CACxC,CACA,CACA,MAAMukB,WAA+BJ,EAAQ,CA4HzC,YAAYn8C,EAAM,CACd,MAAO,EA5HX6vC,GAAA,aACAA,GAAA,eAAU,IAAI,KA4HV,KAAK,KAAO7vC,CACpB,CA5HI,WAAWvb,EAAOuzC,EAAM,CAEpB,OAAIvzC,IAAU,OACH,KACJ,MAAM,WAAWA,EAAOuzC,CAAI,CAC3C,CACI,YAAYvzC,EAAOuzC,EAAM,CACrB,GAAIvzC,GAAS,KACT,OAAO,KACX,GAAI,OAAOA,GAAU,UAAY,MAAM,QAAQA,CAAK,EAChD,MAAM23D,GAAW33D,EAAOuzC,CAAI,EAEhC,GAAI,KAAK,QAAQ,IAAIvzC,CAAK,EACtB,OAAO,KAAK,QAAQ,IAAIA,CAAK,EACjC,MAAM2C,EAAQ4wC,EAAK,MACnB,IAAI/rC,EACJ,GAAI,KAAK,MAAQ,UAIb,GAHA,KAAK,QAAQ,IAAIxH,EAAOA,CAAK,EAGzB,cAAeA,EAAO,CACtB,GAAIA,EAAM,YAAcuzC,EACpB,MAAM,MAAM,sDAAsDvzC,EAAM,UAAU,IAAI,uBAAuBuzC,EAAK,IAAI,gBAAgB,EAWtI,OAAOvzC,CAE3B,MAEgBA,EAAM,UAAYuzC,EAClB/rC,EAASxH,UAGR,KAAK,MAAQ,MAClBwH,EAAS,CAAE,UAAW+rC,CAAM,EAC5B,KAAK,QAAQ,IAAIvzC,EAAOwH,CAAM,MAG9B,MAAM,kBAAkB,KAAK,IAAI,GAErC,KAAK,QAAQ,IAAIxH,EAAOwH,CAAM,EAC9B,UAAWuwD,KAAYp1D,EAAO,CAC1B,MAAMq1D,EAAUh4D,EAAM+3D,CAAQ,EAC1B,EAAEA,KAAY/3D,IAAUg4D,IAAY,OAIpCxwD,EAAOuwD,CAAQ,EAAI,KAGnBvwD,EAAOuwD,CAAQ,EAAI,KAAK,WAAWC,EAASr1D,EAAMo1D,CAAQ,CAAC,CAE3E,CACQ,OAAOvwD,CACf,CACI,gBAAgBxH,EAAOuzC,EAAM,CACzB,GAAIvzC,GAAS,KACT,OAAO,KACX,MAAMgyD,EAAS6F,GAAW73D,EAAOuzC,CAAI,EAC/BjxC,EAAM,KAAK,MAAQ,MAAQ,CAAE,EAAG0vD,EACtC,IAAI1+B,EAAI,EACR,QAASn0B,EAAI,EAAGA,EAAI6yD,EAAO,OAAQ7yD,IAAKm0B,IAAK,CACzC,MAAMtzB,EAAQgyD,EAAO7yD,CAAC,EACtB,GAAIa,IAAU,OACTuzC,EAAK,SAAS,OAAS,UAAYA,EAAK,SAAS,OAAS,SAAU,CAIrEjgB,IACA,QAChB,CACYhxB,EAAIgxB,CAAC,EAAI,KAAK,WAAWtzB,EAAOuzC,EAAK,QAAQ,CACzD,CACQ,GAAIjxC,EAAI,QAAUgxB,EAAG,CAGjB,QAASn0B,EAAIm0B,EAAGn0B,EAAImD,EAAI,OAAQnD,IAC5B,OAAOmD,EAAInD,CAAC,EAEhBmD,EAAI,OAASgxB,CACzB,CACQ,OAAOhxB,CACf,CACI,eAAetC,EAAOuzC,EAAM,CACxB,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KACX,GAAI,KAAK,MAAQ,UAEb,OAAOA,EAEN,GAAI,KAAK,MAAQ,MAIlB,OAAOhyD,IAAUgyD,EAAS,IAAI,KAAKA,CAAM,EAAIA,CAEzD,CACI,eAAehyD,EAAOuzC,EAAM,CACxB,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,oBAAoBvzC,EAAOuzC,EAAM,CAC7B,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,eAAevzC,EAAOuzC,EAAM,CACxB,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,iBAAiBvzC,EAAOuzC,EAAM,CAC1B,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,kBAAkBvzC,EAAOuzC,EAAM,CAC3B,OAAOvzC,CACf,CAKA,CACO,SAASi4D,GAAej4D,EAAOi9C,EAAU,CAC5C,MAAI,UAAWA,EACJ,IAAI6a,GAAuB,SAAS,EAAE,YAAY93D,EAAOi9C,CAAQ,EAGjE,IAAI6a,GAAuB,SAAS,EAAE,WAAW93D,EAAOi9C,CAAQ,CAE/E,CAEO,SAASib,GAAWl4D,EAAOi9C,EAAU,CACxC,MAAI,UAAWA,EACJ,IAAI6a,GAAuB,KAAK,EAAE,YAAY93D,EAAOi9C,CAAQ,EAG7D,IAAI6a,GAAuB,KAAK,EAAE,WAAW93D,EAAOi9C,CAAQ,CAE3E,CAMA,MAAMkb,WAAwBT,EAAQ,CAgHlC,YAAYU,EAAiB,IAAK,CAO9B,MAAO,EAtHXhN,GAAA,uBACAA,GAAA,aAAQ,GAsHJ,KAAK,eAAiBgN,CAC9B,CAtHI,YAAYp4D,EAAOuzC,EAAM,CAGrB,GAAI,KAAK,MAAQ,KAAK,eAClB,OAEJ,GADA,KAAK,QACDvzC,GAAS,KACT,OAAO,KACX,MAAM2C,EAAQ4wC,EAAK,MACbsS,EAAS,CAAE,EACjB,UAAWkS,KAAYp1D,EAAO,CAC1B,MAAMy6C,EAAWz6C,EAAMo1D,CAAQ,EAC/B,GAAI,CAAA3a,EAAS,cAEb,IAAI2a,KAAY/3D,EAAO,CACnB,MAAM4H,EAAW,KAAK,WAAW5H,EAAM+3D,CAAQ,EAAG3a,CAAQ,EACtDx1C,IAAa,SAGbi+C,EAAOkS,CAAQ,EAAInwD,EAEvC,CAIY,GAAIi+C,EAAOkS,CAAQ,GAAK,MACpB3a,EAAS,MAAQ,cACjBA,EAAS,eAAgB,CACzB,MAAMib,EAAcr4D,EAAMo9C,EAAS,eAAe,IAAI,EACtD,GAAIib,EAAa,CACb,MAAMC,EAAqBD,EAAYjb,EAAS,eAAe,QAAQ,QAAQ,IAAI,EAC/Ekb,GAAsB,OACtBzS,EAAOkS,CAAQ,EAAIO,EAE3C,CACgBlb,EAAS,cAAc,QAAQ,IAC/C,EACA,CACQ,YAAK,QACEyI,CACf,CACI,gBAAgB7lD,EAAOuzC,EAAM,CACzB,GAAI,KAAK,MAAQ,KAAK,eAGlB,OAEJ,GAAIvzC,GAAS,KACT,OAAO,KACX,MAAMgyD,EAAS6F,GAAW73D,EAAOuzC,CAAI,EAC/BjxC,EAAM,CAAE,EACd,QAASnD,EAAI,EAAGA,EAAI6yD,EAAO,OAAQ7yD,IAC/BmD,EAAInD,CAAC,EAAI,KAAK,WAAW6yD,EAAO7yD,CAAC,EAAGo0C,EAAK,QAAQ,EAErD,OAAOjxC,CACf,CACI,eAAetC,EAAOuzC,EAAM,CACxB,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KAIX,GAAIze,EAAK,SAAU,CACf,MAAMglB,EAAchlB,EAAK,aAAeA,EAAK,SAC7C,OAAIglB,GAAe,OAERxH,GAAYiB,EAAQ,YAAY,EAEvCuG,GAAe,OAERxH,GAAYiB,EAAQ,cAAc,EAEtCjB,GAAYiB,EAAQ,2BAA2B,CAClE,KAKY,QAAOxJ,GAAOwJ,EAAQ,8BAA8B,CAEhE,CACI,eAAehyD,EAAOuzC,EAAM,CACxB,MAAM,IAAI,MAAM,qCAAqC,CAC7D,CACI,iBAAiBvzC,EAAOuzC,EAAM,CAC1B,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KACX,GAAI,OAAOA,GAAU,SAEjB,OAAOA,EAEX,MAAM,IAAI,MAAM,6CAA6C,CACrE,CACI,oBAAoBhyD,EAAOuzC,EAAM,CAC7B,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,eAAevzC,EAAOuzC,EAAM,CACxB,OAAOskB,GAAW73D,EAAOuzC,CAAI,CACrC,CACI,kBAAkBvzC,EAAOuzC,EAAM,CAC3B,OAAOvzC,CACf,CAgBA,CACO,SAASw4D,GAASx4D,EAAOi9C,EAAU,CACtC,GAAIj9C,GAAS,KAGT,OAAIi9C,EACOj9C,EAEJ,KAOX,GALIi9C,IAAa,QACT,cAAej9C,IACfi9C,EAAWj9C,EAAM,WAGrB,CAACi9C,EACD,KAAM,8BAEV,MAAI,UAAWA,EACJ,IAAIkb,GAAiB,EAAC,YAAYn4D,EAAOi9C,CAAQ,EAGjD,IAAIkb,GAAiB,EAAC,WAAWn4D,EAAOi9C,CAAQ,CAE/D,CASO,SAASwb,GAAiBrwD,EAAQzF,EAAO,CAC5C,IAAI+1D,EAAMF,GAASpwD,CAAM,EACzB,GAAIzF,GAAS+1D,EAAK,CACd,MAAMC,EAAc,CAAE,EACtB,UAAWC,KAASj2D,EACZi2D,KAASF,IACTC,EAAYC,CAAK,EAAIF,EAAIE,CAAK,GAGtC,OAAOD,CACf,CACI,OAAOD,CACX,CAgBA,MAAMG,WAAuBnB,EAAQ,CAEjC,YAAY9mD,EAAS,CACjB,MAAO,EAFXw6C,GAAA,gBAGI,KAAK,QAAUx6C,CACvB,CACI,YAAY5Q,EAAOuzC,EAAM,CACrB,GAAIvzC,GAAS,KACT,OAAOA,EACX,GAAI,gBAAiBuzC,GAAQA,EAAK,YAC9B,OAAO,KAAK,WAAWvzC,EAAMuzC,EAAK,YAAY,IAAI,EAAGA,EAAK,WAAW,EAKrE,GAAI,CACA,OAAO,KAAK,UAAUvzC,EAAO,CAACwmC,EAAGhjC,IAAMgjC,IAAM,YAAc,OAAYA,EAAI,GAAKhjC,EAAIA,CAAC,CACrG,MACkB,CACF,OAAOxD,EAAM,eAAgB,CAC7C,CAEA,CACI,gBAAgBA,EAAOuzC,EAAM,OACzB,GAAIvzC,GAAS,KACT,OAAO,KAIX,GAHAA,EAAQ63D,GAAW73D,EAAOuzC,CAAI,EAG1BvzC,EAAM,QAAU,EAChB,MAAO,GACX,KAAM,CAAE,mBAAA84D,EAAqB,EAAG,yBAAAC,EAA2B,IAAI,IAAKt1D,EAAA,KAAK,UAAL,YAAAA,EAAc,aAAc,CAAE,EAClG,GAAIzD,EAAM,QAAU84D,EAAoB,CACpC,IAAIE,EAAWzlB,EAAK,SACpB,MAAI,eAAgBA,IAChBylB,EAAWzlB,EAAK,WAAW,kBAC3BvzC,EAAQA,EAAM,IAAKb,GAAMA,EAAEo0C,EAAK,WAAW,kBAAkB,IAAI,CAAC,GAE/DvzC,EACF,IAAKi5D,GAAc,KAAK,WAAWA,EAAWD,CAAQ,GAAK,KAC5E,EACiB,KAAKD,CAAwB,CAC9C,CACQ,OAAQ/4D,EAAM,OAAO,eAAc,EAAK,SAAWA,EAAM,QAAU,EAAI,GAAK,IACpF,CACI,eAAeA,EAAOuzC,EAAM,CACxB,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KACX,MAAMkH,EAAW3lB,EAAK,QAAQ,YAAYvzC,CAAK,EAI/C,OAAKk5D,EAEEA,EAAS,YADLlH,EAAO,eAAgB,CAE1C,CACI,eAAehyD,EAAOuzC,EAAM,CACxB,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KACX,IAAImH,EACAC,EACAC,EAAsB,GAC1B,GAAI,KAAK,QAAS,CACd,GAAI,CAAE,OAAQC,CAAmB,EAAG,KAAK,QACzC,GAAIA,EACA,GAAI,OAAOA,GAAqB,SAC5BH,EAAeG,UAEV,aAAcA,EAAmB,CACtC,KAAM,CAAE,UAAAC,EAAY,GACpB,eAAAC,EAAiB,EAAK,EAAMF,EAC5B,OAAO1O,IAAoBoH,EAAQ,CAAE,UAAAuH,EAAW,eAAAC,CAAc,CAAE,CACpF,MAEoBL,EAAeG,EAAkB,OACjCF,EAAgBE,CAGpC,CACQ,GAAI,CAACH,EAED,OADAE,EAAsB,GACd9lB,EAAK,SAAQ,CACjB,IAAK,OACD4lB,EAAe,WACf,MACJ,IAAK,OACDA,EAAe,aACf,MACJ,QACIA,EAAe,sBACf,KACpB,CAKQ,OAAIE,GAAuB,CAACD,EACjBrI,GAAYiB,EAAQmH,CAAY,EAEvCC,GAAA,MAAAA,EAAe,SACRzD,IAAiB3D,EAAQoH,EAAc,SAAUD,EAAcC,CAAa,EAEhF5Q,GAAOwJ,EAAQmH,EAAcC,CAAa,CACzD,CACI,eAAep5D,EAAOuzC,EAAM,CACxB,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,OAAIye,GAAU,KACH,KACPA,aAAkB,KACXA,EAAO,KAEdA,aAAkB,KACX,GAAGA,EAAO,IAAI,KAAKA,EAAO,IAAI,SAElC,IACf,CACI,iBAAiBhyD,EAAOuzC,EAAM,CAC1B,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,GAAIye,GAAU,KACV,OAAO,KACX,GAAI,OAAOA,GAAU,SAAU,CAC3B,IAAIyH,EAAU,EACd,KAAOzH,EAAOA,EAAO,OAAS,EAAIyH,CAAO,GAAK,KAC1CA,IAEJ,MAAO,IADO,GAAKzH,EAAO,OAAS,GAAKyH,GACxB,eAAc,CAAE,QAC5C,CACQ,MAAO,GAAGzH,EAAO,WAAW,eAAc,CAAE,QACpD,CACI,oBAAoBhyD,EAAOuzC,EAAM,CAC7B,MAAMye,EAAS6F,GAAW73D,EAAOuzC,CAAI,EACrC,OAAIye,GAAU,KACH,KACP,OAAOA,GAAU,SAKVA,EAAO,SAAU,EAErBA,EAAO,eAAgB,CACtC,CACI,kBAAkBhyD,EAAOuzC,EAAM,CAC3B,OAAI,OAAOvzC,GAAS,SACTA,EACP,OAAOA,GAAS,UAEhB,OAAOA,GAAS,UAAYA,EACrBA,EAAM,SAAU,EACpB,IACf,CACA,CAEA,MAAM05D,GAAwB,IAAIb,GAK3B,SAASc,IAAa53D,EAAM6O,EAAS,CACxC,MAAMgpD,EAAY73D,EAAK,UACvB,GAAI,CAAC63D,EACD,KAAM,mCAEV,OAAQhpD,EAAU,IAAIioD,GAAejoD,CAAO,EAAI8oD,IAAuB,YAAY33D,EAAM63D,CAAS,CACtG,CAOO,SAASC,IAAY93D,EAAMoqB,EAAMvb,EAAS,CAC7C,MAAMwsC,EAAWJ,GAAgBj7C,EAAK,UAAWoqB,CAAI,EACrD,IAAInsB,EAAQ+B,EAAKq7C,EAAS,IAAI,EAC9B,OAAQxsC,EAAU,IAAIioD,GAAejoD,CAAO,EAAI8oD,IAAuB,WAAW15D,EAAOo9C,CAAQ,CACrG,CAOO,SAAS0c,IAAa95D,EAAOi9C,EAAUrsC,EAAS,CACnD,OAAQA,EAAU,IAAIioD,GAAejoD,CAAO,EAAI8oD,IAAuB,WAAW15D,EAAOi9C,CAAQ,CACrG,CACA,MAAM8c,GAAuB,OAAQ,EAC9B,SAASC,GAAkBzC,EAAKj2D,EAAK/C,EAAK,CAAE,SAAA07D,EAAW17D,EAAK,KAAAgd,EAAO,UAAW,MAAAq0B,EAAO,UAAAE,CAAS,EAAM,GAAI,OAC3G,GAAI7sC,GAAM3B,CAAG,GAAK,OAAO/C,GAAO,UAAYA,IAAQ,QAChD,OAAOy7D,GAAkBzC,EAAKj2D,EAAK,QAAS,CAAE,SAAU/C,EAAK,EAEjE,GAAI,OAAOA,GAAO,SAGd,OAAOy7D,GAAkBzC,EAAKj2D,EAAK,QAAS/C,CAAG,EAEnD,IAAI27D,EAAS,GACbt6C,GAAc,IAAM,CAChBs6C,EAAS,EACjB,EAAO5C,GAAoBC,CAAG,CAAC,EAC3B73C,GAAY,IAAM,OACdw6C,EAAS,GACTC,GAAa12D,EAAA8zD,EAAI,SAAJ,YAAA9zD,EAAY,MAAMw2D,EAAS,CAChD,EAAO3C,GAAoBC,CAAG,CAAC,EAC3B,MAAM3nD,EAAetO,EAAI/C,CAAG,EACtB0+C,EAAW37C,GAAA,YAAAA,EAAK,UAEtBi2D,EAAI,OAAO,IAAMj2D,EAAI/C,CAAG,EAAIiF,GAAM,aAC9B,GAAI02D,EACA,OAEJ,GAAI,CAAC3C,EAAI,SAAW,CAACA,EAAI,OACrB,MAAM,IAAI,MAAM,sFAAsF,EAE1G,MAAM6C,EAAW,CACb,GACC7C,EAAI,QAAQwC,EAAoB,GAAKxC,EAAI,OAAO,MACjD,CAAC0C,CAAQ,EAAGz2D,GAAK,MAAQA,IAAM,GACzB,OACAssC,EACIA,EAAUtsC,CAAC,GAETC,EAAAw5C,GAAA,YAAAA,EAAU,SAAV,MAAAx5C,EAAmBlF,IACbwgD,EAAAyZ,GAASh1D,EAAGy5C,EAAS,OAAO1+C,CAAG,CAAC,IAAhC,YAAAwgD,EAAmC,YACnCE,EAAAhC,GAAA,YAAAA,EAAU,QAAV,MAAAgC,EAAkB1gD,IACdygD,EAAAwZ,GAASh1D,EAAGy5C,EAAS,MAAM1+C,CAAG,CAAC,IAA/B,YAAAygD,EAAkC,WAGhC,OAAOx7C,CAAC,GAAK,MACxC,EASD+zD,EAAI,QAAQwC,EAAoB,EAAIK,EAEpCxmD,GAAS,IAAM,OAAO2jD,EAAI,QAAQwC,EAAoB,CAAC,EACvDxC,EAAI,QAAQh8C,CAAI,EAAE,CACd,MAAO6+C,CACV,GAAE,MAAOz0D,GAAQ,EAAG,CAC7B,CAAK,EACD,MAAMw0D,EAAgB32D,GAAM,SAGxBA,EAAI,MAAM,QAAQA,CAAC,EAAIA,EAAE,CAAC,EAAIA,EAC9BlC,EAAI/C,CAAG,EAEHiF,GAAK,KACCoM,EAEEggC,EACMA,EAAMpsC,CAAC,GAELC,EAAAw5C,GAAA,YAAAA,EAAU,SAAV,MAAAx5C,EAAmBlF,GACb25D,GAAW10D,EAAGy5C,EAAS,OAAO1+C,CAAG,CAAC,GAClCwgD,EAAA9B,GAAA,YAAAA,EAAU,QAAV,MAAA8B,EAAkBxgD,GACd25D,GAAW10D,EAAGy5C,EAAS,MAAM1+C,CAAG,CAAC,EAG/BiF,CACnC,EAED+zD,EAAI,OAAO,WAAM,OAAA9zD,EAAA8zD,EAAI,SAAJ,YAAA9zD,EAAY,MAAMw2D,IAAW,MAAOz2D,GAAM,CACnDi0D,KAUA,MAAMF,EAAI,UAAW,EACjB2C,GAAU5C,GAAoBC,CAAG,EAAE,cAI3C4C,EAAa32D,CAAC,CACtB,CAAK,EAED22D,GAAa12D,EAAA8zD,EAAI,SAAJ,YAAA9zD,EAAY,MAAMw2D,EAAS,CAC5C,CACO,SAASI,IAAqB/4D,EAAK/C,EAAKqS,EAAS,OACpD,MAAM2mD,GAAM9zD,EAAA0X,GAAkB,IAAlB,YAAA1X,EAAsB,MAClC,GAAI,CAAC8zD,EACD,MAAM,IAAI,MAAM,iIAAiI,EACrJ,OAAOyC,GAAkBzC,EAAKj2D,EAAK/C,EAAKqS,CAAO,CACnD,CAiCO,SAAS0pD,IAAmB3qD,EAAQ,CAOvC,OAAOxE,GAASwE,CAAM,CAC1B,CCzwBe,SAAS4qD,GAAKj6D,EAAI2I,EAAS,CACxC,OAAO,UAAgB,CACrB,OAAO3I,EAAG,MAAM2I,EAAS,SAAS,CACnC,CACH,CCAA,KAAM,UAACuxD,GAAQ,EAAI,OAAO,UACpB,CAACC,iBAAc,EAAI,OAEnBC,IAAUn6D,GAASo6D,GAAS,CAC9B,MAAMt8D,EAAMm8D,IAAS,KAAKG,CAAK,EAC/B,OAAOp6D,EAAMlC,CAAG,IAAMkC,EAAMlC,CAAG,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAE,YAAW,EACnE,GAAG,OAAO,OAAO,IAAI,CAAC,EAEhBu8D,GAAcnzD,IAClBA,EAAOA,EAAK,YAAa,EACjBkzD,GAAUD,GAAOC,CAAK,IAAMlzD,GAGhCozD,GAAapzD,GAAQkzD,GAAS,OAAOA,IAAUlzD,EAS/C,CAACnI,UAAO,EAAI,MASZw7D,GAAcD,GAAW,WAAW,EAS1C,SAASE,IAASv8D,EAAK,CACrB,OAAOA,IAAQ,MAAQ,CAACs8D,GAAYt8D,CAAG,GAAKA,EAAI,cAAgB,MAAQ,CAACs8D,GAAYt8D,EAAI,WAAW,GAC/FkB,GAAWlB,EAAI,YAAY,QAAQ,GAAKA,EAAI,YAAY,SAASA,CAAG,CAC3E,CASA,MAAMw8D,GAAgBJ,GAAW,aAAa,EAU9C,SAASK,IAAkBz8D,EAAK,CAC9B,IAAIoL,EACJ,OAAK,OAAO,YAAgB,KAAiB,YAAY,OACvDA,EAAS,YAAY,OAAOpL,CAAG,EAE/BoL,EAAUpL,GAASA,EAAI,QAAYw8D,GAAcx8D,EAAI,MAAM,EAEtDoL,CACT,CASA,MAAMjK,IAAWk7D,GAAW,QAAQ,EAQ9Bn7D,GAAam7D,GAAW,UAAU,EASlCK,GAAWL,GAAW,QAAQ,EAS9Bh7D,GAAY86D,GAAUA,IAAU,MAAQ,OAAOA,GAAU,SAQzDj4B,IAAYi4B,GAASA,IAAU,IAAQA,IAAU,GASjDz6D,GAAiB1B,GAAQ,CAC7B,GAAIk8D,GAAOl8D,CAAG,IAAM,SAClB,MAAO,GAGT,MAAM28D,EAAYV,GAAej8D,CAAG,EACpC,OAAQ28D,IAAc,MAAQA,IAAc,OAAO,WAAa,OAAO,eAAeA,CAAS,IAAM,OAAS,EAAE,OAAO,eAAe38D,IAAQ,EAAE,OAAO,YAAYA,EACrK,EASMmiD,IAASia,GAAW,MAAM,EAS1BQ,IAASR,GAAW,MAAM,EAS1BS,IAAST,GAAW,MAAM,EAS1BU,IAAaV,GAAW,UAAU,EASlCW,IAAY/8D,GAAQqB,GAASrB,CAAG,GAAKkB,GAAWlB,EAAI,IAAI,EASxDg9D,IAAcb,GAAU,CAC5B,IAAI3E,EACJ,OAAO2E,IACJ,OAAO,UAAa,YAAcA,aAAiB,UAClDj7D,GAAWi7D,EAAM,MAAM,KACpB3E,EAAO0E,GAAOC,CAAK,KAAO,YAE1B3E,IAAS,UAAYt2D,GAAWi7D,EAAM,QAAQ,GAAKA,EAAM,SAAQ,IAAO,qBAIjF,EASMc,IAAoBb,GAAW,iBAAiB,EAEhD,CAACc,IAAkBC,IAAWC,IAAYC,GAAS,EAAI,CAAC,iBAAkB,UAAW,WAAY,SAAS,EAAE,IAAIjB,EAAU,EAS1Hj1B,IAAQtnC,GAAQA,EAAI,KACxBA,EAAI,KAAI,EAAKA,EAAI,QAAQ,qCAAsC,EAAE,EAiBnE,SAASy9D,GAAQx6D,EAAKhB,EAAI,CAAC,WAAAy7D,EAAa,EAAK,EAAI,GAAI,CAEnD,GAAIz6D,IAAQ,MAAQ,OAAOA,EAAQ,IACjC,OAGF,IAAInC,EACA0E,EAQJ,GALI,OAAOvC,GAAQ,WAEjBA,EAAM,CAACA,CAAG,GAGRhC,GAAQgC,CAAG,EAEb,IAAKnC,EAAI,EAAG0E,EAAIvC,EAAI,OAAQnC,EAAI0E,EAAG1E,IACjCmB,EAAG,KAAK,KAAMgB,EAAInC,CAAC,EAAGA,EAAGmC,CAAG,MAEzB,CAEL,MAAMghB,EAAOy5C,EAAa,OAAO,oBAAoBz6D,CAAG,EAAI,OAAO,KAAKA,CAAG,EACrE+zB,EAAM/S,EAAK,OACjB,IAAI/jB,EAEJ,IAAKY,EAAI,EAAGA,EAAIk2B,EAAKl2B,IACnBZ,EAAM+jB,EAAKnjB,CAAC,EACZmB,EAAG,KAAK,KAAMgB,EAAI/C,CAAG,EAAGA,EAAK+C,CAAG,CAEtC,CACA,CAEA,SAAS0iD,GAAQ1iD,EAAK/C,EAAK,CACzBA,EAAMA,EAAI,YAAa,EACvB,MAAM+jB,EAAO,OAAO,KAAKhhB,CAAG,EAC5B,IAAInC,EAAImjB,EAAK,OACTlf,EACJ,KAAOjE,KAAM,GAEX,GADAiE,EAAOkf,EAAKnjB,CAAC,EACTZ,IAAQ6E,EAAK,cACf,OAAOA,EAGX,OAAO,IACT,CAEA,MAAM44D,GAEA,OAAO,WAAe,IAAoB,WACvC,OAAO,KAAS,IAAc,KAAQ,OAAO,OAAW,IAAc,OAAS,OAGlFC,GAAoB7yC,GAAY,CAAC0xC,GAAY1xC,CAAO,GAAKA,IAAY4yC,GAoB3E,SAASE,IAAmC,CAC1C,KAAM,CAAC,SAAAC,CAAQ,EAAIF,GAAiB,IAAI,GAAK,MAAQ,CAAE,EACjDryD,EAAS,CAAE,EACXwyD,EAAc,CAAC59D,EAAKD,IAAQ,CAChC,MAAM89D,EAAYF,GAAYnY,GAAQp6C,EAAQrL,CAAG,GAAKA,EAClD2B,GAAc0J,EAAOyyD,CAAS,CAAC,GAAKn8D,GAAc1B,CAAG,EACvDoL,EAAOyyD,CAAS,EAAIH,GAAMtyD,EAAOyyD,CAAS,EAAG79D,CAAG,EACvC0B,GAAc1B,CAAG,EAC1BoL,EAAOyyD,CAAS,EAAIH,GAAM,GAAI19D,CAAG,EACxBc,GAAQd,CAAG,EACpBoL,EAAOyyD,CAAS,EAAI79D,EAAI,MAAO,EAE/BoL,EAAOyyD,CAAS,EAAI79D,CAE1B,EAEE,QAASW,EAAI,EAAG0E,EAAI,UAAU,OAAQ1E,EAAI0E,EAAG1E,IAC3C,UAAUA,CAAC,GAAK28D,GAAQ,UAAU38D,CAAC,EAAGi9D,CAAW,EAEnD,OAAOxyD,CACT,CAYA,MAAM7K,IAAS,CAACgW,EAAGC,EAAG/L,EAAS,CAAC,WAAA8yD,CAAU,EAAG,MAC3CD,GAAQ9mD,EAAG,CAACxW,EAAKD,IAAQ,CACnB0K,GAAWvJ,GAAWlB,CAAG,EAC3BuW,EAAExW,CAAG,EAAIg8D,GAAK/7D,EAAKyK,CAAO,EAE1B8L,EAAExW,CAAG,EAAIC,CAEf,EAAK,CAAC,WAAAu9D,CAAU,CAAC,EACRhnD,GAUHunD,IAAYn/B,IACZA,EAAQ,WAAW,CAAC,IAAM,QAC5BA,EAAUA,EAAQ,MAAM,CAAC,GAEpBA,GAYHo/B,IAAW,CAACtR,EAAauR,EAAkB75D,EAAO85D,IAAgB,CACtExR,EAAY,UAAY,OAAO,OAAOuR,EAAiB,UAAWC,CAAW,EAC7ExR,EAAY,UAAU,YAAcA,EACpC,OAAO,eAAeA,EAAa,QAAS,CAC1C,MAAOuR,EAAiB,SAC5B,CAAG,EACD75D,GAAS,OAAO,OAAOsoD,EAAY,UAAWtoD,CAAK,CACrD,EAWM+5D,IAAe,CAACC,EAAWC,EAASC,EAAQC,IAAe,CAC/D,IAAIn6D,EACAxD,EACAgtB,EACJ,MAAMtD,EAAS,CAAE,EAIjB,GAFA+zC,EAAUA,GAAW,CAAE,EAEnBD,GAAa,KAAM,OAAOC,EAE9B,EAAG,CAGD,IAFAj6D,EAAQ,OAAO,oBAAoBg6D,CAAS,EAC5Cx9D,EAAIwD,EAAM,OACHxD,KAAM,GACXgtB,EAAOxpB,EAAMxD,CAAC,GACT,CAAC29D,GAAcA,EAAW3wC,EAAMwwC,EAAWC,CAAO,IAAM,CAAC/zC,EAAOsD,CAAI,IACvEywC,EAAQzwC,CAAI,EAAIwwC,EAAUxwC,CAAI,EAC9BtD,EAAOsD,CAAI,EAAI,IAGnBwwC,EAAYE,IAAW,IAASpC,GAAekC,CAAS,CAC5D,OAAWA,IAAc,CAACE,GAAUA,EAAOF,EAAWC,CAAO,IAAMD,IAAc,OAAO,WAEtF,OAAOC,CACT,EAWMG,IAAW,CAAC1+D,EAAK+qC,EAAcmB,IAAa,CAChDlsC,EAAM,OAAOA,CAAG,GACZksC,IAAa,QAAaA,EAAWlsC,EAAI,UAC3CksC,EAAWlsC,EAAI,QAEjBksC,GAAYnB,EAAa,OACzB,MAAM4zB,EAAY3+D,EAAI,QAAQ+qC,EAAcmB,CAAQ,EACpD,OAAOyyB,IAAc,IAAMA,IAAczyB,CAC3C,EAUM0yB,IAAWtC,GAAU,CACzB,GAAI,CAACA,EAAO,OAAO,KACnB,GAAIr7D,GAAQq7D,CAAK,EAAG,OAAOA,EAC3B,IAAIx7D,EAAIw7D,EAAM,OACd,GAAI,CAACO,GAAS/7D,CAAC,EAAG,OAAO,KACzB,MAAMF,EAAM,IAAI,MAAME,CAAC,EACvB,KAAOA,KAAM,GACXF,EAAIE,CAAC,EAAIw7D,EAAMx7D,CAAC,EAElB,OAAOF,CACT,EAWMi+D,KAAgBC,GAEbxC,GACEwC,GAAcxC,aAAiBwC,GAEvC,OAAO,WAAe,KAAe1C,GAAe,UAAU,CAAC,EAU5D2C,IAAe,CAAC97D,EAAKhB,IAAO,CAGhC,MAAMwI,GAFYxH,GAAOA,EAAI,OAAO,QAAQ,GAEjB,KAAKA,CAAG,EAEnC,IAAIsI,EAEJ,MAAQA,EAASd,EAAS,KAAI,IAAO,CAACc,EAAO,MAAM,CACjD,MAAMyzD,EAAOzzD,EAAO,MACpBtJ,EAAG,KAAKgB,EAAK+7D,EAAK,CAAC,EAAGA,EAAK,CAAC,CAAC,CACjC,CACA,EAUMC,IAAW,CAACC,EAAQl/D,IAAQ,CAChC,IAAI2yD,EACJ,MAAM/xD,EAAM,CAAE,EAEd,MAAQ+xD,EAAUuM,EAAO,KAAKl/D,CAAG,KAAO,MACtCY,EAAI,KAAK+xD,CAAO,EAGlB,OAAO/xD,CACT,EAGMu+D,IAAa5C,GAAW,iBAAiB,EAEzC6C,IAAcp/D,GACXA,EAAI,cAAc,QAAQ,wBAC/B,SAAkB0pB,EAAG21C,EAAIC,EAAI,CAC3B,OAAOD,EAAG,YAAW,EAAKC,CAChC,CACG,EAIGv+D,IAAkB,CAAC,CAAC,eAAAA,CAAc,IAAM,CAACkC,EAAK6qB,IAAS/sB,EAAe,KAAKkC,EAAK6qB,CAAI,GAAG,OAAO,SAAS,EASvGyxC,IAAWhD,GAAW,QAAQ,EAE9BiD,GAAoB,CAACv8D,EAAKw8D,IAAY,CAC1C,MAAMrB,EAAc,OAAO,0BAA0Bn7D,CAAG,EAClDy8D,EAAqB,CAAE,EAE7BjC,GAAQW,EAAa,CAACr4C,EAAY3hB,IAAS,CACzC,IAAIH,GACCA,EAAMw7D,EAAQ15C,EAAY3hB,EAAMnB,CAAG,KAAO,KAC7Cy8D,EAAmBt7D,CAAI,EAAIH,GAAO8hB,EAExC,CAAG,EAED,OAAO,iBAAiB9iB,EAAKy8D,CAAkB,CACjD,EAOMC,IAAiB18D,GAAQ,CAC7Bu8D,GAAkBv8D,EAAK,CAAC8iB,EAAY3hB,IAAS,CAE3C,GAAI/C,GAAW4B,CAAG,GAAK,CAAC,YAAa,SAAU,QAAQ,EAAE,QAAQmB,CAAI,IAAM,GACzE,MAAO,GAGT,MAAMzC,EAAQsB,EAAImB,CAAI,EAEtB,GAAK/C,GAAWM,CAAK,EAIrB,IAFAokB,EAAW,WAAa,GAEpB,aAAcA,EAAY,CAC5BA,EAAW,SAAW,GACtB,MACN,CAESA,EAAW,MACdA,EAAW,IAAM,IAAM,CACrB,MAAM,MAAM,qCAAwC3hB,EAAO,GAAI,CAChE,GAEP,CAAG,CACH,EAEMw7D,IAAc,CAACC,EAAe1W,IAAc,CAChD,MAAMlmD,EAAM,CAAE,EAER68D,EAAUl/D,GAAQ,CACtBA,EAAI,QAAQe,GAAS,CACnBsB,EAAItB,CAAK,EAAI,EACnB,CAAK,CACL,EAEEV,UAAQ4+D,CAAa,EAAIC,EAAOD,CAAa,EAAIC,EAAO,OAAOD,CAAa,EAAE,MAAM1W,CAAS,CAAC,EAEvFlmD,CACT,EAEMimC,IAAO,IAAM,GAEb62B,IAAiB,CAACp+D,EAAO4P,IACtB5P,GAAS,MAAQ,OAAO,SAASA,EAAQ,CAACA,CAAK,EAAIA,EAAQ4P,EAG9DyuD,GAAQ,6BAERC,GAAQ,aAERC,GAAW,CACf,MAAAD,GACA,MAAAD,GACA,YAAaA,GAAQA,GAAM,cAAgBC,EAC7C,EAEME,IAAiB,CAACC,EAAO,GAAIC,EAAWH,GAAS,cAAgB,CACrE,IAAIlgE,EAAM,GACV,KAAM,CAAC,OAAA83C,CAAM,EAAIuoB,EACjB,KAAOD,KACLpgE,GAAOqgE,EAAS,KAAK,OAAQ,EAAGvoB,EAAO,CAAC,EAG1C,OAAO93C,CACT,EASA,SAASsgE,IAAoBhE,EAAO,CAClC,MAAO,CAAC,EAAEA,GAASj7D,GAAWi7D,EAAM,MAAM,GAAKA,EAAM,OAAO,WAAW,IAAM,YAAcA,EAAM,OAAO,QAAQ,EAClH,CAEA,MAAMiE,IAAgBt9D,GAAQ,CAC5B,MAAMu9D,EAAQ,IAAI,MAAM,EAAE,EAEpBC,EAAQ,CAACnvD,EAAQ,IAAM,CAE3B,GAAI9P,GAAS8P,CAAM,EAAG,CACpB,GAAIkvD,EAAM,QAAQlvD,CAAM,GAAK,EAC3B,OAGF,GAAG,EAAE,WAAYA,GAAS,CACxBkvD,EAAM,CAAC,EAAIlvD,EACX,MAAMnI,EAASlI,GAAQqQ,CAAM,EAAI,CAAE,EAAG,CAAE,EAExC,OAAAmsD,GAAQnsD,EAAQ,CAAC3P,EAAOzB,IAAQ,CAC9B,MAAMwgE,EAAeD,EAAM9+D,EAAO,EAAI,CAAC,EACvC,CAAC86D,GAAYiE,CAAY,IAAMv3D,EAAOjJ,CAAG,EAAIwgE,EACvD,CAAS,EAEDF,EAAM,CAAC,EAAI,OAEJr3D,CACf,CACA,CAEI,OAAOmI,CACX,EAEE,OAAOmvD,EAAMx9D,EAAK,CAAC,CACrB,EAEM09D,IAAYpE,GAAW,eAAe,EAEtCqE,IAActE,GAClBA,IAAU96D,GAAS86D,CAAK,GAAKj7D,GAAWi7D,CAAK,IAAMj7D,GAAWi7D,EAAM,IAAI,GAAKj7D,GAAWi7D,EAAM,KAAK,EAK/FuE,IAAiB,CAACC,EAAuBC,IACzCD,EACK,aAGFC,GAAwB,CAAC/vB,EAAOgwB,KACrCrD,GAAQ,iBAAiB,UAAW,CAAC,CAAC,OAAArsD,EAAQ,KAAAgU,CAAI,IAAM,CAClDhU,IAAWqsD,IAAWr4C,IAAS0rB,GACjCgwB,EAAU,QAAUA,EAAU,QAAS,CAE1C,EAAE,EAAK,EAEA1uD,GAAO,CACb0uD,EAAU,KAAK1uD,CAAE,EACjBqrD,GAAQ,YAAY3sB,EAAO,GAAG,CACpC,IACK,SAAS,KAAK,QAAQ,GAAI,CAAE,GAAK1+B,GAAO,WAAWA,CAAE,GAExD,OAAO,cAAiB,WACxBjR,GAAWs8D,GAAQ,WAAW,CAChC,EAEMsD,IAAO,OAAO,eAAmB,IACrC,eAAe,KAAKtD,EAAO,EAAM,OAAO,QAAY,KAAe,QAAQ,UAAYkD,GAI1EK,GAAA,CACf,QAAEjgE,GACF,cAAE07D,GACA,SAAAD,IACA,WAAAS,IACA,kBAAAP,IACF,SAAEt7D,IACF,SAAEu7D,GACF,UAAEx4B,IACF,SAAE7iC,GACF,cAAEK,GACA,iBAAAw7D,IACA,UAAAC,IACA,WAAAC,IACA,UAAAC,IACF,YAAEf,GACF,OAAEna,IACA,OAAAya,IACA,OAAAC,IACF,SAAEuC,IACF,WAAEl+D,GACA,SAAA67D,IACA,kBAAAE,IACA,aAAAyB,IACA,WAAA5B,IACA,QAAAQ,GACA,MAAAI,GACA,OAAAn9D,IACA,KAAA4mC,IACA,SAAA22B,IACA,SAAAC,IACA,aAAAG,IACA,OAAAhC,GACA,WAAAE,GACA,SAAAmC,IACA,QAAAE,IACA,aAAAG,IACA,SAAAE,IACA,WAAAE,IACF,eAAEp+D,GACA,WAAYA,GACZ,kBAAAy+D,GACA,cAAAG,IACA,YAAAC,IACA,YAAAR,IACF,KAAEl2B,IACA,eAAA62B,IACF,QAAEpa,GACA,OAAQgY,GACR,iBAAAC,GACA,SAAAsC,GACA,eAAAC,IACA,oBAAAG,IACA,aAAAC,IACA,UAAAI,IACF,WAAEC,IACA,aAAcC,GACd,KAAAI,GACF,ECxuBA,SAASE,GAAW7uB,EAAS8uB,EAAMC,EAAQC,EAASC,EAAU,CAC5D,MAAM,KAAK,IAAI,EAEX,MAAM,kBACR,MAAM,kBAAkB,KAAM,KAAK,WAAW,EAE9C,KAAK,MAAS,IAAI,MAAO,EAAE,MAG7B,KAAK,QAAUjvB,EACf,KAAK,KAAO,aACZ8uB,IAAS,KAAK,KAAOA,GACrBC,IAAW,KAAK,OAASA,GACzBC,IAAY,KAAK,QAAUA,GACvBC,IACF,KAAK,SAAWA,EAChB,KAAK,OAASA,EAAS,OAASA,EAAS,OAAS,KAEtD,CAEAC,GAAM,SAASL,GAAY,MAAO,CAChC,OAAQ,UAAkB,CACxB,MAAO,CAEL,QAAS,KAAK,QACd,KAAM,KAAK,KAEX,YAAa,KAAK,YAClB,OAAQ,KAAK,OAEb,SAAU,KAAK,SACf,WAAY,KAAK,WACjB,aAAc,KAAK,aACnB,MAAO,KAAK,MAEZ,OAAQK,GAAM,aAAa,KAAK,MAAM,EACtC,KAAM,KAAK,KACX,OAAQ,KAAK,MACd,CACL,CACA,CAAC,EAED,MAAM1E,GAAYqE,GAAW,UACvB/C,GAAc,CAAE,EAEtB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,iBAEF,EAAE,QAAQgD,GAAQ,CAChBhD,GAAYgD,CAAI,EAAI,CAAC,MAAOA,CAAI,CAClC,CAAC,EAED,OAAO,iBAAiBD,GAAY/C,EAAW,EAC/C,OAAO,eAAetB,GAAW,eAAgB,CAAC,MAAO,EAAI,CAAC,EAG9DqE,GAAW,KAAO,CAAC95D,EAAO+5D,EAAMC,EAAQC,EAASC,EAAUE,IAAgB,CACzE,MAAMC,EAAa,OAAO,OAAO5E,EAAS,EAE1C0E,UAAM,aAAan6D,EAAOq6D,EAAY,SAAgBz+D,EAAK,CACzD,OAAOA,IAAQ,MAAM,SACtB,EAAE6qB,GACMA,IAAS,cACjB,EAEDqzC,GAAW,KAAKO,EAAYr6D,EAAM,QAAS+5D,EAAMC,EAAQC,EAASC,CAAQ,EAE1EG,EAAW,MAAQr6D,EAEnBq6D,EAAW,KAAOr6D,EAAM,KAExBo6D,GAAe,OAAO,OAAOC,EAAYD,CAAW,EAE7CC,CACT,ECnGA,MAAAC,IAAe,KCaf,SAASC,GAAYtF,EAAO,CAC1B,OAAOkF,GAAM,cAAclF,CAAK,GAAKkF,GAAM,QAAQlF,CAAK,CAC1D,CASA,SAASuF,GAAe3hE,EAAK,CAC3B,OAAOshE,GAAM,SAASthE,EAAK,IAAI,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAIA,CACxD,CAWA,SAAS4hE,GAAU9pC,EAAM93B,EAAK6hE,EAAM,CAClC,OAAK/pC,EACEA,EAAK,OAAO93B,CAAG,EAAE,IAAI,SAAc8wC,EAAOlwC,EAAG,CAElD,OAAAkwC,EAAQ6wB,GAAe7wB,CAAK,EACrB,CAAC+wB,GAAQjhE,EAAI,IAAMkwC,EAAQ,IAAMA,CACzC,GAAE,KAAK+wB,EAAO,IAAM,EAAE,EALL7hE,CAMpB,CASA,SAAS8hE,IAAYphE,EAAK,CACxB,OAAO4gE,GAAM,QAAQ5gE,CAAG,GAAK,CAACA,EAAI,KAAKghE,EAAW,CACpD,CAEA,MAAMK,IAAaT,GAAM,aAAaA,GAAO,CAAE,EAAE,KAAM,SAAgB1zC,EAAM,CAC3E,MAAO,WAAW,KAAKA,CAAI,CAC7B,CAAC,EAyBD,SAASo0C,GAAWj/D,EAAKk/D,EAAU5vD,EAAS,CAC1C,GAAI,CAACivD,GAAM,SAASv+D,CAAG,EACrB,MAAM,IAAI,UAAU,0BAA0B,EAIhDk/D,EAAWA,GAAY,IAAyB,SAGhD5vD,EAAUivD,GAAM,aAAajvD,EAAS,CACpC,WAAY,GACZ,KAAM,GACN,QAAS,EACV,EAAE,GAAO,SAAiB6vD,EAAQ9wD,EAAQ,CAEzC,MAAO,CAACkwD,GAAM,YAAYlwD,EAAO8wD,CAAM,CAAC,CAC5C,CAAG,EAED,MAAMC,EAAa9vD,EAAQ,WAErB+vD,EAAU/vD,EAAQ,SAAWgwD,EAC7BR,EAAOxvD,EAAQ,KACfiwD,EAAUjwD,EAAQ,QAElBkwD,GADQlwD,EAAQ,MAAQ,OAAO,KAAS,KAAe,OACpCivD,GAAM,oBAAoBW,CAAQ,EAE3D,GAAI,CAACX,GAAM,WAAWc,CAAO,EAC3B,MAAM,IAAI,UAAU,4BAA4B,EAGlD,SAASI,EAAa/gE,EAAO,CAC3B,GAAIA,IAAU,KAAM,MAAO,GAE3B,GAAI6/D,GAAM,OAAO7/D,CAAK,EACpB,OAAOA,EAAM,YAAa,EAG5B,GAAI,CAAC8gE,GAAWjB,GAAM,OAAO7/D,CAAK,EAChC,MAAM,IAAIw/D,GAAW,8CAA8C,EAGrE,OAAIK,GAAM,cAAc7/D,CAAK,GAAK6/D,GAAM,aAAa7/D,CAAK,EACjD8gE,GAAW,OAAO,MAAS,WAAa,IAAI,KAAK,CAAC9gE,CAAK,CAAC,EAAI,OAAO,KAAKA,CAAK,EAG/EA,CACX,CAYE,SAAS4gE,EAAe5gE,EAAOzB,EAAK83B,EAAM,CACxC,IAAIp3B,EAAMe,EAEV,GAAIA,GAAS,CAACq2B,GAAQ,OAAOr2B,GAAU,UACrC,GAAI6/D,GAAM,SAASthE,EAAK,IAAI,EAE1BA,EAAMmiE,EAAaniE,EAAMA,EAAI,MAAM,EAAG,EAAE,EAExCyB,EAAQ,KAAK,UAAUA,CAAK,UAE3B6/D,GAAM,QAAQ7/D,CAAK,GAAKqgE,IAAYrgE,CAAK,IACxC6/D,GAAM,WAAW7/D,CAAK,GAAK6/D,GAAM,SAASthE,EAAK,IAAI,KAAOU,EAAM4gE,GAAM,QAAQ7/D,CAAK,GAGrF,OAAAzB,EAAM2hE,GAAe3hE,CAAG,EAExBU,EAAI,QAAQ,SAAcC,EAAIiL,EAAO,CACnC,EAAE01D,GAAM,YAAY3gE,CAAE,GAAKA,IAAO,OAASshE,EAAS,OAElDK,IAAY,GAAOV,GAAU,CAAC5hE,CAAG,EAAG4L,EAAOi2D,CAAI,EAAKS,IAAY,KAAOtiE,EAAMA,EAAM,KACnFwiE,EAAa7hE,CAAE,CAChB,CACX,CAAS,EACM,GAIX,OAAI+gE,GAAYjgE,CAAK,EACZ,IAGTwgE,EAAS,OAAOL,GAAU9pC,EAAM93B,EAAK6hE,CAAI,EAAGW,EAAa/gE,CAAK,CAAC,EAExD,GACX,CAEE,MAAM6+D,EAAQ,CAAE,EAEVmC,EAAiB,OAAO,OAAOV,IAAY,CAC/C,eAAAM,EACA,aAAAG,EACA,YAAAd,EACJ,CAAG,EAED,SAASgB,EAAMjhE,EAAOq2B,EAAM,CAC1B,GAAIwpC,IAAM,YAAY7/D,CAAK,EAE3B,IAAI6+D,EAAM,QAAQ7+D,CAAK,IAAM,GAC3B,MAAM,MAAM,kCAAoCq2B,EAAK,KAAK,GAAG,CAAC,EAGhEwoC,EAAM,KAAK7+D,CAAK,EAEhB6/D,GAAM,QAAQ7/D,EAAO,SAAcd,EAAIX,EAAK,EAC3B,EAAEshE,GAAM,YAAY3gE,CAAE,GAAKA,IAAO,OAASyhE,EAAQ,KAChEH,EAAUthE,EAAI2gE,GAAM,SAASthE,CAAG,EAAIA,EAAI,KAAI,EAAKA,EAAK83B,EAAM2qC,CAC7D,KAEc,IACbC,EAAM/hE,EAAIm3B,EAAOA,EAAK,OAAO93B,CAAG,EAAI,CAACA,CAAG,CAAC,CAEjD,CAAK,EAEDsgE,EAAM,IAAK,EACf,CAEE,GAAI,CAACgB,GAAM,SAASv+D,CAAG,EACrB,MAAM,IAAI,UAAU,wBAAwB,EAG9C,OAAA2/D,EAAM3/D,CAAG,EAEFk/D,CACT,CC5MA,SAASU,GAAO7iE,EAAK,CACnB,MAAM8iE,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,IACR,EACD,OAAO,mBAAmB9iE,CAAG,EAAE,QAAQ,mBAAoB,SAAkBwxC,EAAO,CAClF,OAAOsxB,EAAQtxB,CAAK,CACxB,CAAG,CACH,CAUA,SAASuxB,GAAqB/5B,EAAQz2B,EAAS,CAC7C,KAAK,OAAS,CAAE,EAEhBy2B,GAAUk5B,GAAWl5B,EAAQ,KAAMz2B,CAAO,CAC5C,CAEA,MAAMuqD,GAAYiG,GAAqB,UAEvCjG,GAAU,OAAS,SAAgB14D,EAAMzC,EAAO,CAC9C,KAAK,OAAO,KAAK,CAACyC,EAAMzC,CAAK,CAAC,CAChC,EAEAm7D,GAAU,SAAW,SAAkBkG,EAAS,CAC9C,MAAMC,EAAUD,EAAU,SAASrhE,EAAO,CACxC,OAAOqhE,EAAQ,KAAK,KAAMrhE,EAAOkhE,EAAM,CAC3C,EAAMA,GAEJ,OAAO,KAAK,OAAO,IAAI,SAAc7D,EAAM,CACzC,OAAOiE,EAAQjE,EAAK,CAAC,CAAC,EAAI,IAAMiE,EAAQjE,EAAK,CAAC,CAAC,CACnD,EAAK,EAAE,EAAE,KAAK,GAAG,CACjB,EC1CA,SAAS6D,IAAO1iE,EAAK,CACnB,OAAO,mBAAmBA,CAAG,EAC3B,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,OAAQ,GAAG,EACnB,QAAQ,QAAS,GAAG,EACpB,QAAQ,QAAS,GAAG,CACxB,CAWe,SAAS+iE,GAAS1zB,EAAKxG,EAAQz2B,EAAS,CAErD,GAAI,CAACy2B,EACH,OAAOwG,EAGT,MAAMyzB,EAAU1wD,GAAWA,EAAQ,QAAUswD,IAEvCM,EAAc5wD,GAAWA,EAAQ,UAEvC,IAAI6wD,EAUJ,GARID,EACFC,EAAmBD,EAAYn6B,EAAQz2B,CAAO,EAE9C6wD,EAAmB5B,GAAM,kBAAkBx4B,CAAM,EAC/CA,EAAO,SAAU,EACjB,IAAI+5B,GAAqB/5B,EAAQz2B,CAAO,EAAE,SAAS0wD,CAAO,EAG1DG,EAAkB,CACpB,MAAMC,EAAgB7zB,EAAI,QAAQ,GAAG,EAEjC6zB,IAAkB,KACpB7zB,EAAMA,EAAI,MAAM,EAAG6zB,CAAa,GAElC7zB,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAO4zB,CACnD,CAEE,OAAO5zB,CACT,CC1DA,MAAM8zB,EAAmB,CACvB,aAAc,CACZ,KAAK,SAAW,CAAE,CACtB,CAUE,IAAIC,EAAWC,EAAUjxD,EAAS,CAChC,YAAK,SAAS,KAAK,CACjB,UAAAgxD,EACA,SAAAC,EACA,YAAajxD,EAAUA,EAAQ,YAAc,GAC7C,QAASA,EAAUA,EAAQ,QAAU,IAC3C,CAAK,EACM,KAAK,SAAS,OAAS,CAClC,CASE,MAAMmD,EAAI,CACJ,KAAK,SAASA,CAAE,IAClB,KAAK,SAASA,CAAE,EAAI,KAE1B,CAOE,OAAQ,CACF,KAAK,WACP,KAAK,SAAW,CAAE,EAExB,CAYE,QAAQzT,EAAI,CACVu/D,GAAM,QAAQ,KAAK,SAAU,SAAwBv4C,EAAG,CAClDA,IAAM,MACRhnB,EAAGgnB,CAAC,CAEZ,CAAK,CACL,CACA,CClEA,MAAew6C,GAAA,CACb,kBAAmB,GACnB,kBAAmB,GACnB,oBAAqB,EACvB,ECHAC,IAAe,OAAO,gBAAoB,IAAc,gBAAkBX,GCD1EY,IAAe,OAAO,SAAa,IAAc,SAAW,KCA5DC,IAAe,OAAO,KAAS,IAAc,KAAO,KCErCC,IAAA,CACb,UAAW,GACX,QAAS,CACX,gBAAIC,IACJ,SAAIC,IACAC,QACD,EACD,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,MAAM,CAC5D,ECZMC,GAAgB,OAAO,OAAW,KAAe,OAAO,SAAa,IAErEC,GAAa,OAAO,WAAc,UAAY,WAAa,OAmB3DC,IAAwBF,KAC3B,CAACC,IAAc,CAAC,cAAe,eAAgB,IAAI,EAAE,QAAQA,GAAW,OAAO,EAAI,GAWhFE,IAEF,OAAO,kBAAsB,KAE7B,gBAAgB,mBAChB,OAAO,KAAK,eAAkB,WAI5BC,IAASJ,IAAiB,OAAO,SAAS,MAAQ,wNCvCzCK,GAAA,CACb,GAAG9C,IACH,GAAG8C,GACL,ECAe,SAASC,IAAiBj/C,EAAM/S,EAAS,CACtD,OAAO2vD,GAAW58C,EAAM,IAAIg/C,GAAS,QAAQ,gBAAmB,OAAO,OAAO,CAC5E,QAAS,SAAS3iE,EAAOzB,EAAK83B,EAAMwsC,EAAS,CAC3C,OAAIF,GAAS,QAAU9C,GAAM,SAAS7/D,CAAK,GACzC,KAAK,OAAOzB,EAAKyB,EAAM,SAAS,QAAQ,CAAC,EAClC,IAGF6iE,EAAQ,eAAe,MAAM,KAAM,SAAS,CACzD,CACG,EAAEjyD,CAAO,CAAC,CACb,CCNA,SAASkyD,IAAcrgE,EAAM,CAK3B,OAAOo9D,GAAM,SAAS,gBAAiBp9D,CAAI,EAAE,IAAIotC,GACxCA,EAAM,CAAC,IAAM,KAAO,GAAKA,EAAM,CAAC,GAAKA,EAAM,CAAC,CACpD,CACH,CASA,SAASkzB,IAAc9jE,EAAK,CAC1B,MAAMqC,EAAM,CAAE,EACRghB,EAAO,OAAO,KAAKrjB,CAAG,EAC5B,IAAIE,EACJ,MAAMk2B,EAAM/S,EAAK,OACjB,IAAI/jB,EACJ,IAAKY,EAAI,EAAGA,EAAIk2B,EAAKl2B,IACnBZ,EAAM+jB,EAAKnjB,CAAC,EACZmC,EAAI/C,CAAG,EAAIU,EAAIV,CAAG,EAEpB,OAAO+C,CACT,CASA,SAAS0hE,GAAexC,EAAU,CAChC,SAASyC,EAAU5sC,EAAMr2B,EAAOwH,EAAQ2C,EAAO,CAC7C,IAAI1H,EAAO4zB,EAAKlsB,GAAO,EAEvB,GAAI1H,IAAS,YAAa,MAAO,GAEjC,MAAMygE,EAAe,OAAO,SAAS,CAACzgE,CAAI,EACpC0gE,EAASh5D,GAASksB,EAAK,OAG7B,OAFA5zB,EAAO,CAACA,GAAQo9D,GAAM,QAAQr4D,CAAM,EAAIA,EAAO,OAAS/E,EAEpD0gE,GACEtD,GAAM,WAAWr4D,EAAQ/E,CAAI,EAC/B+E,EAAO/E,CAAI,EAAI,CAAC+E,EAAO/E,CAAI,EAAGzC,CAAK,EAEnCwH,EAAO/E,CAAI,EAAIzC,EAGV,CAACkjE,KAGN,CAAC17D,EAAO/E,CAAI,GAAK,CAACo9D,GAAM,SAASr4D,EAAO/E,CAAI,CAAC,KAC/C+E,EAAO/E,CAAI,EAAI,CAAE,GAGJwgE,EAAU5sC,EAAMr2B,EAAOwH,EAAO/E,CAAI,EAAG0H,CAAK,GAE3C01D,GAAM,QAAQr4D,EAAO/E,CAAI,CAAC,IACtC+E,EAAO/E,CAAI,EAAIsgE,IAAcv7D,EAAO/E,CAAI,CAAC,GAGpC,CAACygE,EACZ,CAEE,GAAIrD,GAAM,WAAWW,CAAQ,GAAKX,GAAM,WAAWW,EAAS,OAAO,EAAG,CACpE,MAAMl/D,EAAM,CAAE,EAEdu+D,UAAM,aAAaW,EAAU,CAAC/9D,EAAMzC,IAAU,CAC5CijE,EAAUH,IAAcrgE,CAAI,EAAGzC,EAAOsB,EAAK,CAAC,CAClD,CAAK,EAEMA,CACX,CAEE,OAAO,IACT,CCxEA,SAAS8hE,IAAgB90D,EAAUgjC,EAAQ+vB,EAAS,CAClD,GAAIxB,GAAM,SAASvxD,CAAQ,EACzB,GAAI,CACF,OAACgjC,GAAU,KAAK,OAAOhjC,CAAQ,EACxBuxD,GAAM,KAAKvxD,CAAQ,CAC3B,OAAQ1H,EAAG,CACV,GAAIA,EAAE,OAAS,cACb,MAAMA,CAEd,CAGE,SAAmB,KAAK,WAAW0H,CAAQ,CAC7C,CAEA,MAAMqW,GAAW,CAEf,aAAcm9C,GAEd,QAAS,CAAC,MAAO,OAAQ,OAAO,EAEhC,iBAAkB,CAAC,SAA0Bn+C,EAAM0/C,EAAS,CAC1D,MAAMC,EAAcD,EAAQ,eAAc,GAAM,GAC1CE,EAAqBD,EAAY,QAAQ,kBAAkB,EAAI,GAC/DE,EAAkB3D,GAAM,SAASl8C,CAAI,EAQ3C,GANI6/C,GAAmB3D,GAAM,WAAWl8C,CAAI,IAC1CA,EAAO,IAAI,SAASA,CAAI,GAGPk8C,GAAM,WAAWl8C,CAAI,EAGtC,OAAO4/C,EAAqB,KAAK,UAAUP,GAAer/C,CAAI,CAAC,EAAIA,EAGrE,GAAIk8C,GAAM,cAAcl8C,CAAI,GAC1Bk8C,GAAM,SAASl8C,CAAI,GACnBk8C,GAAM,SAASl8C,CAAI,GACnBk8C,GAAM,OAAOl8C,CAAI,GACjBk8C,GAAM,OAAOl8C,CAAI,GACjBk8C,GAAM,iBAAiBl8C,CAAI,EAE3B,OAAOA,EAET,GAAIk8C,GAAM,kBAAkBl8C,CAAI,EAC9B,OAAOA,EAAK,OAEd,GAAIk8C,GAAM,kBAAkBl8C,CAAI,EAC9B,OAAA0/C,EAAQ,eAAe,kDAAmD,EAAK,EACxE1/C,EAAK,SAAU,EAGxB,IAAI23C,EAEJ,GAAIkI,EAAiB,CACnB,GAAIF,EAAY,QAAQ,mCAAmC,EAAI,GAC7D,OAAOV,IAAiBj/C,EAAM,KAAK,cAAc,EAAE,SAAU,EAG/D,IAAK23C,EAAauE,GAAM,WAAWl8C,CAAI,IAAM2/C,EAAY,QAAQ,qBAAqB,EAAI,GAAI,CAC5F,MAAMG,EAAY,KAAK,KAAO,KAAK,IAAI,SAEvC,OAAOlD,GACLjF,EAAa,CAAC,UAAW33C,CAAI,EAAIA,EACjC8/C,GAAa,IAAIA,EACjB,KAAK,cACN,CACT,CACA,CAEI,OAAID,GAAmBD,GACrBF,EAAQ,eAAe,mBAAoB,EAAK,EACzCD,IAAgBz/C,CAAI,GAGtBA,CACX,CAAG,EAED,kBAAmB,CAAC,SAA2BA,EAAM,CACnD,MAAM+/C,EAAe,KAAK,cAAgB/+C,GAAS,aAC7Cg/C,EAAoBD,GAAgBA,EAAa,kBACjDE,EAAgB,KAAK,eAAiB,OAE5C,GAAI/D,GAAM,WAAWl8C,CAAI,GAAKk8C,GAAM,iBAAiBl8C,CAAI,EACvD,OAAOA,EAGT,GAAIA,GAAQk8C,GAAM,SAASl8C,CAAI,IAAOggD,GAAqB,CAAC,KAAK,cAAiBC,GAAgB,CAEhG,MAAMC,EAAoB,EADAH,GAAgBA,EAAa,oBACPE,EAEhD,GAAI,CACF,OAAO,KAAK,MAAMjgD,CAAI,CACvB,OAAQ/c,EAAG,CACV,GAAIi9D,EACF,MAAIj9D,EAAE,OAAS,cACP44D,GAAW,KAAK54D,EAAG44D,GAAW,iBAAkB,KAAM,KAAM,KAAK,QAAQ,EAE3E54D,CAEhB,CACA,CAEI,OAAO+c,CACX,CAAG,EAMD,QAAS,EAET,eAAgB,aAChB,eAAgB,eAEhB,iBAAkB,GAClB,cAAe,GAEf,IAAK,CACH,SAAUg/C,GAAS,QAAQ,SAC3B,KAAMA,GAAS,QAAQ,IACxB,EAED,eAAgB,SAAwBmB,EAAQ,CAC9C,OAAOA,GAAU,KAAOA,EAAS,GAClC,EAED,QAAS,CACP,OAAQ,CACN,OAAU,oCACV,eAAgB,MACtB,CACA,CACA,EAEAjE,GAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,OAAO,EAAIp2D,GAAW,CAC3Ekb,GAAS,QAAQlb,CAAM,EAAI,CAAE,CAC/B,CAAC,ECxJD,MAAMs6D,IAAoBlE,GAAM,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,YAC5B,CAAC,EAgBDmE,IAAeC,GAAc,CAC3B,MAAMjS,EAAS,CAAE,EACjB,IAAIzzD,EACAC,EACA,EAEJ,OAAAylE,GAAcA,EAAW,MAAM;AAAA,CAAI,EAAE,QAAQ,SAAgBC,EAAM,CACjE,EAAIA,EAAK,QAAQ,GAAG,EACpB3lE,EAAM2lE,EAAK,UAAU,EAAG,CAAC,EAAE,KAAM,EAAC,YAAa,EAC/C1lE,EAAM0lE,EAAK,UAAU,EAAI,CAAC,EAAE,KAAM,EAE9B,GAAC3lE,GAAQyzD,EAAOzzD,CAAG,GAAKwlE,IAAkBxlE,CAAG,KAI7CA,IAAQ,aACNyzD,EAAOzzD,CAAG,EACZyzD,EAAOzzD,CAAG,EAAE,KAAKC,CAAG,EAEpBwzD,EAAOzzD,CAAG,EAAI,CAACC,CAAG,EAGpBwzD,EAAOzzD,CAAG,EAAIyzD,EAAOzzD,CAAG,EAAIyzD,EAAOzzD,CAAG,EAAI,KAAOC,EAAMA,EAE7D,CAAG,EAEMwzD,CACT,ECjDMmS,GAAa,OAAO,WAAW,EAErC,SAASC,GAAgBC,EAAQ,CAC/B,OAAOA,GAAU,OAAOA,CAAM,EAAE,KAAI,EAAG,YAAa,CACtD,CAEA,SAASC,GAAetkE,EAAO,CAC7B,OAAIA,IAAU,IAASA,GAAS,KACvBA,EAGF6/D,GAAM,QAAQ7/D,CAAK,EAAIA,EAAM,IAAIskE,EAAc,EAAI,OAAOtkE,CAAK,CACxE,CAEA,SAASukE,IAAYlmE,EAAK,CACxB,MAAMyyC,EAAS,OAAO,OAAO,IAAI,EAC3B0zB,EAAW,mCACjB,IAAI30B,EAEJ,KAAQA,EAAQ20B,EAAS,KAAKnmE,CAAG,GAC/ByyC,EAAOjB,EAAM,CAAC,CAAC,EAAIA,EAAM,CAAC,EAG5B,OAAOiB,CACT,CAEA,MAAM2zB,IAAqBpmE,GAAQ,iCAAiC,KAAKA,EAAI,MAAM,EAEnF,SAASqmE,GAAiBt7C,EAASppB,EAAOqkE,EAAQxH,EAAQ8H,EAAoB,CAC5E,GAAI9E,GAAM,WAAWhD,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAM78D,EAAOqkE,CAAM,EAOxC,GAJIM,IACF3kE,EAAQqkE,GAGN,EAACxE,GAAM,SAAS7/D,CAAK,EAEzB,IAAI6/D,GAAM,SAAShD,CAAM,EACvB,OAAO78D,EAAM,QAAQ68D,CAAM,IAAM,GAGnC,GAAIgD,GAAM,SAAShD,CAAM,EACvB,OAAOA,EAAO,KAAK78D,CAAK,EAE5B,CAEA,SAAS4kE,IAAaP,EAAQ,CAC5B,OAAOA,EAAO,KAAI,EACf,YAAW,EAAG,QAAQ,kBAAmB,CAACQ,EAAG7zB,EAAM3yC,IAC3C2yC,EAAK,YAAW,EAAK3yC,CAC7B,CACL,CAEA,SAASymE,IAAexjE,EAAK+iE,EAAQ,CACnC,MAAMU,EAAelF,GAAM,YAAY,IAAMwE,CAAM,EAEnD,CAAC,MAAO,MAAO,KAAK,EAAE,QAAQW,GAAc,CAC1C,OAAO,eAAe1jE,EAAK0jE,EAAaD,EAAc,CACpD,MAAO,SAASE,EAAMC,EAAMC,EAAM,CAChC,OAAO,KAAKH,CAAU,EAAE,KAAK,KAAMX,EAAQY,EAAMC,EAAMC,CAAI,CAC5D,EACD,aAAc,EACpB,CAAK,CACL,CAAG,CACH,CAEA,MAAMC,EAAa,CACjB,YAAY/B,EAAS,CACnBA,GAAW,KAAK,IAAIA,CAAO,CAC/B,CAEE,IAAIgB,EAAQgB,EAAgBC,EAAS,CACnC,MAAM97D,EAAO,KAEb,SAAS+7D,EAAUxZ,EAAQyZ,EAASC,EAAU,CAC5C,MAAMC,EAAUtB,GAAgBoB,CAAO,EAEvC,GAAI,CAACE,EACH,MAAM,IAAI,MAAM,wCAAwC,EAG1D,MAAMnnE,EAAMshE,GAAM,QAAQr2D,EAAMk8D,CAAO,GAEpC,CAACnnE,GAAOiL,EAAKjL,CAAG,IAAM,QAAaknE,IAAa,IAASA,IAAa,QAAaj8D,EAAKjL,CAAG,IAAM,MAClGiL,EAAKjL,GAAOinE,CAAO,EAAIlB,GAAevY,CAAM,EAEpD,CAEI,MAAM4Z,EAAa,CAACtC,EAASoC,IAC3B5F,GAAM,QAAQwD,EAAS,CAACtX,EAAQyZ,IAAYD,EAAUxZ,EAAQyZ,EAASC,CAAQ,CAAC,EAElF,GAAI5F,GAAM,cAAcwE,CAAM,GAAKA,aAAkB,KAAK,YACxDsB,EAAWtB,EAAQgB,CAAc,UACzBxF,GAAM,SAASwE,CAAM,IAAMA,EAASA,EAAO,SAAW,CAACI,IAAkBJ,CAAM,EACvFsB,EAAW3B,IAAaK,CAAM,EAAGgB,CAAc,UACtCxF,GAAM,UAAUwE,CAAM,EAC/B,SAAW,CAAC9lE,EAAKyB,CAAK,IAAKqkE,EAAO,QAAO,EACvCkB,EAAUvlE,EAAOzB,EAAK+mE,CAAO,OAG/BjB,GAAU,MAAQkB,EAAUF,EAAgBhB,EAAQiB,CAAO,EAG7D,OAAO,IACX,CAEE,IAAIjB,EAAQ/yB,EAAQ,CAGlB,GAFA+yB,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,MAAM9lE,EAAMshE,GAAM,QAAQ,KAAMwE,CAAM,EAEtC,GAAI9lE,EAAK,CACP,MAAMyB,EAAQ,KAAKzB,CAAG,EAEtB,GAAI,CAAC+yC,EACH,OAAOtxC,EAGT,GAAIsxC,IAAW,GACb,OAAOizB,IAAYvkE,CAAK,EAG1B,GAAI6/D,GAAM,WAAWvuB,CAAM,EACzB,OAAOA,EAAO,KAAK,KAAMtxC,EAAOzB,CAAG,EAGrC,GAAIshE,GAAM,SAASvuB,CAAM,EACvB,OAAOA,EAAO,KAAKtxC,CAAK,EAG1B,MAAM,IAAI,UAAU,wCAAwC,CACpE,CACA,CACA,CAEE,IAAIqkE,EAAQ9yB,EAAS,CAGnB,GAFA8yB,EAASD,GAAgBC,CAAM,EAE3BA,EAAQ,CACV,MAAM9lE,EAAMshE,GAAM,QAAQ,KAAMwE,CAAM,EAEtC,MAAO,CAAC,EAAE9lE,GAAO,KAAKA,CAAG,IAAM,SAAc,CAACgzC,GAAWmzB,GAAiB,KAAM,KAAKnmE,CAAG,EAAGA,EAAKgzC,CAAO,GAC7G,CAEI,MAAO,EACX,CAEE,OAAO8yB,EAAQ9yB,EAAS,CACtB,MAAM/nC,EAAO,KACb,IAAIo8D,EAAU,GAEd,SAASC,EAAaL,EAAS,CAG7B,GAFAA,EAAUpB,GAAgBoB,CAAO,EAE7BA,EAAS,CACX,MAAMjnE,EAAMshE,GAAM,QAAQr2D,EAAMg8D,CAAO,EAEnCjnE,IAAQ,CAACgzC,GAAWmzB,GAAiBl7D,EAAMA,EAAKjL,CAAG,EAAGA,EAAKgzC,CAAO,KACpE,OAAO/nC,EAAKjL,CAAG,EAEfqnE,EAAU,GAEpB,CACA,CAEI,OAAI/F,GAAM,QAAQwE,CAAM,EACtBA,EAAO,QAAQwB,CAAY,EAE3BA,EAAaxB,CAAM,EAGduB,CACX,CAEE,MAAMr0B,EAAS,CACb,MAAMjvB,EAAO,OAAO,KAAK,IAAI,EAC7B,IAAInjB,EAAImjB,EAAK,OACTsjD,EAAU,GAEd,KAAOzmE,KAAK,CACV,MAAMZ,EAAM+jB,EAAKnjB,CAAC,GACf,CAACoyC,GAAWmzB,GAAiB,KAAM,KAAKnmE,CAAG,EAAGA,EAAKgzC,EAAS,EAAI,KACjE,OAAO,KAAKhzC,CAAG,EACfqnE,EAAU,GAElB,CAEI,OAAOA,CACX,CAEE,UAAUpd,EAAQ,CAChB,MAAMh/C,EAAO,KACP65D,EAAU,CAAE,EAElBxD,UAAM,QAAQ,KAAM,CAAC7/D,EAAOqkE,IAAW,CACrC,MAAM9lE,EAAMshE,GAAM,QAAQwD,EAASgB,CAAM,EAEzC,GAAI9lE,EAAK,CACPiL,EAAKjL,CAAG,EAAI+lE,GAAetkE,CAAK,EAChC,OAAOwJ,EAAK66D,CAAM,EAClB,MACR,CAEM,MAAMriE,EAAawmD,EAASoc,IAAaP,CAAM,EAAI,OAAOA,CAAM,EAAE,KAAM,EAEpEriE,IAAeqiE,GACjB,OAAO76D,EAAK66D,CAAM,EAGpB76D,EAAKxH,CAAU,EAAIsiE,GAAetkE,CAAK,EAEvCqjE,EAAQrhE,CAAU,EAAI,EAC5B,CAAK,EAEM,IACX,CAEE,UAAU8jE,EAAS,CACjB,OAAO,KAAK,YAAY,OAAO,KAAM,GAAGA,CAAO,CACnD,CAEE,OAAOC,EAAW,CAChB,MAAMzkE,EAAM,OAAO,OAAO,IAAI,EAE9Bu+D,UAAM,QAAQ,KAAM,CAAC7/D,EAAOqkE,IAAW,CACrCrkE,GAAS,MAAQA,IAAU,KAAUsB,EAAI+iE,CAAM,EAAI0B,GAAalG,GAAM,QAAQ7/D,CAAK,EAAIA,EAAM,KAAK,IAAI,EAAIA,EAChH,CAAK,EAEMsB,CACX,CAEE,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,OAAO,QAAQ,KAAK,OAAM,CAAE,EAAE,OAAO,QAAQ,EAAG,CAC3D,CAEE,UAAW,CACT,OAAO,OAAO,QAAQ,KAAK,OAAQ,GAAE,IAAI,CAAC,CAAC+iE,EAAQrkE,CAAK,IAAMqkE,EAAS,KAAOrkE,CAAK,EAAE,KAAK;AAAA,CAAI,CAClG,CAEE,IAAK,OAAO,WAAW,GAAI,CACzB,MAAO,cACX,CAEE,OAAO,KAAK26D,EAAO,CACjB,OAAOA,aAAiB,KAAOA,EAAQ,IAAI,KAAKA,CAAK,CACzD,CAEE,OAAO,OAAOqL,KAAUF,EAAS,CAC/B,MAAM7/D,EAAW,IAAI,KAAK+/D,CAAK,EAE/B,OAAAF,EAAQ,QAASt+D,GAAWvB,EAAS,IAAIuB,CAAM,CAAC,EAEzCvB,CACX,CAEE,OAAO,SAASo+D,EAAQ,CAKtB,MAAM4B,GAJY,KAAK9B,EAAU,EAAK,KAAKA,EAAU,EAAI,CACvD,UAAW,EACjB,GAEgC,UACtBhJ,EAAY,KAAK,UAEvB,SAAS+K,EAAeV,EAAS,CAC/B,MAAME,EAAUtB,GAAgBoB,CAAO,EAElCS,EAAUP,CAAO,IACpBZ,IAAe3J,EAAWqK,CAAO,EACjCS,EAAUP,CAAO,EAAI,GAE7B,CAEI7F,UAAM,QAAQwE,CAAM,EAAIA,EAAO,QAAQ6B,CAAc,EAAIA,EAAe7B,CAAM,EAEvE,IACX,CACA,CAEAe,GAAa,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,eAAe,CAAC,EAGpHvF,GAAM,kBAAkBuF,GAAa,UAAW,CAAC,CAAC,MAAAplE,CAAK,EAAGzB,IAAQ,CAChE,IAAI4nE,EAAS5nE,EAAI,CAAC,EAAE,YAAW,EAAKA,EAAI,MAAM,CAAC,EAC/C,MAAO,CACL,IAAK,IAAMyB,EACX,IAAIomE,EAAa,CACf,KAAKD,CAAM,EAAIC,CACrB,CACA,CACA,CAAC,EAEDvG,GAAM,cAAcuF,EAAY,EC7RjB,SAASiB,GAAcllE,EAAKy+D,EAAU,CACnD,MAAMF,EAAS,MAAQ/6C,GACjByE,EAAUw2C,GAAYF,EACtB2D,EAAU+B,GAAa,KAAKh8C,EAAQ,OAAO,EACjD,IAAIzF,EAAOyF,EAAQ,KAEnBy2C,UAAM,QAAQ1+D,EAAK,SAAmBb,EAAI,CACxCqjB,EAAOrjB,EAAG,KAAKo/D,EAAQ/7C,EAAM0/C,EAAQ,UAAS,EAAIzD,EAAWA,EAAS,OAAS,MAAS,CAC5F,CAAG,EAEDyD,EAAQ,UAAW,EAEZ1/C,CACT,CCzBe,SAAS2iD,GAAStmE,EAAO,CACtC,MAAO,CAAC,EAAEA,GAASA,EAAM,WAC3B,CCUA,SAASumE,GAAc51B,EAAS+uB,EAAQC,EAAS,CAE/CH,GAAW,KAAK,KAAM7uB,GAAkB,WAAsB6uB,GAAW,aAAcE,EAAQC,CAAO,EACtG,KAAK,KAAO,eACd,CAEAE,GAAM,SAAS0G,GAAe/G,GAAY,CACxC,WAAY,EACd,CAAC,ECTc,SAASgH,GAAOzkD,EAASszB,EAAQuqB,EAAU,CACxD,MAAM6G,EAAiB7G,EAAS,OAAO,eACnC,CAACA,EAAS,QAAU,CAAC6G,GAAkBA,EAAe7G,EAAS,MAAM,EACvE79C,EAAQ69C,CAAQ,EAEhBvqB,EAAO,IAAImqB,GACT,mCAAqCI,EAAS,OAC9C,CAACJ,GAAW,gBAAiBA,GAAW,gBAAgB,EAAE,KAAK,MAAMI,EAAS,OAAS,GAAG,EAAI,CAAC,EAC/FA,EAAS,OACTA,EAAS,QACTA,CACN,CAAK,CAEL,CCxBe,SAAS8G,IAAc74B,EAAK,CACzC,MAAMgC,EAAQ,4BAA4B,KAAKhC,CAAG,EAClD,OAAOgC,GAASA,EAAM,CAAC,GAAK,EAC9B,CCGA,SAAS82B,IAAYC,EAAcC,EAAK,CACtCD,EAAeA,GAAgB,GAC/B,MAAME,EAAQ,IAAI,MAAMF,CAAY,EAC9BG,EAAa,IAAI,MAAMH,CAAY,EACzC,IAAIhhE,EAAO,EACPC,EAAO,EACPmhE,EAEJ,OAAAH,EAAMA,IAAQ,OAAYA,EAAM,IAEzB,SAAcI,EAAa,CAChC,MAAMC,EAAM,KAAK,IAAK,EAEhBC,EAAYJ,EAAWlhE,CAAI,EAE5BmhE,IACHA,EAAgBE,GAGlBJ,EAAMlhE,CAAI,EAAIqhE,EACdF,EAAWnhE,CAAI,EAAIshE,EAEnB,IAAI/nE,EAAI0G,EACJuhE,EAAa,EAEjB,KAAOjoE,IAAMyG,GACXwhE,GAAcN,EAAM3nE,GAAG,EACvBA,EAAIA,EAAIynE,EASV,GANAhhE,GAAQA,EAAO,GAAKghE,EAEhBhhE,IAASC,IACXA,GAAQA,EAAO,GAAK+gE,GAGlBM,EAAMF,EAAgBH,EACxB,OAGF,MAAMQ,EAASF,GAAaD,EAAMC,EAElC,OAAOE,EAAS,KAAK,MAAMD,EAAa,IAAOC,CAAM,EAAI,MAC1D,CACH,CC9CA,SAASC,IAAShnE,EAAIinE,EAAM,CAC1B,IAAIhgB,EAAY,EACZigB,EAAY,IAAOD,EACnBE,EACAC,EAEJ,MAAMC,EAAS,CAAC5+D,EAAMm+D,EAAM,KAAK,IAAG,IAAO,CACzC3f,EAAY2f,EACZO,EAAW,KACPC,IACF,aAAaA,CAAK,EAClBA,EAAQ,MAEVpnE,EAAG,MAAM,KAAMyI,CAAI,CACvB,EAoBE,MAAO,CAlBW,IAAIA,IAAS,CAC7B,MAAMm+D,EAAM,KAAK,IAAK,EAChBG,EAASH,EAAM3f,EAChB8f,GAAUG,EACbG,EAAO5+D,EAAMm+D,CAAG,GAEhBO,EAAW1+D,EACN2+D,IACHA,EAAQ,WAAW,IAAM,CACvBA,EAAQ,KACRC,EAAOF,CAAQ,CACzB,EAAWD,EAAYH,CAAM,GAG7B,EAEgB,IAAMI,GAAYE,EAAOF,CAAQ,CAEvB,CAC1B,CCrCO,MAAMG,GAAuB,CAAC96B,EAAU+6B,EAAkBN,EAAO,IAAM,CAC5E,IAAIO,EAAgB,EACpB,MAAMC,EAAepB,IAAY,GAAI,GAAG,EAExC,OAAOW,IAAS1gE,GAAK,CACnB,MAAMohE,EAASphE,EAAE,OACXqhE,EAAQrhE,EAAE,iBAAmBA,EAAE,MAAQ,OACvCshE,EAAgBF,EAASF,EACzBK,EAAOJ,EAAaG,CAAa,EACjCE,EAAUJ,GAAUC,EAE1BH,EAAgBE,EAEhB,MAAMrkD,EAAO,CACX,OAAAqkD,EACA,MAAAC,EACA,SAAUA,EAASD,EAASC,EAAS,OACrC,MAAOC,EACP,KAAMC,GAAc,OACpB,UAAWA,GAAQF,GAASG,GAAWH,EAAQD,GAAUG,EAAO,OAChE,MAAOvhE,EACP,iBAAkBqhE,GAAS,KAC3B,CAACJ,EAAmB,WAAa,QAAQ,EAAG,EAC7C,EAED/6B,EAASnpB,CAAI,CACd,EAAE4jD,CAAI,CACT,EAEac,GAAyB,CAACJ,EAAOK,IAAc,CAC1D,MAAMC,EAAmBN,GAAS,KAElC,MAAO,CAAED,GAAWM,EAAU,CAAC,EAAE,CAC/B,iBAAAC,EACA,MAAAN,EACA,OAAAD,CACJ,CAAG,EAAGM,EAAU,CAAC,CAAC,CAClB,EAEaE,GAAkBloE,GAAO,IAAIyI,IAAS82D,GAAM,KAAK,IAAMv/D,EAAG,GAAGyI,CAAI,CAAC,ECtChE0/D,IAAA9F,GAAS,sBAIrB,UAA8B,CAC7B,MAAM+F,EAAO/F,GAAS,WAAa,kBAAkB,KAAKA,GAAS,UAAU,SAAS,EAChFgG,EAAiB,SAAS,cAAc,GAAG,EACjD,IAAIC,EAQJ,SAASC,EAAWh7B,EAAK,CACvB,IAAI4L,EAAO5L,EAEX,OAAI66B,IAEFC,EAAe,aAAa,OAAQlvB,CAAI,EACxCA,EAAOkvB,EAAe,MAGxBA,EAAe,aAAa,OAAQlvB,CAAI,EAGjC,CACL,KAAMkvB,EAAe,KACrB,SAAUA,EAAe,SAAWA,EAAe,SAAS,QAAQ,KAAM,EAAE,EAAI,GAChF,KAAMA,EAAe,KACrB,OAAQA,EAAe,OAASA,EAAe,OAAO,QAAQ,MAAO,EAAE,EAAI,GAC3E,KAAMA,EAAe,KAAOA,EAAe,KAAK,QAAQ,KAAM,EAAE,EAAI,GACpE,SAAUA,EAAe,SACzB,KAAMA,EAAe,KACrB,SAAWA,EAAe,SAAS,OAAO,CAAC,IAAM,IAC/CA,EAAe,SACf,IAAMA,EAAe,QACxB,CACP,CAEI,OAAAC,EAAYC,EAAW,OAAO,SAAS,IAAI,EAQpC,SAAyBC,EAAY,CAC1C,MAAM9W,EAAU6N,GAAM,SAASiJ,CAAU,EAAKD,EAAWC,CAAU,EAAIA,EACvE,OAAQ9W,EAAO,WAAa4W,EAAU,UAClC5W,EAAO,OAAS4W,EAAU,IAC/B,CACL,EAAM,EAGH,UAAiC,CAChC,OAAO,UAA2B,CAChC,MAAO,EACR,CACL,EAAM,EC/DSG,IAAApG,GAAS,sBAGtB,CACE,MAAMlgE,EAAMzC,EAAOgpE,EAAS3yC,EAAM4yC,EAAQC,EAAQ,CAChD,MAAMC,EAAS,CAAC1mE,EAAO,IAAM,mBAAmBzC,CAAK,CAAC,EAEtD6/D,GAAM,SAASmJ,CAAO,GAAKG,EAAO,KAAK,WAAa,IAAI,KAAKH,CAAO,EAAE,YAAW,CAAE,EAEnFnJ,GAAM,SAASxpC,CAAI,GAAK8yC,EAAO,KAAK,QAAU9yC,CAAI,EAElDwpC,GAAM,SAASoJ,CAAM,GAAKE,EAAO,KAAK,UAAYF,CAAM,EAExDC,IAAW,IAAQC,EAAO,KAAK,QAAQ,EAEvC,SAAS,OAASA,EAAO,KAAK,IAAI,CACnC,EAED,KAAK1mE,EAAM,CACT,MAAMotC,EAAQ,SAAS,OAAO,MAAM,IAAI,OAAO,aAAeptC,EAAO,WAAW,CAAC,EACjF,OAAQotC,EAAQ,mBAAmBA,EAAM,CAAC,CAAC,EAAI,IAChD,EAED,OAAOptC,EAAM,CACX,KAAK,MAAMA,EAAM,GAAI,KAAK,IAAK,EAAG,KAAQ,CAChD,CACA,EAKE,CACE,OAAQ,CAAE,EACV,MAAO,CACL,OAAO,IACR,EACD,QAAS,EACV,EC/BY,SAAS2mE,IAAcv7B,EAAK,CAIzC,MAAO,8BAA8B,KAAKA,CAAG,CAC/C,CCJe,SAASw7B,IAAYC,EAASC,EAAa,CACxD,OAAOA,EACHD,EAAQ,QAAQ,SAAU,EAAE,EAAI,IAAMC,EAAY,QAAQ,OAAQ,EAAE,EACpED,CACN,CCCe,SAASE,GAAcF,EAASG,EAAc,CAC3D,OAAIH,GAAW,CAACF,IAAcK,CAAY,EACjCJ,IAAYC,EAASG,CAAY,EAEnCA,CACT,CCfA,MAAMC,GAAmB/O,GAAUA,aAAiByK,GAAe,CAAE,GAAGzK,CAAK,EAAKA,EAWnE,SAASgP,GAAYC,EAASC,EAAS,CAEpDA,EAAUA,GAAW,CAAE,EACvB,MAAMnK,EAAS,CAAE,EAEjB,SAASoK,EAAetiE,EAAQmI,EAAQwsD,EAAU,CAChD,OAAI0D,GAAM,cAAcr4D,CAAM,GAAKq4D,GAAM,cAAclwD,CAAM,EACpDkwD,GAAM,MAAM,KAAK,CAAC,SAAA1D,CAAQ,EAAG30D,EAAQmI,CAAM,EACzCkwD,GAAM,cAAclwD,CAAM,EAC5BkwD,GAAM,MAAM,CAAE,EAAElwD,CAAM,EACpBkwD,GAAM,QAAQlwD,CAAM,EACtBA,EAAO,MAAO,EAEhBA,CACX,CAGE,SAASo6D,EAAoBh1D,EAAGC,EAAGmnD,EAAU,CAC3C,GAAK0D,GAAM,YAAY7qD,CAAC,GAEjB,GAAI,CAAC6qD,GAAM,YAAY9qD,CAAC,EAC7B,OAAO+0D,EAAe,OAAW/0D,EAAGonD,CAAQ,MAF5C,QAAO2N,EAAe/0D,EAAGC,EAAGmnD,CAAQ,CAI1C,CAGE,SAAS6N,EAAiBj1D,EAAGC,EAAG,CAC9B,GAAI,CAAC6qD,GAAM,YAAY7qD,CAAC,EACtB,OAAO80D,EAAe,OAAW90D,CAAC,CAExC,CAGE,SAASi1D,EAAiBl1D,EAAGC,EAAG,CAC9B,GAAK6qD,GAAM,YAAY7qD,CAAC,GAEjB,GAAI,CAAC6qD,GAAM,YAAY9qD,CAAC,EAC7B,OAAO+0D,EAAe,OAAW/0D,CAAC,MAFlC,QAAO+0D,EAAe,OAAW90D,CAAC,CAIxC,CAGE,SAASk1D,EAAgBn1D,EAAGC,EAAGmX,EAAM,CACnC,GAAIA,KAAQ09C,EACV,OAAOC,EAAe/0D,EAAGC,CAAC,EACrB,GAAImX,KAAQy9C,EACjB,OAAOE,EAAe,OAAW/0D,CAAC,CAExC,CAEE,MAAMo1D,EAAW,CACf,IAAKH,EACL,OAAQA,EACR,KAAMA,EACN,QAASC,EACT,iBAAkBA,EAClB,kBAAmBA,EACnB,iBAAkBA,EAClB,QAASA,EACT,eAAgBA,EAChB,gBAAiBA,EACjB,cAAeA,EACf,QAASA,EACT,aAAcA,EACd,eAAgBA,EAChB,eAAgBA,EAChB,iBAAkBA,EAClB,mBAAoBA,EACpB,WAAYA,EACZ,iBAAkBA,EAClB,cAAeA,EACf,eAAgBA,EAChB,UAAWA,EACX,UAAWA,EACX,WAAYA,EACZ,YAAaA,EACb,WAAYA,EACZ,iBAAkBA,EAClB,eAAgBC,EAChB,QAAS,CAACn1D,EAAGC,IAAM+0D,EAAoBL,GAAgB30D,CAAC,EAAG20D,GAAgB10D,CAAC,EAAG,EAAI,CACpF,EAED6qD,UAAM,QAAQ,OAAO,KAAK,OAAO,OAAO,GAAI+J,EAASC,CAAO,CAAC,EAAG,SAA4B19C,EAAM,CAChG,MAAM+vC,EAAQiO,EAASh+C,CAAI,GAAK49C,EAC1BK,EAAclO,EAAM0N,EAAQz9C,CAAI,EAAG09C,EAAQ19C,CAAI,EAAGA,CAAI,EAC3D0zC,GAAM,YAAYuK,CAAW,GAAKlO,IAAUgO,IAAqBxK,EAAOvzC,CAAI,EAAIi+C,EACrF,CAAG,EAEM1K,CACT,CChGA,MAAe2K,GAAC3K,GAAW,CACzB,MAAM4K,EAAYX,GAAY,CAAE,EAAEjK,CAAM,EAExC,GAAI,CAAC,KAAA/7C,EAAM,cAAA4mD,EAAe,eAAAC,EAAgB,eAAAC,EAAgB,QAAApH,EAAS,KAAAqH,CAAI,EAAIJ,EAE3EA,EAAU,QAAUjH,EAAU+B,GAAa,KAAK/B,CAAO,EAEvDiH,EAAU,IAAM/I,GAASiI,GAAcc,EAAU,QAASA,EAAU,GAAG,EAAG5K,EAAO,OAAQA,EAAO,gBAAgB,EAG5GgL,GACFrH,EAAQ,IAAI,gBAAiB,SAC3B,MAAMqH,EAAK,UAAY,IAAM,KAAOA,EAAK,SAAW,SAAS,mBAAmBA,EAAK,QAAQ,CAAC,EAAI,GAAG,CACtG,EAGH,IAAIpH,EAEJ,GAAIzD,GAAM,WAAWl8C,CAAI,GACvB,GAAIg/C,GAAS,uBAAyBA,GAAS,+BAC7CU,EAAQ,eAAe,MAAS,WACtBC,EAAcD,EAAQ,eAAc,KAAQ,GAAO,CAE7D,KAAM,CAAC57D,EAAM,GAAGqpC,CAAM,EAAIwyB,EAAcA,EAAY,MAAM,GAAG,EAAE,IAAIj0B,GAASA,EAAM,KAAI,CAAE,EAAE,OAAO,OAAO,EAAI,CAAE,EAC9Gg0B,EAAQ,eAAe,CAAC57D,GAAQ,sBAAuB,GAAGqpC,CAAM,EAAE,KAAK,IAAI,CAAC,CAClF,EAOE,GAAI6xB,GAAS,wBACX4H,GAAiB1K,GAAM,WAAW0K,CAAa,IAAMA,EAAgBA,EAAcD,CAAS,GAExFC,GAAkBA,IAAkB,IAAS9B,IAAgB6B,EAAU,GAAG,GAAI,CAEhF,MAAMK,EAAYH,GAAkBC,GAAkB1B,IAAQ,KAAK0B,CAAc,EAE7EE,GACFtH,EAAQ,IAAImH,EAAgBG,CAAS,CAE7C,CAGE,OAAOL,CACT,EC5CMM,IAAwB,OAAO,eAAmB,IAExDC,IAAeD,KAAyB,SAAUlL,EAAQ,CACxD,OAAO,IAAI,QAAQ,SAA4B39C,EAASszB,EAAQ,CAC9D,MAAMy1B,EAAUT,GAAc3K,CAAM,EACpC,IAAIqL,EAAcD,EAAQ,KAC1B,MAAME,EAAiB5F,GAAa,KAAK0F,EAAQ,OAAO,EAAE,UAAW,EACrE,GAAI,CAAC,aAAAG,EAAc,iBAAAC,EAAkB,mBAAAC,CAAkB,EAAIL,EACvDM,EACAC,EAAiBC,EACjBC,EAAaC,EAEjB,SAASl/D,GAAO,CACdi/D,GAAeA,EAAW,EAC1BC,GAAiBA,EAAa,EAE9BV,EAAQ,aAAeA,EAAQ,YAAY,YAAYM,CAAU,EAEjEN,EAAQ,QAAUA,EAAQ,OAAO,oBAAoB,QAASM,CAAU,CAC9E,CAEI,IAAIzL,EAAU,IAAI,eAElBA,EAAQ,KAAKmL,EAAQ,OAAO,YAAW,EAAIA,EAAQ,IAAK,EAAI,EAG5DnL,EAAQ,QAAUmL,EAAQ,QAE1B,SAASW,GAAY,CACnB,GAAI,CAAC9L,EACH,OAGF,MAAM+L,EAAkBtG,GAAa,KACnC,0BAA2BzF,GAAWA,EAAQ,sBAAqB,CACpE,EAGKC,EAAW,CACf,KAHmB,CAACqL,GAAgBA,IAAiB,QAAUA,IAAiB,OAChFtL,EAAQ,aAAeA,EAAQ,SAG/B,OAAQA,EAAQ,OAChB,WAAYA,EAAQ,WACpB,QAAS+L,EACT,OAAAhM,EACA,QAAAC,CACD,EAED6G,GAAO,SAAkBxmE,EAAO,CAC9B+hB,EAAQ/hB,CAAK,EACbsM,EAAM,CACd,EAAS,SAAiB3G,EAAK,CACvB0vC,EAAO1vC,CAAG,EACV2G,EAAM,CACP,EAAEszD,CAAQ,EAGXD,EAAU,IAChB,CAEQ,cAAeA,EAEjBA,EAAQ,UAAY8L,EAGpB9L,EAAQ,mBAAqB,UAAsB,CAC7C,CAACA,GAAWA,EAAQ,aAAe,GAQnCA,EAAQ,SAAW,GAAK,EAAEA,EAAQ,aAAeA,EAAQ,YAAY,QAAQ,OAAO,IAAM,IAK9F,WAAW8L,CAAS,CACrB,EAIH9L,EAAQ,QAAU,UAAuB,CAClCA,IAILtqB,EAAO,IAAImqB,GAAW,kBAAmBA,GAAW,aAAcE,EAAQC,CAAO,CAAC,EAGlFA,EAAU,KACX,EAGDA,EAAQ,QAAU,UAAuB,CAGvCtqB,EAAO,IAAImqB,GAAW,gBAAiBA,GAAW,YAAaE,EAAQC,CAAO,CAAC,EAG/EA,EAAU,IACX,EAGDA,EAAQ,UAAY,UAAyB,CAC3C,IAAIgM,EAAsBb,EAAQ,QAAU,cAAgBA,EAAQ,QAAU,cAAgB,mBAC9F,MAAMpH,EAAeoH,EAAQ,cAAgBhJ,GACzCgJ,EAAQ,sBACVa,EAAsBb,EAAQ,qBAEhCz1B,EAAO,IAAImqB,GACTmM,EACAjI,EAAa,oBAAsBlE,GAAW,UAAYA,GAAW,aACrEE,EACAC,CAAO,CAAC,EAGVA,EAAU,IACX,EAGDoL,IAAgB,QAAaC,EAAe,eAAe,IAAI,EAG3D,qBAAsBrL,GACxBE,GAAM,QAAQmL,EAAe,OAAQ,EAAE,SAA0BxsE,EAAKD,EAAK,CACzEohE,EAAQ,iBAAiBphE,EAAKC,CAAG,CACzC,CAAO,EAIEqhE,GAAM,YAAYiL,EAAQ,eAAe,IAC5CnL,EAAQ,gBAAkB,CAAC,CAACmL,EAAQ,iBAIlCG,GAAgBA,IAAiB,SACnCtL,EAAQ,aAAemL,EAAQ,cAI7BK,IACD,CAACG,EAAmBE,CAAa,EAAI5D,GAAqBuD,EAAoB,EAAI,EACnFxL,EAAQ,iBAAiB,WAAY2L,CAAiB,GAIpDJ,GAAoBvL,EAAQ,SAC7B,CAAC0L,EAAiBE,CAAW,EAAI3D,GAAqBsD,CAAgB,EAEvEvL,EAAQ,OAAO,iBAAiB,WAAY0L,CAAe,EAE3D1L,EAAQ,OAAO,iBAAiB,UAAW4L,CAAW,IAGpDT,EAAQ,aAAeA,EAAQ,UAGjCM,EAAaQ,GAAU,CAChBjM,IAGLtqB,EAAO,CAACu2B,GAAUA,EAAO,KAAO,IAAIrF,GAAc,KAAM7G,EAAQC,CAAO,EAAIiM,CAAM,EACjFjM,EAAQ,MAAO,EACfA,EAAU,KACX,EAEDmL,EAAQ,aAAeA,EAAQ,YAAY,UAAUM,CAAU,EAC3DN,EAAQ,SACVA,EAAQ,OAAO,QAAUM,EAAY,EAAGN,EAAQ,OAAO,iBAAiB,QAASM,CAAU,IAI/F,MAAMS,EAAWnF,IAAcoE,EAAQ,GAAG,EAE1C,GAAIe,GAAYlJ,GAAS,UAAU,QAAQkJ,CAAQ,IAAM,GAAI,CAC3Dx2B,EAAO,IAAImqB,GAAW,wBAA0BqM,EAAW,IAAKrM,GAAW,gBAAiBE,CAAM,CAAC,EACnG,MACN,CAIIC,EAAQ,KAAKoL,GAAe,IAAI,CACpC,CAAG,CACH,EChMMe,IAAiB,CAACC,EAAS/rC,IAAY,CAC3C,KAAM,CAAC,OAAAmW,CAAM,EAAK41B,EAAUA,EAAUA,EAAQ,OAAO,OAAO,EAAI,GAEhE,GAAI/rC,GAAWmW,EAAQ,CACrB,IAAI61B,EAAa,IAAI,gBAEjBC,EAEJ,MAAMC,EAAU,SAAUC,EAAQ,CAChC,GAAI,CAACF,EAAS,CACZA,EAAU,GACVG,EAAa,EACb,MAAMzmE,EAAMwmE,aAAkB,MAAQA,EAAS,KAAK,OACpDH,EAAW,MAAMrmE,aAAe65D,GAAa75D,EAAM,IAAI4gE,GAAc5gE,aAAe,MAAQA,EAAI,QAAUA,CAAG,CAAC,CACtH,CACA,EAEI,IAAI+hE,EAAQ1nC,GAAW,WAAW,IAAM,CACtC0nC,EAAQ,KACRwE,EAAQ,IAAI1M,GAAW,WAAWx/B,CAAO,kBAAmBw/B,GAAW,SAAS,CAAC,CACvF,EAAOx/B,CAAO,EAEV,MAAMosC,EAAc,IAAM,CACpBL,IACFrE,GAAS,aAAaA,CAAK,EAC3BA,EAAQ,KACRqE,EAAQ,QAAQM,GAAU,CACxBA,EAAO,YAAcA,EAAO,YAAYH,CAAO,EAAIG,EAAO,oBAAoB,QAASH,CAAO,CACxG,CAAS,EACDH,EAAU,KAElB,EAEIA,EAAQ,QAASM,GAAWA,EAAO,iBAAiB,QAASH,CAAO,CAAC,EAErE,KAAM,CAAC,OAAAG,CAAM,EAAIL,EAEjB,OAAAK,EAAO,YAAc,IAAMxM,GAAM,KAAKuM,CAAW,EAE1CC,CACX,CACA,EC5CaC,IAAc,UAAWC,EAAOC,EAAW,CACtD,IAAIn3C,EAAMk3C,EAAM,WAEhB,GAAkBl3C,EAAMm3C,EAAW,CACjC,MAAMD,EACN,MACJ,CAEE,IAAIxa,EAAM,EACN99C,EAEJ,KAAO89C,EAAM18B,GACXphB,EAAM89C,EAAMya,EACZ,MAAMD,EAAM,MAAMxa,EAAK99C,CAAG,EAC1B89C,EAAM99C,CAEV,EAEaw4D,IAAY,gBAAiBC,EAAUF,EAAW,CAC7D,gBAAiBD,KAASI,IAAWD,CAAQ,EAC3C,MAAOJ,IAAYC,EAAOC,CAAS,CAEvC,EAEMG,IAAa,gBAAiBC,EAAQ,CAC1C,GAAIA,EAAO,OAAO,aAAa,EAAG,CAChC,MAAOA,EACP,MACJ,CAEE,MAAMC,EAASD,EAAO,UAAW,EACjC,GAAI,CACF,OAAS,CACP,KAAM,CAAC,KAAAtgE,EAAM,MAAAtM,CAAK,EAAI,MAAM6sE,EAAO,KAAM,EACzC,GAAIvgE,EACF,MAEF,MAAMtM,CACZ,CACA,QAAY,CACR,MAAM6sE,EAAO,OAAQ,CACzB,CACA,EAEaC,GAAc,CAACF,EAAQJ,EAAWO,EAAYC,IAAa,CACtE,MAAMlkE,EAAW2jE,IAAUG,EAAQJ,CAAS,EAE5C,IAAI1F,EAAQ,EACRx6D,EACA2gE,EAAarmE,GAAM,CAChB0F,IACHA,EAAO,GACP0gE,GAAYA,EAASpmE,CAAC,EAE5B,EAEE,OAAO,IAAI,eAAe,CACxB,MAAM,KAAKolE,EAAY,CACrB,GAAI,CACF,KAAM,CAAC,KAAA1/D,EAAM,MAAAtM,CAAK,EAAI,MAAM8I,EAAS,KAAM,EAE3C,GAAIwD,EAAM,CACT2gE,EAAW,EACVjB,EAAW,MAAO,EAClB,MACV,CAEQ,IAAI32C,EAAMr1B,EAAM,WAChB,GAAI+sE,EAAY,CACd,IAAIG,EAAcpG,GAASzxC,EAC3B03C,EAAWG,CAAW,CAChC,CACQlB,EAAW,QAAQ,IAAI,WAAWhsE,CAAK,CAAC,CACzC,OAAQ2F,EAAK,CACZ,MAAAsnE,EAAUtnE,CAAG,EACPA,CACd,CACK,EACD,OAAOwmE,EAAQ,CACb,OAAAc,EAAUd,CAAM,EACTrjE,EAAS,OAAQ,CAC9B,CACA,EAAK,CACD,cAAe,CAChB,EACH,EC5EMqkE,GAAmB,OAAO,OAAU,YAAc,OAAO,SAAY,YAAc,OAAO,UAAa,WACvGC,GAA4BD,IAAoB,OAAO,gBAAmB,WAG1EE,IAAaF,KAAqB,OAAO,aAAgB,YACzD9L,GAAahjE,GAAQgjE,EAAQ,OAAOhjE,CAAG,GAAG,IAAI,WAAa,EAC7D,MAAOA,GAAQ,IAAI,WAAW,MAAM,IAAI,SAASA,CAAG,EAAE,YAAa,IAGjEivE,GAAO,CAAChtE,KAAOyI,IAAS,CAC5B,GAAI,CACF,MAAO,CAAC,CAACzI,EAAG,GAAGyI,CAAI,CACpB,MAAW,CACV,MAAO,EACX,CACA,EAEMwkE,IAAwBH,IAA6BE,GAAK,IAAM,CACpE,IAAIE,EAAiB,GAErB,MAAMC,EAAiB,IAAI,QAAQ9K,GAAS,OAAQ,CAClD,KAAM,IAAI,eACV,OAAQ,OACR,IAAI,QAAS,CACX,OAAA6K,EAAiB,GACV,MACR,CACL,CAAG,EAAE,QAAQ,IAAI,cAAc,EAE7B,OAAOA,GAAkB,CAACC,CAC5B,CAAC,EAEKC,GAAqB,GAAK,KAE1BC,GAAyBP,IAC7BE,GAAK,IAAMzN,GAAM,iBAAiB,IAAI,SAAS,EAAE,EAAE,IAAI,CAAC,EAGpD+N,GAAY,CAChB,OAAQD,KAA4B7rE,GAAQA,EAAI,KAClD,EAEAqrE,KAAuBrrE,GAAQ,CAC7B,CAAC,OAAQ,cAAe,OAAQ,WAAY,QAAQ,EAAE,QAAQ2F,GAAQ,CACpE,CAACmmE,GAAUnmE,CAAI,IAAMmmE,GAAUnmE,CAAI,EAAIo4D,GAAM,WAAW/9D,EAAI2F,CAAI,CAAC,EAAK3F,GAAQA,EAAI2F,CAAI,EAAG,EACvF,CAAC/G,EAAGg/D,IAAW,CACb,MAAM,IAAIF,GAAW,kBAAkB/3D,CAAI,qBAAsB+3D,GAAW,gBAAiBE,CAAM,CACpG,EACP,CAAG,CACH,GAAG,IAAI,QAAQ,EAEf,MAAMmO,IAAgB,MAAOC,GAAS,CACpC,GAAIA,GAAQ,KACV,MAAO,GAGT,GAAGjO,GAAM,OAAOiO,CAAI,EAClB,OAAOA,EAAK,KAGd,GAAGjO,GAAM,oBAAoBiO,CAAI,EAK/B,OAAQ,MAJS,IAAI,QAAQnL,GAAS,OAAQ,CAC5C,OAAQ,OACR,KAAAmL,CACN,CAAK,EACsB,YAAW,GAAI,WAGxC,GAAGjO,GAAM,kBAAkBiO,CAAI,GAAKjO,GAAM,cAAciO,CAAI,EAC1D,OAAOA,EAAK,WAOd,GAJGjO,GAAM,kBAAkBiO,CAAI,IAC7BA,EAAOA,EAAO,IAGbjO,GAAM,SAASiO,CAAI,EACpB,OAAQ,MAAMT,IAAWS,CAAI,GAAG,UAEpC,EAEMC,IAAoB,MAAO1K,EAASyK,IAAS,CACjD,MAAM33B,EAAS0pB,GAAM,eAAewD,EAAQ,iBAAgB,CAAE,EAE9D,OAAOltB,GAAiB03B,IAAcC,CAAI,CAC5C,EAEAE,IAAeb,KAAqB,MAAOzN,GAAW,CACpD,GAAI,CACF,IAAA7xB,EACA,OAAApkC,EACA,KAAAka,EACA,OAAA0oD,EACA,YAAA4B,EACA,QAAAjuC,EACA,mBAAAmrC,EACA,iBAAAD,EACA,aAAAD,EACA,QAAA5H,EACA,gBAAA6K,EAAkB,cAClB,aAAAC,CACJ,EAAM9D,GAAc3K,CAAM,EAExBuL,EAAeA,GAAgBA,EAAe,IAAI,YAAa,EAAG,OAElE,IAAImD,EAAiBtC,IAAe,CAACO,EAAQ4B,GAAeA,EAAY,eAAe,EAAGjuC,CAAO,EAE7F2/B,EAEJ,MAAMyM,EAAcgC,GAAkBA,EAAe,cAAgB,IAAM,CACvEA,EAAe,YAAa,CAClC,GAEE,IAAIC,EAEJ,GAAI,CACF,GACEnD,GAAoBqC,KAAyB9jE,IAAW,OAASA,IAAW,SAC3E4kE,EAAuB,MAAMN,IAAkB1K,EAAS1/C,CAAI,KAAO,EACpE,CACA,IAAI2qD,EAAW,IAAI,QAAQzgC,EAAK,CAC9B,OAAQ,OACR,KAAMlqB,EACN,OAAQ,MAChB,CAAO,EAEG4qD,EAMJ,GAJI1O,GAAM,WAAWl8C,CAAI,IAAM4qD,EAAoBD,EAAS,QAAQ,IAAI,cAAc,IACpFjL,EAAQ,eAAekL,CAAiB,EAGtCD,EAAS,KAAM,CACjB,KAAM,CAACvB,EAAYl3C,CAAK,EAAIwyC,GAC1BgG,EACAzG,GAAqBY,GAAe0C,CAAgB,CAAC,CACtD,EAEDvnD,EAAOmpD,GAAYwB,EAAS,KAAMZ,GAAoBX,EAAYl3C,CAAK,CAC/E,CACA,CAESgqC,GAAM,SAASqO,CAAe,IACjCA,EAAkBA,EAAkB,UAAY,QAKlD,MAAMM,EAAyB,gBAAiB,QAAQ,UACxD7O,EAAU,IAAI,QAAQ9xB,EAAK,CACzB,GAAGsgC,EACH,OAAQC,EACR,OAAQ3kE,EAAO,YAAa,EAC5B,QAAS45D,EAAQ,UAAW,EAAC,OAAQ,EACrC,KAAM1/C,EACN,OAAQ,OACR,YAAa6qD,EAAyBN,EAAkB,MAC9D,CAAK,EAED,IAAItO,EAAW,MAAM,MAAMD,CAAO,EAElC,MAAM8O,EAAmBd,KAA2B1C,IAAiB,UAAYA,IAAiB,YAElG,GAAI0C,KAA2BxC,GAAuBsD,GAAoBrC,GAAe,CACvF,MAAMx7D,EAAU,CAAE,EAElB,CAAC,SAAU,aAAc,SAAS,EAAE,QAAQub,GAAQ,CAClDvb,EAAQub,CAAI,EAAIyzC,EAASzzC,CAAI,CACrC,CAAO,EAED,MAAMuiD,EAAwB7O,GAAM,eAAeD,EAAS,QAAQ,IAAI,gBAAgB,CAAC,EAEnF,CAACmN,EAAYl3C,CAAK,EAAIs1C,GAAsB9C,GAChDqG,EACA9G,GAAqBY,GAAe2C,CAAkB,EAAG,EAAI,CACrE,GAAW,CAAE,EAEPvL,EAAW,IAAI,SACbkN,GAAYlN,EAAS,KAAM8N,GAAoBX,EAAY,IAAM,CAC/Dl3C,GAASA,EAAO,EAChBu2C,GAAeA,EAAa,CACtC,CAAS,EACDx7D,CACD,CACP,CAEIq6D,EAAeA,GAAgB,OAE/B,IAAI0D,EAAe,MAAMf,GAAU/N,GAAM,QAAQ+N,GAAW3C,CAAY,GAAK,MAAM,EAAErL,EAAUF,CAAM,EAErG,OAAC+O,GAAoBrC,GAAeA,EAAa,EAE1C,MAAM,IAAI,QAAQ,CAACrqD,EAASszB,IAAW,CAC5CmxB,GAAOzkD,EAASszB,EAAQ,CACtB,KAAMs5B,EACN,QAASvJ,GAAa,KAAKxF,EAAS,OAAO,EAC3C,OAAQA,EAAS,OACjB,WAAYA,EAAS,WACrB,OAAAF,EACA,QAAAC,CACD,EACF,EACF,OAAQh6D,EAAK,CAGZ,MAFAymE,GAAeA,EAAa,EAExBzmE,GAAOA,EAAI,OAAS,aAAe,SAAS,KAAKA,EAAI,OAAO,EACxD,OAAO,OACX,IAAI65D,GAAW,gBAAiBA,GAAW,YAAaE,EAAQC,CAAO,EACvE,CACE,MAAOh6D,EAAI,OAASA,CAC9B,CACA,EAGU65D,GAAW,KAAK75D,EAAKA,GAAOA,EAAI,KAAM+5D,EAAQC,CAAO,CAC/D,CACA,GC5NMiP,GAAgB,CACpB,KAAM5O,IACN,IAAK6K,IACL,MAAOmD,GACT,EAEAnO,GAAM,QAAQ+O,GAAe,CAACtuE,EAAIN,IAAU,CAC1C,GAAIM,EAAI,CACN,GAAI,CACF,OAAO,eAAeA,EAAI,OAAQ,CAAC,MAAAN,CAAK,CAAC,CAC1C,MAAW,CAEhB,CACI,OAAO,eAAeM,EAAI,cAAe,CAAC,MAAAN,CAAK,CAAC,CACpD,CACA,CAAC,EAED,MAAM6uE,GAAgB1C,GAAW,KAAKA,CAAM,GAEtC2C,IAAoBC,GAAYlP,GAAM,WAAWkP,CAAO,GAAKA,IAAY,MAAQA,IAAY,GAEpFC,GAAA,CACb,WAAaA,GAAa,CACxBA,EAAWnP,GAAM,QAAQmP,CAAQ,EAAIA,EAAW,CAACA,CAAQ,EAEzD,KAAM,CAAC,OAAA74B,CAAM,EAAI64B,EACjB,IAAIC,EACAF,EAEJ,MAAMG,EAAkB,CAAE,EAE1B,QAAS/vE,EAAI,EAAGA,EAAIg3C,EAAQh3C,IAAK,CAC/B8vE,EAAgBD,EAAS7vE,CAAC,EAC1B,IAAI4U,EAIJ,GAFAg7D,EAAUE,EAEN,CAACH,IAAiBG,CAAa,IACjCF,EAAUH,IAAe76D,EAAK,OAAOk7D,CAAa,GAAG,aAAa,EAE9DF,IAAY,QACd,MAAM,IAAIvP,GAAW,oBAAoBzrD,CAAE,GAAG,EAIlD,GAAIg7D,EACF,MAGFG,EAAgBn7D,GAAM,IAAM5U,CAAC,EAAI4vE,CACvC,CAEI,GAAI,CAACA,EAAS,CAEZ,MAAMI,EAAU,OAAO,QAAQD,CAAe,EAC3C,IAAI,CAAC,CAACn7D,EAAI2G,CAAK,IAAM,WAAW3G,CAAE,KAChC2G,IAAU,GAAQ,sCAAwC,gCAC5D,EAEH,IAAIhJ,EAAIykC,EACLg5B,EAAQ,OAAS,EAAI;AAAA,EAAcA,EAAQ,IAAIN,EAAY,EAAE,KAAK;AAAA,CAAI,EAAI,IAAMA,GAAaM,EAAQ,CAAC,CAAC,EACxG,0BAEF,MAAM,IAAI3P,GACR,wDAA0D9tD,EAC1D,iBACD,CACP,CAEI,OAAOq9D,CACR,EACD,SAAUH,EACZ,EC9DA,SAASQ,GAA6B1P,EAAQ,CAK5C,GAJIA,EAAO,aACTA,EAAO,YAAY,iBAAkB,EAGnCA,EAAO,QAAUA,EAAO,OAAO,QACjC,MAAM,IAAI6G,GAAc,KAAM7G,CAAM,CAExC,CASe,SAAS2P,GAAgB3P,EAAQ,CAC9C,OAAA0P,GAA6B1P,CAAM,EAEnCA,EAAO,QAAU0F,GAAa,KAAK1F,EAAO,OAAO,EAGjDA,EAAO,KAAO2G,GAAc,KAC1B3G,EACAA,EAAO,gBACR,EAEG,CAAC,OAAQ,MAAO,OAAO,EAAE,QAAQA,EAAO,MAAM,IAAM,IACtDA,EAAO,QAAQ,eAAe,oCAAqC,EAAK,EAG1DsP,GAAS,WAAWtP,EAAO,SAAW/6C,GAAS,OAAO,EAEvD+6C,CAAM,EAAE,KAAK,SAA6BE,EAAU,CACjE,OAAAwP,GAA6B1P,CAAM,EAGnCE,EAAS,KAAOyG,GAAc,KAC5B3G,EACAA,EAAO,kBACPE,CACD,EAEDA,EAAS,QAAUwF,GAAa,KAAKxF,EAAS,OAAO,EAE9CA,CACX,EAAK,SAA4BuM,EAAQ,CACrC,OAAK7F,GAAS6F,CAAM,IAClBiD,GAA6B1P,CAAM,EAG/ByM,GAAUA,EAAO,WACnBA,EAAO,SAAS,KAAO9F,GAAc,KACnC3G,EACAA,EAAO,kBACPyM,EAAO,QACR,EACDA,EAAO,SAAS,QAAU/G,GAAa,KAAK+G,EAAO,SAAS,OAAO,IAIhE,QAAQ,OAAOA,CAAM,CAChC,CAAG,CACH,CChFO,MAAMmD,GAAU,QCKjBC,GAAa,CAAE,EAGrB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,QAAQ,EAAE,QAAQ,CAAC9nE,EAAMtI,IAAM,CACnFowE,GAAW9nE,CAAI,EAAI,SAAmBkzD,EAAO,CAC3C,OAAO,OAAOA,IAAUlzD,GAAQ,KAAOtI,EAAI,EAAI,KAAO,KAAOsI,CAC9D,CACH,CAAC,EAED,MAAM+nE,GAAqB,CAAE,EAW7BD,GAAW,aAAe,SAAsBE,EAAWhmD,EAASknB,EAAS,CAC3E,SAAS++B,EAAc9qD,EAAK+qD,EAAM,CAChC,MAAO,WAAaL,GAAU,0BAA6B1qD,EAAM,IAAO+qD,GAAQh/B,EAAU,KAAOA,EAAU,GAC/G,CAGE,MAAO,CAAC3wC,EAAO4kB,EAAKgrD,IAAS,CAC3B,GAAIH,IAAc,GAChB,MAAM,IAAIjQ,GACRkQ,EAAc9qD,EAAK,qBAAuB6E,EAAU,OAASA,EAAU,GAAG,EAC1E+1C,GAAW,cACZ,EAGH,OAAI/1C,GAAW,CAAC+lD,GAAmB5qD,CAAG,IACpC4qD,GAAmB5qD,CAAG,EAAI,GAE1B,QAAQ,KACN8qD,EACE9qD,EACA,+BAAiC6E,EAAU,yCACrD,CACO,GAGIgmD,EAAYA,EAAUzvE,EAAO4kB,EAAKgrD,CAAI,EAAI,EAClD,CACH,EAYA,SAASC,IAAcj/D,EAASk/D,EAAQC,EAAc,CACpD,GAAI,OAAOn/D,GAAY,SACrB,MAAM,IAAI4uD,GAAW,4BAA6BA,GAAW,oBAAoB,EAEnF,MAAMl9C,EAAO,OAAO,KAAK1R,CAAO,EAChC,IAAI,EAAI0R,EAAK,OACb,KAAO,KAAM,GAAG,CACd,MAAMsC,EAAMtC,EAAK,CAAC,EACZmtD,EAAYK,EAAOlrD,CAAG,EAC5B,GAAI6qD,EAAW,CACb,MAAMzvE,EAAQ4Q,EAAQgU,CAAG,EACnBhb,EAAS5J,IAAU,QAAayvE,EAAUzvE,EAAO4kB,EAAKhU,CAAO,EACnE,GAAIhH,IAAW,GACb,MAAM,IAAI41D,GAAW,UAAY56C,EAAM,YAAchb,EAAQ41D,GAAW,oBAAoB,EAE9F,QACN,CACI,GAAIuQ,IAAiB,GACnB,MAAM,IAAIvQ,GAAW,kBAAoB56C,EAAK46C,GAAW,cAAc,CAE7E,CACA,CAEA,MAAeiQ,GAAA,CACb,cAAAI,IACAN,aACF,EC/EMA,GAAaE,GAAU,WAS7B,MAAMO,EAAM,CACV,YAAYC,EAAgB,CAC1B,KAAK,SAAWA,EAChB,KAAK,aAAe,CAClB,QAAS,IAAItO,GACb,SAAU,IAAIA,EACf,CACL,CAUE,MAAM,QAAQuO,EAAaxQ,EAAQ,CACjC,GAAI,CACF,OAAO,MAAM,KAAK,SAASwQ,EAAaxQ,CAAM,CAC/C,OAAQ/5D,EAAK,CACZ,GAAIA,aAAe,MAAO,CACxB,IAAIwqE,EAEJ,MAAM,kBAAoB,MAAM,kBAAkBA,EAAQ,EAAE,EAAKA,EAAQ,IAAI,MAG7E,MAAMtR,EAAQsR,EAAM,MAAQA,EAAM,MAAM,QAAQ,QAAS,EAAE,EAAI,GAC/D,GAAI,CACGxqE,EAAI,MAGEk5D,GAAS,CAAC,OAAOl5D,EAAI,KAAK,EAAE,SAASk5D,EAAM,QAAQ,YAAa,EAAE,CAAC,IAC5El5D,EAAI,OAAS;AAAA,EAAOk5D,GAHpBl5D,EAAI,MAAQk5D,CAKf,MAAW,CAEpB,CACA,CAEM,MAAMl5D,CACZ,CACA,CAEE,SAASuqE,EAAaxQ,EAAQ,CAGxB,OAAOwQ,GAAgB,UACzBxQ,EAASA,GAAU,CAAE,EACrBA,EAAO,IAAMwQ,GAEbxQ,EAASwQ,GAAe,CAAE,EAG5BxQ,EAASiK,GAAY,KAAK,SAAUjK,CAAM,EAE1C,KAAM,CAAC,aAAAgE,EAAc,iBAAA0M,EAAkB,QAAA/M,CAAO,EAAI3D,EAE9CgE,IAAiB,QACnB+L,GAAU,cAAc/L,EAAc,CACpC,kBAAmB6L,GAAW,aAAaA,GAAW,OAAO,EAC7D,kBAAmBA,GAAW,aAAaA,GAAW,OAAO,EAC7D,oBAAqBA,GAAW,aAAaA,GAAW,OAAO,CAChE,EAAE,EAAK,EAGNa,GAAoB,OAClBvQ,GAAM,WAAWuQ,CAAgB,EACnC1Q,EAAO,iBAAmB,CACxB,UAAW0Q,CACrB,EAEQX,GAAU,cAAcW,EAAkB,CACxC,OAAQb,GAAW,SACnB,UAAWA,GAAW,QACvB,EAAE,EAAI,GAKX7P,EAAO,QAAUA,EAAO,QAAU,KAAK,SAAS,QAAU,OAAO,YAAa,EAG9E,IAAI2Q,EAAiBhN,GAAWxD,GAAM,MACpCwD,EAAQ,OACRA,EAAQ3D,EAAO,MAAM,CACtB,EAED2D,GAAWxD,GAAM,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,QAAQ,EACzDp2D,GAAW,CACV,OAAO45D,EAAQ55D,CAAM,CAC7B,CACK,EAEDi2D,EAAO,QAAU0F,GAAa,OAAOiL,EAAgBhN,CAAO,EAG5D,MAAMiN,EAA0B,CAAE,EAClC,IAAIC,EAAiC,GACrC,KAAK,aAAa,QAAQ,QAAQ,SAAoCC,EAAa,CAC7E,OAAOA,EAAY,SAAY,YAAcA,EAAY,QAAQ9Q,CAAM,IAAM,KAIjF6Q,EAAiCA,GAAkCC,EAAY,YAE/EF,EAAwB,QAAQE,EAAY,UAAWA,EAAY,QAAQ,EACjF,CAAK,EAED,MAAMC,EAA2B,CAAE,EACnC,KAAK,aAAa,SAAS,QAAQ,SAAkCD,EAAa,CAChFC,EAAyB,KAAKD,EAAY,UAAWA,EAAY,QAAQ,CAC/E,CAAK,EAED,IAAIj0B,EACAp9C,EAAI,EACJk2B,EAEJ,GAAI,CAACk7C,EAAgC,CACnC,MAAMG,EAAQ,CAACrB,GAAgB,KAAK,IAAI,EAAG,MAAS,EAOpD,IANAqB,EAAM,QAAQ,MAAMA,EAAOJ,CAAuB,EAClDI,EAAM,KAAK,MAAMA,EAAOD,CAAwB,EAChDp7C,EAAMq7C,EAAM,OAEZn0B,EAAU,QAAQ,QAAQmjB,CAAM,EAEzBvgE,EAAIk2B,GACTknB,EAAUA,EAAQ,KAAKm0B,EAAMvxE,GAAG,EAAGuxE,EAAMvxE,GAAG,CAAC,EAG/C,OAAOo9C,CACb,CAEIlnB,EAAMi7C,EAAwB,OAE9B,IAAIhG,EAAY5K,EAIhB,IAFAvgE,EAAI,EAEGA,EAAIk2B,GAAK,CACd,MAAMs7C,EAAcL,EAAwBnxE,GAAG,EACzCyxE,EAAaN,EAAwBnxE,GAAG,EAC9C,GAAI,CACFmrE,EAAYqG,EAAYrG,CAAS,CAClC,OAAQ5kE,EAAO,CACdkrE,EAAW,KAAK,KAAMlrE,CAAK,EAC3B,KACR,CACA,CAEI,GAAI,CACF62C,EAAU8yB,GAAgB,KAAK,KAAM/E,CAAS,CAC/C,OAAQ5kE,EAAO,CACd,OAAO,QAAQ,OAAOA,CAAK,CACjC,CAKI,IAHAvG,EAAI,EACJk2B,EAAMo7C,EAAyB,OAExBtxE,EAAIk2B,GACTknB,EAAUA,EAAQ,KAAKk0B,EAAyBtxE,GAAG,EAAGsxE,EAAyBtxE,GAAG,CAAC,EAGrF,OAAOo9C,CACX,CAEE,OAAOmjB,EAAQ,CACbA,EAASiK,GAAY,KAAK,SAAUjK,CAAM,EAC1C,MAAM9lB,EAAW4vB,GAAc9J,EAAO,QAASA,EAAO,GAAG,EACzD,OAAO6B,GAAS3nB,EAAU8lB,EAAO,OAAQA,EAAO,gBAAgB,CACpE,CACA,CAGAG,GAAM,QAAQ,CAAC,SAAU,MAAO,OAAQ,SAAS,EAAG,SAA6Bp2D,EAAQ,CAEvFumE,GAAM,UAAUvmE,CAAM,EAAI,SAASokC,EAAK6xB,EAAQ,CAC9C,OAAO,KAAK,QAAQiK,GAAYjK,GAAU,GAAI,CAC5C,OAAAj2D,EACA,IAAAokC,EACA,MAAO6xB,GAAU,IAAI,IAC3B,CAAK,CAAC,CACH,CACH,CAAC,EAEDG,GAAM,QAAQ,CAAC,OAAQ,MAAO,OAAO,EAAG,SAA+Bp2D,EAAQ,CAG7E,SAASonE,EAAmBC,EAAQ,CAClC,OAAO,SAAoBjjC,EAAKlqB,EAAM+7C,EAAQ,CAC5C,OAAO,KAAK,QAAQiK,GAAYjK,GAAU,GAAI,CAC5C,OAAAj2D,EACA,QAASqnE,EAAS,CAChB,eAAgB,qBAC1B,EAAY,CAAE,EACN,IAAAjjC,EACA,KAAAlqB,CACR,CAAO,CAAC,CACH,CACL,CAEEqsD,GAAM,UAAUvmE,CAAM,EAAIonE,EAAoB,EAE9Cb,GAAM,UAAUvmE,EAAS,MAAM,EAAIonE,EAAmB,EAAI,CAC5D,CAAC,ECtND,MAAME,EAAY,CAChB,YAAYC,EAAU,CACpB,GAAI,OAAOA,GAAa,WACtB,MAAM,IAAI,UAAU,8BAA8B,EAGpD,IAAIC,EAEJ,KAAK,QAAU,IAAI,QAAQ,SAAyBlvD,EAAS,CAC3DkvD,EAAiBlvD,CACvB,CAAK,EAED,MAAMstB,EAAQ,KAGd,KAAK,QAAQ,KAAKu8B,GAAU,CAC1B,GAAI,CAACv8B,EAAM,WAAY,OAEvB,IAAIlwC,EAAIkwC,EAAM,WAAW,OAEzB,KAAOlwC,KAAM,GACXkwC,EAAM,WAAWlwC,CAAC,EAAEysE,CAAM,EAE5Bv8B,EAAM,WAAa,IACzB,CAAK,EAGD,KAAK,QAAQ,KAAO6hC,GAAe,CACjC,IAAIC,EAEJ,MAAM50B,EAAU,IAAI,QAAQx6B,GAAW,CACrCstB,EAAM,UAAUttB,CAAO,EACvBovD,EAAWpvD,CACnB,CAAO,EAAE,KAAKmvD,CAAW,EAEnB,OAAA30B,EAAQ,OAAS,UAAkB,CACjClN,EAAM,YAAY8hC,CAAQ,CAC3B,EAEM50B,CACR,EAEDy0B,EAAS,SAAgBrgC,EAAS+uB,EAAQC,EAAS,CAC7CtwB,EAAM,SAKVA,EAAM,OAAS,IAAIk3B,GAAc51B,EAAS+uB,EAAQC,CAAO,EACzDsR,EAAe5hC,EAAM,MAAM,EACjC,CAAK,CACL,CAKE,kBAAmB,CACjB,GAAI,KAAK,OACP,MAAM,KAAK,MAEjB,CAME,UAAUvC,EAAU,CAClB,GAAI,KAAK,OAAQ,CACfA,EAAS,KAAK,MAAM,EACpB,MACN,CAEQ,KAAK,WACP,KAAK,WAAW,KAAKA,CAAQ,EAE7B,KAAK,WAAa,CAACA,CAAQ,CAEjC,CAME,YAAYA,EAAU,CACpB,GAAI,CAAC,KAAK,WACR,OAEF,MAAM3iC,EAAQ,KAAK,WAAW,QAAQ2iC,CAAQ,EAC1C3iC,IAAU,IACZ,KAAK,WAAW,OAAOA,EAAO,CAAC,CAErC,CAEE,eAAgB,CACd,MAAM6hE,EAAa,IAAI,gBAEjBoF,EAASzrE,GAAQ,CACrBqmE,EAAW,MAAMrmE,CAAG,CACrB,EAED,YAAK,UAAUyrE,CAAK,EAEpBpF,EAAW,OAAO,YAAc,IAAM,KAAK,YAAYoF,CAAK,EAErDpF,EAAW,MACtB,CAME,OAAO,QAAS,CACd,IAAIJ,EAIJ,MAAO,CACL,MAJY,IAAImF,GAAY,SAAkBpwE,EAAG,CACjDirE,EAASjrE,CACf,CAAK,EAGC,OAAAirE,CACD,CACL,CACA,CC7Ge,SAASyF,IAAOxkE,EAAU,CACvC,OAAO,SAAc5N,EAAK,CACxB,OAAO4N,EAAS,MAAM,KAAM5N,CAAG,CAChC,CACH,CChBe,SAASqyE,IAAaC,EAAS,CAC5C,OAAO1R,GAAM,SAAS0R,CAAO,GAAMA,EAAQ,eAAiB,EAC9D,CCbA,MAAMC,GAAiB,CACrB,SAAU,IACV,mBAAoB,IACpB,WAAY,IACZ,WAAY,IACZ,GAAI,IACJ,QAAS,IACT,SAAU,IACV,4BAA6B,IAC7B,UAAW,IACX,aAAc,IACd,eAAgB,IAChB,YAAa,IACb,gBAAiB,IACjB,OAAQ,IACR,gBAAiB,IACjB,iBAAkB,IAClB,MAAO,IACP,SAAU,IACV,YAAa,IACb,SAAU,IACV,OAAQ,IACR,kBAAmB,IACnB,kBAAmB,IACnB,WAAY,IACZ,aAAc,IACd,gBAAiB,IACjB,UAAW,IACX,SAAU,IACV,iBAAkB,IAClB,cAAe,IACf,4BAA6B,IAC7B,eAAgB,IAChB,SAAU,IACV,KAAM,IACN,eAAgB,IAChB,mBAAoB,IACpB,gBAAiB,IACjB,WAAY,IACZ,qBAAsB,IACtB,oBAAqB,IACrB,kBAAmB,IACnB,UAAW,IACX,mBAAoB,IACpB,oBAAqB,IACrB,OAAQ,IACR,iBAAkB,IAClB,SAAU,IACV,gBAAiB,IACjB,qBAAsB,IACtB,gBAAiB,IACjB,4BAA6B,IAC7B,2BAA4B,IAC5B,oBAAqB,IACrB,eAAgB,IAChB,WAAY,IACZ,mBAAoB,IACpB,eAAgB,IAChB,wBAAyB,IACzB,sBAAuB,IACvB,oBAAqB,IACrB,aAAc,IACd,YAAa,IACb,8BAA+B,GACjC,EAEA,OAAO,QAAQA,EAAc,EAAE,QAAQ,CAAC,CAACjzE,EAAKyB,CAAK,IAAM,CACvDwxE,GAAexxE,CAAK,EAAIzB,CAC1B,CAAC,ECzCD,SAASkzE,GAAeC,EAAe,CACrC,MAAMtoD,EAAU,IAAI4mD,GAAM0B,CAAa,EACjCn/D,EAAWgoD,GAAKyV,GAAM,UAAU,QAAS5mD,CAAO,EAGtDy2C,UAAM,OAAOttD,EAAUy9D,GAAM,UAAW5mD,EAAS,CAAC,WAAY,EAAI,CAAC,EAGnEy2C,GAAM,OAAOttD,EAAU6W,EAAS,KAAM,CAAC,WAAY,EAAI,CAAC,EAGxD7W,EAAS,OAAS,SAAgB09D,EAAgB,CAChD,OAAOwB,GAAe9H,GAAY+H,EAAezB,CAAc,CAAC,CACjE,EAEM19D,CACT,CAGA,MAAMo/D,GAAQF,GAAe9sD,EAAQ,EAGrCgtD,GAAM,MAAQ3B,GAGd2B,GAAM,cAAgBpL,GACtBoL,GAAM,YAAcZ,GACpBY,GAAM,SAAWrL,GACjBqL,GAAM,QAAUrC,GAChBqC,GAAM,WAAapR,GAGnBoR,GAAM,WAAanS,GAGnBmS,GAAM,OAASA,GAAM,cAGrBA,GAAM,IAAM,SAAaC,EAAU,CACjC,OAAO,QAAQ,IAAIA,CAAQ,CAC7B,EAEAD,GAAM,OAASN,IAGfM,GAAM,aAAeL,IAGrBK,GAAM,YAAchI,GAEpBgI,GAAM,aAAevM,GAErBuM,GAAM,WAAahX,GAASqI,GAAenD,GAAM,WAAWlF,CAAK,EAAI,IAAI,SAASA,CAAK,EAAIA,CAAK,EAEhGgX,GAAM,WAAa3C,GAAS,WAE5B2C,GAAM,eAAiBH,GAEvBG,GAAM,QAAUA,GCjFT,MAAME,EAAqB,CAC9B,aAAc,CACV,KAAK,SAAW,KAChB,KAAK,WAAa,IAC1B,CACA,CACO,MAAMC,YAAuBD,EAAqB,CACrD,aAAc,CACV,MAAO,EACP,KAAK,OAAS,IACtB,CACA,CACO,MAAME,YAAyBF,EAAqB,CACvD,aAAc,CACV,MAAO,EACP,KAAK,OAAS,KACd,KAAK,OAAS,CAAE,CACxB,CACA,CACO,MAAMG,YAAuBD,GAAiB,CACjD,aAAc,CACV,MAAO,EACP,KAAK,KAAO,EACZ,KAAK,SAAW,GAChB,KAAK,QAAU,KACf,KAAK,QAAU,KACf,KAAK,kBAAoB,KACzB,KAAK,OAAS,IACtB,CACA,CAMO,SAASE,GAAeC,EAAY,CACvC,GAAI,CAACA,EACD,MAAO,CAAE,EAEb,IAAIC,EAAaD,EAEbE,EAAe,CACf,WACA,SACA,OACA,WACA,UACA,UACA,mBACH,EAEGC,EAAeD,EAAa,OAAO,CAAC9wE,EAAK/C,KACrCA,KAAO4zE,GAAcA,EAAW5zE,CAAG,GAAK,OACxC+C,EAAI/C,CAAG,EAAI,OAAO4zE,EAAW5zE,CAAG,CAAC,GAE9B+C,GACR,EAAE,EAEL,MAAMu7D,EAASsV,EAAW,OAC1B,GAAI,OAAOtV,GAAU,UAAYA,EAC7B,QAASt+D,KAAOs+D,EAAQ,CACpB,IAAI78D,EAAQ68D,EAAOt+D,CAAG,EAClByB,IAAU,SACVqyE,EAAa,UAAY9zE,CAAG,EAAI,OAAOyB,CAAK,EAE5D,CAEQ,MAAM,QAAQmyE,EAAW,MAAM,IAC/BE,EAAa,OAASF,EAAW,OAAO,KAAK,GAAG,GAGpD,MAAMG,EAAaH,EAAW,WAC9B,GAAIG,EAAY,CAEZD,EAAa,WAAgBC,EAAW,UAAU,KAClD,IAAIC,EAAaD,EAAW,UAAU,MAItC,QAASE,KAAaD,EAAY,CAC9B,MAAME,EAAYF,EAAWC,CAAS,EACtC,GAAIA,KAAaF,EAAY,CACzB,MAAMt5B,EAAas5B,EAAWE,CAAS,EACvCH,EAAa,cAAgBI,EAAU,IAAI,EAAIja,GAASxf,EAAYy5B,CAAS,CAC7F,CACA,CACA,CACI,OAAOJ,CACX,CA2EA,eAAeK,IAAe/uD,EAAM,CAoBhC,OAnBIA,aAAgB,MAChBA,EAAK,KAAO,GACZA,EAAK,MAAQ,qBAIbA,EAAO,MAAM,IAAI,QAAQ,CAAC5B,EAASszB,IAAW,CAC1C,IAAIw3B,EAAS,IAAI,WACjBA,EAAO,OAAS,IAAM,CAClB,GAAI,CACA9qD,EAAQ,KAAK,MAAM8qD,EAAO,MAAM,CAAC,CACrD,OACuBjmE,EAAG,CACNyuC,EAAOzuC,CAAC,CAC5B,CACa,EACDimE,EAAO,WAAWlpD,CAAI,CAClC,CAAS,GAED,OAAOA,GAAS,UAAY,EAAE,kBAAmBA,GAC1C,KAEJA,CACX,CACO,SAASgvD,IAAmBjtE,EAAO,OACtC,MAAM,EAAIA,EACV,GAAI,OAAO,GAAM,SACb,OAAO,EAEN,GAAI,OAAO,GAAM,UAAY,GAAK,KAAM,CACzC,GAAI,iBAAkB,EAAG,CACrB,MAAMkE,EAAS,EAAE,SACjB,GAAIA,GACA,OAAOA,EAAO,MAAS,UACvB,YAAaA,EAAO,KACpB,OAAOA,EAAO,KAAK,SAAW,gBAKlC,MAAMgpE,GAAanvE,EAAA,EAAE,WAAF,YAAAA,EAAY,WAC/B,GAAImvE,GAAc,EAAE,SAAW,CAAC,EAAE,QAAQ,SAASA,CAAU,EACzD,MAAO,GAAG,EAAE,OAAO,KAAKA,CAAU,GAElD,CACQ,MAAO,YAAa,GAAK,OAAO,EAAE,SAAY,SACxC,EAAE,QACF,0BACd,KAEQ,OAAO,2BAEf,CAEO,MAAMC,GAAclB,GAAM,OAAQ,EACzCkB,GAAY,SAAS,QAAU,OAC/BA,GAAY,SAAS,iBAAoBh/D,GAAM+iD,GAAoB/iD,EAAG,EAAK,EAG3Eg/D,GAAY,aAAa,QAAQ,IAAKnT,GAAW,SAC7C,MAAM7xB,GAAO6xB,EAAO,SAAW,KAAOA,EAAO,KAAO,IACpD,OAAI7xB,GAAO,CAACA,EAAI,WAAW,GAAG,IAEtB,CAAC,KAAO,IAAI,IAAIA,CAAG,EAAE,WAAWpqC,EAAA,2BAAQ,WAAR,YAAAA,EAAkB,SAI3Ci8D,EAGX,QAAO3gB,EAAA2gB,GAAA,YAAAA,EAAQ,UAAR,YAAA3gB,EAAiB,MAAO,YAE/B2gB,EAAO,QAAQ,IAAI,mBAAoB,gBAAgB,EAChDA,GAIA,CACH,GAAGA,EACH,QAAS,CACL,GAAGA,EAAO,QACT,mBAAqB,gBACzB,CACJ,CAET,CAAC,EACD,MAAMoT,GAAuB,IAAI,WAM5BrvE,GAAA4zD,GALE,MAAM0b,EAAU,CAMnB,YAAYC,EAAW,CALvB5nB,GAAA,kBAIAA,GAAA,KAAC3nD,GAAsB,IAOvB2nD,GAAA,+BAA0B,IAgB1BA,GAAA,qBAqMAA,GAAA,0BA1NI,KAAK,UAAY4nB,CACzB,CASI,iCAAkC,CAC9B,OAAO,KAAK,+BAAgC,CACpD,CAII,gCAAiC,CAC7B,YAAK,wBAA0B,GACxB,IACf,CAMI,QAAS,CACL,MAAM5tC,EAAQ,OAAO,OAAO,OAAO,eAAe,IAAI,CAAC,EACvD,cAAO,OAAOA,EAAO,IAAI,EAClBA,CACf,CACI,YAAY6tC,EAAY1vC,EAAS2vC,EAAaC,EAAa,CACvD,IAAIC,EAAkBH,EAClB1/B,EACA,OAAO6/B,GAAoB,YAC3B7/B,EAAO6/B,EAAgB,KAAK,UAAU,OAAO,EAC7CA,EAAkB7/B,EAAK,eAElB,OAAO6/B,GAAoB,WAChC7/B,EAAO6/B,EACPA,EAAkBA,EAAgB,eAItC,IAAI7gE,EACJ,GAAI2gE,GAAeC,EACf,OAAQC,EAAe,CACnB,IAAK,OACD7gE,EAAW,IAAI8gE,IAAqB,KAAM9vC,EAAS2vC,EAAaC,CAAW,EAC3E,MACJ,IAAK,OACD5gE,EAAW,IAAI+gE,IAAqB,KAAM/vC,EAAS2vC,EAAaC,CAAW,EAC3E,MACJ,QACI,KAAM,uBAAuBC,CAAe,EAChE,KAGY,QAAQA,EAAe,CACnB,IAAK,OACD7gE,EAAW,IAAIghE,GAAa,KAAMhwC,CAAO,EACzC,MACJ,IAAK,OACDhxB,EAAW,IAAIihE,GAAa,KAAMjwC,CAAO,EACzC,MACJ,QACI,KAAM,uBAAuB6vC,CAAe,EAChE,CAGQ,OAAA7gE,EAAS,UAAYghC,EACdhhC,CACf,CAOI,QAAQ9I,EAAQ49B,EAAQq4B,EAAQ+T,EAAoB,CAChD,MAAMC,EAAe,KAAK,WAAWjqE,EAAQ49B,CAAM,EAC7CwG,EAAM,IAAI,KAAK,UAAU,eAAe,IAAIpkC,EAAO,IAAI,GAC7D,IAAIqkE,EACA3kC,EACJ,GAAI1/B,EAAO,YAAc,OAASA,EAAO,YAAc,SAAU,CAE7D0/B,EAAQ,OACR,MAAMq3B,EAAWxJ,IAAiB0c,CAAY,EAC9C,IAAIC,EAAU,GACdnT,EAAS,QAASh9D,GAAOmwE,MAAYnwE,aAAa,KAAK,EACnDmwE,EAIA7F,EAAOtN,EAEF/2D,EAAO,KAGZqkE,EAAO4F,EAKP5F,EAAOlX,GAAoB8c,CAAY,CAEvD,MAGY5F,EAAO,OACP3kC,EAAQuqC,EAEZ,MAAME,EAAe,CACjB,OAAQnqE,EAAO,WACf,IAAKokC,EACL,KAAMigC,EACN,aAAcrkE,EAAO,OAAO,MAAQ,OAAS,OAAS,OACtD,YAAa,KAAK,aAClB,GAAGi2D,EACH,OAAQ,CACJ,GAAGv2B,EACH,GAAIu2B,GAAUA,EAAO,OAASA,EAAO,OAAS,KAC9C,GAAGuS,GAAewB,CAAkB,CACvC,EACD,wBAAyB,CACrB,OAAOhqE,CACV,CACJ,EACD,GAAI,KAAK,oBACL,KAAK,kBAAkB,KAAK,CAAE,QAASmqE,EAAc,OAAQnqE,EAAQ,EACjE,CAAC,KAAK,kBAAkB,WACxB,OAAO,IAAI,QAAQ,IAAM,CAEzC,CAAiB,EAGT,IAAIoqE,EAAU,GACV1tC,EACJ,GAAI18B,EAAO,aAAe,OACtB,KAAK,yBACL,CAACi2D,EAAQ,CAET,GADAv5B,EAAW0sC,GAAY,OAAOe,CAAY,EACtCd,GAAqB,IAAI3sC,CAAQ,EACjC,OAAO2sC,GAAqB,IAAI3sC,CAAQ,EAGxC0tC,EAAU,EAE1B,CACQ,IAAIt3B,EAAUs2B,GAAY,QAAQe,CAAY,EAAE,KAAM1lE,GAAM,SACxD,GAAI,OAAOA,EAAE,MAAS,SAGlB,MAAM,IAAI,MAAM,gBAAczK,EAAAyK,EAAE,UAAF,YAAAzK,EAAY,oBAAmBs7C,EAAA7wC,EAAE,UAAF,YAAA6wC,EAAY,gBAAe,IAAI,OAAO7wC,EAAE,IAAI,wBAAwB,EAErI,OAAQzE,EAAO,OAAO,KAAI,CACtB,IAAK,OAGD,IAAIqqE,EAAc5lE,EAAE,QAAQ,qBAAqB,EAC7C6lE,EAAW,GACf,GAAID,EAAa,CACb,MAAME,EAAoB,2CACpBC,EAAqB,0CAC3B,GAAID,EAAkB,KAAKF,CAAW,EAClCC,EAAW,mBAAmBC,EAAkB,KAAKF,CAAW,EAAE,CAAC,CAAC,MAEnE,CAGD,MAAMI,EAAgBJ,EACjB,YAAW,EACX,QAAQ,WAAW,EACxB,GAAII,GAAiB,EAAG,CACpB,MAAMC,EAAqBL,EAAY,MAAMI,CAAa,EACpDljB,EAAUijB,EAAmB,KAAKE,CAAkB,EACtDnjB,GAAW,MAAQA,EAAQ,CAAC,IAC5B+iB,EAAW/iB,EAAQ,CAAC,EAExD,CACA,CACA,CAEoB,MAAMojB,EAAOlmE,EAAE,KACf,OAAAA,EAAE,KAAO,CACL,cAAe,GACf,OAAQ,IAAI,KAAK,CAACkmE,CAAI,EAAGL,EAAU,CAAE,KAAMK,EAAK,KAAM,CACzD,EACMlmE,EACX,IAAK,OACD,OAAOA,EACX,QACI,OAAQzE,EAAO,cAAa,CACxB,IAAK,OACD,OAAAyE,EAAE,KAAK,OAAS+pD,GAAe/pD,EAAE,KAAK,OAAQzE,EAAO,MAAM,EACpDyE,EACX,IAAK,OACD,OAAAA,EAAE,KAAK,KAAO+pD,GAAe/pD,EAAE,KAAK,KAAMzE,EAAO,MAAM,EAChDyE,CACnC,CACA,CACA,CAAS,EACD,OAAI2lE,IAEAf,GAAqB,IAAI3sC,EAAUoW,CAAO,EAE1CA,EAAUA,EAAQ,KAAMvzC,IAEpB8pE,GAAqB,OAAO3sC,CAAQ,EAC7Bn9B,GACPpC,GAAM,CACN,MAAAksE,GAAqB,OAAO3sC,CAAQ,EAE9Bv/B,CACtB,CAAa,GAEE21C,CACf,CAOI,iBAAiB83B,EAAMC,EAAU,GAAO,CACpC,MAAMC,EAAM,KAAK,kBACjB,GAAI,CACA,MAAMC,EAAoB,KAAK,kBAAoB,OAAO,eAAe,CAAE,EAAE,YAAa,CACtF,WAAY,GACZ,MAAOF,CACvB,CAAa,EAED,MAAO,CADQD,EAAM,EACLG,CAAgB,CAC5C,QACgB,CACJ,KAAK,kBAAoBD,CACrC,CACA,CAMI,WAAW9qE,EAAQ49B,EAAQ,CACvB,MAAMiqB,EAAY,CAAE,EACpB,QAASkhB,KAAa/oE,EAAO,OAAQ,CACjC,MAAMgpE,EAAYhpE,EAAO,OAAO+oE,CAAS,EACnCx5B,EAAa3R,EAAOmrC,CAAS,EAGnC,GAFIx5B,IAAe,QAEfA,IAAe,MACfvvC,EAAO,MAAQ,SACdgpE,EAAU,MAAQ,UACfA,EAAU,MAAQ,QAClBA,EAAU,MAAQ,QAClBA,EAAU,MAAQ,WAMtB,SAEJ,MAAMgC,EAAWhC,EAAU,MAAQ,aAAeA,EAAU,SAAWA,EACnEgC,EAAS,MAAQ,QAAUA,EAAS,MAAQ,SAE5CnjB,EAAUkhB,CAAS,EAAI3a,GAAW7e,EAAYy5B,CAAS,EAGvDnhB,EAAUkhB,CAAS,EAAIha,GAASxf,EAAYy5B,CAAS,CAErE,CACQ,OAAOnhB,CACf,CACA,CACO,MAAMojB,YAAuB3B,EAAU,CAC1C,IAAIh/D,EAAIm+D,EAAYxS,EAAQ,CACxB,OAAO,KAAK,QAAQ,CAChB,KAAM,OAAO3rD,CAAE,GACf,YAAa,MACb,cAAe,OACf,WAAY,MACZ,OAAQ,CAAE,EACV,OAAQ,KAAK,cACzB,EAAW,CAAE,EAAE2rD,EAAQwS,CAAU,CACjC,CACI,KAAKA,EAAYxS,EAAQ,CACrB,OAAO,KAAK,QAAQ,CAChB,KAAM,OACN,YAAa,OACb,cAAe,OACf,WAAY,MACZ,OAAQ,CAAE,EACV,OAAQ,KAAK,oBACzB,EAAW,CAAE,EAAEA,EAAQwS,CAAU,CACjC,CACI,MAAMA,EAAYxS,EAAQ,CACtB,OAAO,KAAK,QAAQ,CAChB,KAAM,QACN,YAAa,QACb,cAAe,OACf,WAAY,MACZ,OAAQ,CAAE,EACV,OAAQ,CACJ,KAAM,UACN,YAAa,SACb,KAAM,SACN,KAAM,OACT,CACb,EAAW,CAAE,EAAEA,EAAQwS,CAAU,CACjC,CACI,KAAKnwE,EAAMmwE,EAAYxS,EAAQ,CAC3B,KAAM,CAAE,OAAAiV,EAAQ,GAAGttC,CAAQ,EAAG6qC,GAAc,IAAIJ,IAChD,OAAO,KAAK,QAAQ,CAChB,KAAM,OACN,YAAa,OACb,cAAe,OACf,WAAY,OACZ,OAAQ,OAAO,YAAY,OAAO,QAAQ,KAAK,UAAU,KAAK,EAAE,OAAQj+D,GAAM,CAACA,EAAE,CAAC,EAAE,aAAa,CAAC,EAClG,OAAQ,KAAK,cAChB,EAAE4kD,GAAiB12D,EAAM4yE,CAAM,EAAGjV,EAAQr4B,CAAM,CACzD,CACI,SAAS1jB,EAAMuuD,EAAYxS,EAAQ,CAC/B,OAAO,KAAK,QAAQ,CAChB,KAAM,WACN,YAAa,WACb,cAAe,OACf,WAAY,OACZ,OAAQ,CACJ,MAAO,CACH,KAAM,QACN,YAAa,QACb,KAAM,QACN,KAAM,SACT,CACJ,EACD,KAAM,GACN,OAAQ,KAAK,cACzB,EAAW/7C,EAAM+7C,EAAQwS,CAAU,CACnC,CACI,OAAOn+D,EAAIm+D,EAAYxS,EAAQ,CAC3B,OAAO,KAAK,QAAQ,CAChB,KAAM,UAAU3rD,CAAE,GAClB,YAAa,SACb,cAAe,OACf,WAAY,OACZ,OAAQ,CAAE,EACV,OAAQ,KAAK,cACzB,EAAW,CAAE,EAAE2rD,EAAQwS,CAAU,CACjC,CAEI,IAAI,gBAAiB,CACjB,MAAO,CACH,KAAM,SACN,YAAa,GACb,KAAM,QACN,KAAM,QACN,QAAS,KAAK,SACjB,CACT,CAEI,IAAI,sBAAuB,CACvB,MAAO,CACH,KAAM,OACN,YAAa,GACb,KAAM,aACN,KAAM,QACN,SAAU,KAAK,cAClB,CACT,CACA,CACO,MAAM0C,YAAyB7B,EAAU,CAChD,CAIA,MAAM8B,EAAa,CAKf,YAAYC,EAAWvxC,EAAS,CAHhC6nB,GAAA,eACAA,GAAA,kBACAA,GAAA,gBAMI,MAAMuc,EAHa,YAAuB5+D,EAAM,CAC5C,OAAO4+D,EAAO,gBAAgB,KAAMpkC,EAAS,CAAC,GAAGx6B,CAAI,CAAC,CACzD,EAID,OAAA4+D,EAAO,OAASA,EAEhBA,EAAO,QAAUpkC,EAEjBokC,EAAO,UAAYmN,EACnB,OAAO,eAAenN,EAAQ,WAAW,SAAS,EAC3CA,CACf,CACA,CASAkN,GAAa,UAAU,UAAY,mBAC5B,MAAME,WAAiBh2B,GAAA81B,GAIzBpxE,GAAA4zD,GAJyBtY,GAAa,CAsXvC,YAAY+1B,EAAWvxC,EAAS,CAC5B,MAAMuxC,EAAWvxC,CAAO,EAnX5B6nB,GAAA,KAAC3nD,GAAsB,IACvB2nD,GAAA,mBAAcj9C,GAAI,EAAK,GAQvBi9C,GAAA,uBAAkBj9C,GAAI,IAAI,GAQ1Bi9C,GAAA,iBAAYj9C,GAAI,IAAI,GAQpBi9C,GAAA,mBAAcj9C,GAAI,EAAK,GAWvBi9C,GAAA,qBAAgB/8C,GAAY,GAoB5B+8C,GAAA,8BAwBAA,GAAA,+BAA0B,IAS1BA,GAAA,wBAAmB,YAwCnBA,GAAA,qBAgBAA,GAAA,kBAAa,CAAE,YAAa,GAAI,WAAY,EAAI,GAqBhDA,GAAA,uBAAkB,KA8MtB,CAjXI,IAAI,WAAY,CACZ,OAAO,KAAK,YAAY,KAChC,CACI,IAAI,UAAU5nD,EAAG,CACb,KAAK,YAAY,MAAQA,CACjC,CAGI,IAAI,eAAgB,CAChB,OAAO,KAAK,gBAAgB,KACpC,CACI,IAAI,cAAcA,EAAG,CACjB,KAAK,gBAAgB,MAAQA,CACrC,CAGI,IAAI,SAAU,CACV,OAAO,KAAK,UAAU,KAC9B,CACI,IAAI,QAAQA,EAAG,CACX,KAAK,UAAU,MAAQA,CAC/B,CAMI,IAAI,WAAY,CACZ,OAAO,KAAK,YAAY,KAChC,CACI,IAAI,UAAUA,EAAG,CACb,KAAK,YAAY,MAAQA,CACjC,CAKI,IAAI,aAAc,CACd,OAAO,KAAK,cAAc,KAClC,CAII,OAAQ,CACJ,GAAI,KAAK,UACL,MAAM,IAAI,MAAM,0CAA0C,EAC9D,KAAK,UAAY,GACjB,KAAK,OAAS,KACd,KAAK,cAAgB,KACrB,KAAK,QAAU,KACf,KAAK,UAAY,GACjB,KAAK,cAAc,MAAQ,MACnC,CAYI,mBAAmBwxE,EAAe,CAC9B,GAAI,KAAK,WAAa,KAAK,UAAU,YAAc,MAE/C,MAAM,IAAI,MAAM,wDAAwD,EAE5E,YAAK,sBACDA,IAAkB,GACZ,OACAA,IAAkB,OACd,GACA/mE,GAAQ+mE,CAAa,EAC5B,IACf,CAMI,+BAAgC,CAC5B,YAAK,wBAA0B,GACxB,IACf,CAgBI,eAAez5D,EAAM,CAEjB,YAAK,iBAAmBA,EACjB,IACf,CAeI,IAAI,iBAAkB,CAClB,OAAO,KAAK,gBACpB,CACI,IAAI,gBAAgB/c,EAAK,CACrB,KAAK,eAAeA,CAAG,CAC/B,CAKI,QAAS,CACD,KAAK,eACL,KAAK,aAAa,OAAQ,EAC1B,KAAK,UAAY,GAE7B,CAEI,cAAcmyC,KAAY5nC,EAAM,CAC5B,GAAK,QAAQ4nC,CAAO,EAEpB,OAAO,KAAK,gBAAgB,KAAM,KAAK,QAAS,CAAC,GAAG5nC,CAAI,CAAC,CACjE,CAMI,YAAY8D,EAAU,CAClB,OAAK,KAAK,WAAW,YAAY,SAASA,CAAQ,GAC9C,KAAK,WAAW,YAAY,KAAKA,CAAQ,EAEtC,IACf,CAKI,WAAWA,EAAU,CACjB,OAAK,KAAK,WAAW,WAAW,SAASA,CAAQ,GAC7C,KAAK,WAAW,WAAW,KAAKA,CAAQ,EAErC,IACf,CAEI,MAAM,gBAAgB5D,EAASs6B,EAASx6B,EAAM,CAC1C,IAAI+rE,EAAY,KAAK,UACrB,GAAI,KAAK,UACL,OAAQ,KAAK,iBAAgB,CACzB,IAAK,WACD,MAAM,MAAM,0CAA0C,KAAK,QAAQ,SAAU,GAAE,EACnF,IAAK,SACD,KAAK,OAAQ,EACb,MACJ,IAAK,WAGG,KAAK,iBACL,KAAK,gBAAgB,OAAQ,EAEjC,MAAMzI,EAAS,CAAE,EACjBA,EAAO,QAAU,IAAI,QAAQ,CAACtqD,EAASszB,IAAW,CAC9Cg3B,EAAO,QAAUtqD,EACjBsqD,EAAO,OAASh3B,CACxC,CAAqB,EACD,KAAK,gBAAkBg3B,EAGvB,GAAI,CACA,MAAMA,EAAO,OACrC,MAC0B,CAIF,MACxB,CACA,CAKQ,KAAK,UAAY,GACjB,GAAI,CACA,MAAMh9B,EAAQsiC,GAAM,YAAY,OAAQ,EACxCmD,EAAYA,EAAU,OAAQ,EAC9BA,EAAU,aAAezlC,EAAM,MAC3B,KAAK,yBACLylC,EAAU,+BAAgC,EAE9C,MAAMG,EAAsB,KAAK,sBACjC,GAAIA,EAAqB,CACrB,MAAMC,EAAkB3xC,EACxBA,EAAU,SAAY,OAClB,KAAM,CAACgZ,EAAS44B,CAAQ,EAAIL,EAAU,iBAAiB,IAAMI,EAAgB,MAAMjsE,EAAS,CAAC6rE,EAAW,GAAG/rE,CAAI,CAAC,EAAG,EAAI,EACjH,CAAE,QAAA42D,EAAS,OAAAl2D,GAAW0rE,EAAS,CAAC,EACtC,GAAI,CAACxV,GAAW,CAACpjB,EACb,OAAOA,EACX,KAAM,CAAE,IAAK64B,EAAS,QAAAC,EAAU,eAAgB,cAAeC,EAAmB,IAAI,EAAML,EAC5F,KAAIxxE,EAAAk8D,EAAQ,SAAR,YAAAl8D,EAAgB,gBAAiB,MAIjC,eAAQ,KAAK,iFAAiF,EACvF84C,EAEX,GAAI9yC,EAAO,OAAO,MAAQ,QAAUA,EAAO,OAAO,MAAQ,OAEtD,eAAQ,KAAK,iEAAiEA,EAAO,OAAO,IAAI,sBAAsB,EAC/G8yC,EAEX,MAAMg5B,EAAa1C,GAAY,OAAOlT,CAAO,EACvC6V,EAAUJ,EAAUA,EAAQzV,EAAS4V,CAAU,EAAIA,EACzD,GAAI,CAACC,EACD,OAAOj5B,EACX,MAAMh+C,EAAM,YAAYi3E,CAAO,GACzBC,EAAcJ,EAAQ,QAAQ92E,CAAG,EACvC,GAAIk3E,GAAe,KAAK,gBAAkB,MAAQ,CAAC,KAAK,UAAW,CAC/D,KAAM,CAAE,KAAAjhB,EAAM,OAAQkhB,EAAc,OAAA9rE,CAAM,EAAM,KAAK,MAAM6rE,CAAW,EAIhEE,EAAkB,KAAK,IAAID,GAAgB,OAAO,UAAWJ,GAAoB,OAAO,SAAS,EACvG,GAAI9gB,GAAQ,KAAK,IAAG,EAAK,IAAOmhB,EAAiB,CAI7C,OAAQlsE,EAAO,cAAa,CACxB,IAAK,OACDwuD,GAAeruD,EAAO,OAAQH,EAAO,MAAM,EAC/C,IAAK,OACDwuD,GAAeruD,EAAO,KAAMH,EAAO,MAAM,CAC7E,CAC4B,KAAK,iBAAiBG,CAAM,EAG5B,MAAM+mE,EAAc,KAAK,WAAW,YACpC,QAASxxE,EAAI,EAAGA,EAAIwxE,EAAY,OAAQxxE,IAAK,CAEzC,MAAMy2E,GADKjF,EAAYxxE,CAAC,EACJ,MAAM8J,EAAS,CAAC,IAAI,CAAC,EACrC2sE,cAAoB,SACpB,MAAMA,EAE1C,CACA,CACA,CACoB,MAAMC,EAAO,MAAMt5B,EAEb54B,EAAOkyD,EAAK,KAClB,GAAI,CACAC,GAAuBT,CAAO,EAC9BA,EAAQ,QAAQ92E,EAAK,KAAK,UAAU,CAChC,KAAM,KAAK,IAAG,EAAK,IACnB,OAAQ+2E,EACR,OAAQ3xD,CACpC,EAA2B,CAACplB,EAAKyB,IAAUzB,GAAO,aAAeyB,IAAU,KAAO,OAAYA,CAAK,CAAC,CACpG,OAC2B4G,EAAG,CACN,QAAQ,KAAK,yDAA0DA,CAAC,CAChG,CACoB,OAAOivE,CACV,CACjB,CACY,KAAK,aAAexmC,EACpB,IAAIkN,EAAUhZ,EAAQ,MAAMt6B,EAAS,CAAC6rE,EAAW,GAAG/rE,CAAI,CAAC,EACzD,GAAI,CAACwzC,EAAS,CACV,KAAK,UAAY,GACjB,MAChB,CACY,MAAMs5B,EAAO,MAAMt5B,EACnB,GAAI,CAACs5B,EAAM,CACP,KAAK,UAAY,GACjB,MAChB,CACY,MAAMlyD,EAAOkyD,EAAK,KAClB,OAAO,KAAK,aACZ,KAAK,cAAc,MAAQA,EAC3B,KAAK,iBAAiBlyD,CAAI,EAC1B,MAAMgtD,EAAc,KAAK,WAAW,YACpC,QAASxxE,EAAI,EAAGA,EAAIwxE,EAAY,OAAQxxE,IAAK,CAEzC,MAAMy2E,EADKjF,EAAYxxE,CAAC,EACJ,MAAM8J,EAAS,CAAC,IAAI,CAAC,EACrC2sE,aAAoB,SACpB,MAAMA,CAE1B,CACY,YAAK,UAAY,IACVjyD,GAAA,YAAAA,EAAM,UAAUA,GAAA,YAAAA,EAAM,KACzC,OACeoyD,EAAQ,CACX,GAAIpE,GAAM,SAASoE,CAAM,EAOrB,OAEC,GAAIC,IACLD,GACA,OAAOA,GAAU,UACjB,SAAUA,GACVA,EAAO,MAAQ,eAKf,OAGA,IAAIrwE,EAAQqwE,EAEhB,GAAI,CACA,OAAO,KAAK,aACZ,KAAK,cAAgB,GACrB,MAAMnsE,EAAS,OAAOlE,GAAU,UAAY,aAAcA,EACpDA,EAAM,SACN,OACN,IAAIuwE,EACJ,KAAK,cAAc,MAAQrsE,EACvBA,IAAWqsE,EAAa,MAAMvD,IAAe9oE,EAAO,IAAI,GACxD,KAAK,iBAAiBqsE,CAAU,EAGhC,KAAK,QAAUtD,IAAmBjtE,CAAK,EAE3C,MAAMkrE,EAAa,KAAK,WAAW,WACnC,QAASzxE,EAAI,EAAGA,EAAIyxE,EAAW,OAAQzxE,IAAK,CAExC,MAAMy2E,EADKhF,EAAWzxE,CAAC,EACH,MAAM8J,EAAS,CAAC,IAAI,CAAC,EACrC2sE,aAAoB,SACpB,MAAMA,CAE9B,CACA,QACoB,CACJ,KAAK,UAAY,EACjC,CACY,MAAMlwE,CAClB,QACgB,CACA,KAAK,kBACL,KAAK,gBAAgB,QAAS,EAC9B,KAAK,gBAAkB,KAEvC,CACA,CAIA,CAEA,IAAIswE,GAAkB,GACtB,OAAO,iBAAiB,eAAiBpvE,GAAM,CAC3CovE,GAAkB,GAElB,WAAW,IAAOA,GAAkB,GAAQ,GAAI,CACpD,CAAC,EACD,SAASF,GAAuBT,EAAS,CACrC,QAASl2E,EAAI,EAAGA,EAAIk2E,EAAQ,OAAQl2E,IAAK,CACrC,MAAMZ,EAAM82E,EAAQ,IAAIl2E,CAAC,EACzB,GAAI,CAACZ,EAAI,WAAW,WAAW,EAC3B,SACJ,MAAMwD,EAAOszE,EAAQ,QAAQ92E,CAAG,EAChC,GAAI,CACA,KAAM,CAAE,KAAAi2D,EAAM,OAAA0hB,CAAM,EAAK,KAAK,MAAMn0E,CAAI,EACxC,GAAI,OAAOyyD,GAAQ,UAAY,OAAO0hB,GAAU,SAC5C,SACA1hB,EAAO,KAAK,IAAG,EAAK,IAAO0hB,IAC3Bb,EAAQ,WAAW92E,CAAG,EACtBY,IAEhB,MACc,CAEd,CACA,CACA,CACA22E,GAAuB,YAAY,EACnCA,GAAuB,cAAc,EAC9B,MAAMvC,WAAqBwB,EAAS,CAuBvC,YAAYD,EAAWvxC,EAAS,CAC5B,MAAMuxC,EAAWvxC,CAAO,EAtB5B6nB,GAAA,kBACAA,GAAA,0BAAqBj9C,GAAI,IAAI,GAQ7Bi9C,GAAA,gBAAWj9C,GAAI,IAAI,GA0BnBi9C,GAAA,kBAZJ,CApBI,IAAI,kBAAmB,CACnB,OAAO,KAAK,mBAAmB,KACvC,CACI,IAAI,iBAAiB5nD,EAAG,CACpB,KAAK,mBAAmB,MAAQA,CACxC,CAGI,IAAI,QAAS,CACT,OAAO,KAAK,SAAS,KAC7B,CACI,IAAI,OAAOA,EAAG,CACV,KAAK,SAAS,MAAQA,EACtB,KAAK,UAAYA,GAAK,IAC9B,CACI,IAAI,aAAc,CACd,OAAO,MAAM,WACrB,CAII,OAAQ,OACJ,MAAM,MAAO,EACb,KAAK,OAAS,KACd,KAAK,iBAAmB,MACpBC,EAAA,KAAK,aAAL,MAAAA,EAAiB,MACjB,IAAI,gBAAgB,KAAK,WAAW,GAAG,EACvC,KAAK,WAAW,IAAM,OACtB,KAAK,WAAW,OAAS,OACzB,KAAK,WAAa,OAE9B,CAMI,mBAAmB8zD,GAAM9zD,MAAA0X,GAAoB,IAApB,YAAA1X,EAAsB,SAAO,aAClD,MAAMmG,EAAS,KAAK,OACpB,GAAIA,KAAUnG,EAAA,KAAK,aAAL,YAAAA,EAAiB,QAK3B,OAAOs7C,EAAA,KAAK,aAAL,YAAAA,EAAiB,IAO5B,IALIE,EAAA,KAAK,aAAL,MAAAA,EAAiB,KAGjB,IAAI,iBAAgBD,EAAA,KAAK,aAAL,YAAAA,EAAiB,GAAG,EAExC,EAAEp1C,aAAkB,MACpB,OAEJ,KAAK,aAAL,KAAK,WAAe,CAChB,OAAQ,IAAI,QACZ,OAAQ,CACX,GACD,MAAMusE,EAAS,KAAK,WACpB,OAAAA,EAAO,IAAM,IAAI,gBAAgBvsE,CAAM,EACvCusE,EAAO,OAASvsE,EACZ2tD,GAAO,CAAC4e,EAAO,OAAO,IAAI5e,CAAG,IAC7B4e,EAAO,SACPA,EAAO,OAAO,IAAI5e,CAAG,EACrB38C,GAAgB,IAAM,CAClBu7D,EAAO,SACHA,EAAO,KAAOA,EAAO,QAAU,IAC/B,IAAI,gBAAgBA,EAAO,GAAG,EAC9BA,EAAO,IAAM,OACbA,EAAO,OAAS,OAEpC,EAAe7e,GAAoBC,CAAG,CAAC,GAGxB,KAAK,WAAW,GAC/B,CACI,iBAAiB5zC,EAAM,CACnB,KAAK,cAAgBA,EAAK,cAC1B,KAAK,QAAUA,EAAK,SAAW,KAC3B,qBAAsBA,EACtB,KAAK,iBAAmBA,EAAK,kBAAoB,KAGjD,KAAK,iBAAmB,KAExB,WAAYA,EACZ,KAAK,OAASA,EAAK,QAAU,KAG7B,KAAK,OAAS,KAElB,KAAK,UAAY,KAAK,QAAU,IACxC,CACA,CACO,MAAM0vD,YAA6BE,EAAa,CAsDnD,YAAYuB,EAAWvxC,EAAS2vC,EAAaC,EAAa,CACtD,MAAM2B,EAAWvxC,CAAO,EAtD5B6nB,GAAA,oBACAA,GAAA,oBACAA,GAAA,cAASj9C,GAAK,GAqDV,KAAK,YAAc+kE,EACnB,KAAK,YAAcC,EACnB,KAAK,UAAW,CACxB,CAtDI,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,KAC3B,CACI,IAAI,KAAK3vE,EAAG,CACR,KAAK,OAAO,MAAQA,CAC5B,CACI,MAAM4yE,EAAY,GAAM,CACpB,MAAM,MAAO,EACTA,GACA,KAAK,UAAW,CAE5B,CAGI,eAAertE,EAAO,KAAK,KAAM,CAI7B,OAAAA,EAAO,CAAE,GAAGA,CAAM,EACX,KAAK,gBAAgB,KAAM,KAAK,YAAa,CAACA,CAAI,CAAC,CAClE,CAEI,WAAY,CACR,KAAK,KAAO,KAAK,YAAa,CACtC,CAGI,sBAAsB4nC,EAAS5nC,EAAO,KAAK,KAAM,CAC7C,GAAK,QAAQ4nC,CAAO,EAEpB,OAAO,KAAK,eAAe5nC,CAAI,CACvC,CAEI,IAAI,KAAM,CACN,MAAM42D,EAAU,KAAK,UAAU,iBAAiB,IAAM,CAClD,KAAK,YAAY,MAAM,KAAM,CAAC,KAAK,UAAW,KAAK,IAAI,CAAC,CAC3D,EAAE,EAAK,EAAE,CAAC,EAAE,CAAC,EAAE,QAChB,GAAI,CAACA,EACD,OAAO,KACX,IAAI9xB,EAAMglC,GAAY,OAAOlT,CAAO,EAIhC2J,EAAUuJ,GAAY,SAAS,QACnC,OAAIvJ,GAAW,CAACz7B,EAAI,WAAWy7B,CAAO,IAClCz7B,EAAMy7B,EAAQ,QAAQ,OAAQ,EAAE,EAAIz7B,GAEjCA,CACf,CAOA,CACO,MAAM2lC,WAAqBuB,EAAS,CA8CvC,YAAYD,EAAWvxC,EAAS,CAC5B,MAAMuxC,EAAWvxC,CAAO,EA7C5B6nB,GAAA,kBACAA,GAAA,cAASj9C,GAAI,IAAI,GAQjBi9C,GAAA,kBAAaj9C,GAAI,IAAI,GAQrBi9C,GAAA,mBAAcj9C,GAAI,IAAI,GAQtBi9C,GAAA,oBAAej9C,GAAI,IAAI,GAQvBi9C,GAAA,gBAAWj9C,GAAI,IAAI,EAavB,CA3CI,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,KAC3B,CACI,IAAI,KAAK3K,EAAG,CACR,KAAK,OAAO,MAAQA,CAC5B,CAGI,IAAI,UAAW,CACX,OAAO,KAAK,WAAW,KAC/B,CACI,IAAI,SAASA,EAAG,CACZ,KAAK,WAAW,MAAQA,CAChC,CAGI,IAAI,WAAY,CACZ,OAAO,KAAK,YAAY,KAChC,CACI,IAAI,UAAUA,EAAG,CACb,KAAK,YAAY,MAAQA,CACjC,CAGI,IAAI,YAAa,CACb,OAAO,KAAK,aAAa,KACjC,CACI,IAAI,WAAWA,EAAG,CACd,KAAK,aAAa,MAAQA,CAClC,CAGI,IAAI,QAAS,CACT,OAAO,KAAK,SAAS,KAC7B,CACI,IAAI,OAAOA,EAAG,CACV,KAAK,SAAS,MAAQA,CAC9B,CACI,IAAI,aAAc,CACd,OAAO,MAAM,WACrB,CAII,OAAQ,CACJ,MAAM,MAAO,EACb,KAAK,OAAS,KACd,KAAK,WAAa,KAClB,KAAK,UAAY,KACjB,KAAK,SAAW,KAChB,KAAK,KAAO,IACpB,CACI,iBAAiBmgB,EAAM,CACnB,KAAK,cAAgBA,EAAK,cAC1B,KAAK,QAAUA,EAAK,SAAW,KAC/B,KAAK,KAAOA,EAAK,MAAQ,KACzB,KAAK,SAAWA,EAAK,UAAY,KACjC,KAAK,UAAYA,EAAK,WAAa,KACnC,KAAK,WAAaA,EAAK,YAAc,KACjC,SAAUA,EACV,KAAK,OAASA,EAAK,MAAQ,CAAE,EAG7B,KAAK,OAAS,KAElB,KAAK,UAAY,KAAK,QAAU,IACxC,CACA,CACO,MAAM2vD,YAA6BE,EAAa,CAoCnD,YAAYsB,EAAWvxC,EAAS2vC,EAAaC,EAAa,CACtD,MAAM2B,EAAWvxC,CAAO,EApC5B6nB,GAAA,oBACAA,GAAA,oBACAA,GAAA,cAASj9C,GAAK,GAmCV,KAAK,YAAc+kE,EACnB,KAAK,YAAcC,EACnB,KAAK,UAAW,CACxB,CApCI,IAAI,MAAO,CACP,OAAO,KAAK,OAAO,KAC3B,CACI,IAAI,KAAK3vE,EAAG,CACR,KAAK,OAAO,MAAQA,CAC5B,CACI,MAAM4yE,EAAY,GAAM,CACpB,MAAM,MAAO,EACTA,GACA,KAAK,UAAW,CAE5B,CAGI,eAAertE,EAAO,KAAK,KAAM,CAC7B,OAAAA,EAAO,CAAE,GAAGA,GAGL,KAAK,gBAAgB,KAAM,KAAK,YAAa,CAACA,CAAI,CAAC,CAClE,CAEI,WAAY,CACR,KAAK,KAAO,KAAK,YAAa,CACtC,CAGI,sBAAsB4nC,EAAS5nC,EAAO,KAAK,KAAM,CAC7C,GAAK,QAAQ4nC,CAAO,EAEpB,OAAO,KAAK,eAAe5nC,CAAI,CACvC,CAOA,CCr0CA,IAAIstE,GAAa,OAAO,QAAU,UAAY,QAAU,OAAO,SAAW,QAAU,OCEhFC,IAAW,OAAO,MAAQ,UAAY,MAAQ,KAAK,SAAW,QAAU,KAGxExkD,GAAOukD,IAAcC,KAAY,SAAS,aAAa,EAAG,ECH1DC,GAASzkD,GAAK,OCAd0kD,GAAc,OAAO,UAGrBp3E,IAAiBo3E,GAAY,eAO7BC,IAAuBD,GAAY,SAGnCE,GAAiBH,GAASA,GAAO,YAAc,OASnD,SAASI,IAAU32E,EAAO,CACxB,IAAI42E,EAAQx3E,IAAe,KAAKY,EAAO02E,EAAc,EACjD15C,EAAMh9B,EAAM02E,EAAc,EAE9B,GAAI,CACF12E,EAAM02E,EAAc,EAAI,OACxB,IAAIG,EAAW,EAChB,MAAW,EAEZ,IAAIjtE,EAAS6sE,IAAqB,KAAKz2E,CAAK,EAC5C,OAAI62E,IACED,EACF52E,EAAM02E,EAAc,EAAI15C,EAExB,OAAOh9B,EAAM02E,EAAc,GAGxB9sE,CACT,CC1CA,IAAI4sE,IAAc,OAAO,UAOrBC,IAAuBD,IAAY,SASvC,SAASz2E,IAAeC,EAAO,CAC7B,OAAOy2E,IAAqB,KAAKz2E,CAAK,CACxC,CCdA,IAAI82E,IAAU,gBACVC,IAAe,qBAGfL,GAAiBH,GAASA,GAAO,YAAc,OASnD,SAASS,GAAWh3E,EAAO,CACzB,OAAIA,GAAS,KACJA,IAAU,OAAY+2E,IAAeD,IAEtCJ,IAAkBA,MAAkB,OAAO12E,CAAK,EACpD22E,IAAU32E,CAAK,EACfD,IAAeC,CAAK,CAC1B,CCDA,SAASi3E,GAAaj3E,EAAO,CAC3B,OAAOA,GAAS,MAAQ,OAAOA,GAAS,QAC1C,CCtBA,IAAIk3E,IAAY,kBAmBhB,SAASt3E,GAASI,EAAO,CACvB,OAAO,OAAOA,GAAS,UACpBi3E,GAAaj3E,CAAK,GAAKg3E,GAAWh3E,CAAK,GAAKk3E,GACjD,CCjBA,SAASC,IAAS5uE,EAAO6uE,EAAU,CAKjC,QAJIjtE,EAAQ,GACRgsC,EAAS5tC,GAAS,KAAO,EAAIA,EAAM,OACnCqB,EAAS,MAAMusC,CAAM,EAElB,EAAEhsC,EAAQgsC,GACfvsC,EAAOO,CAAK,EAAIitE,EAAS7uE,EAAM4B,CAAK,EAAGA,EAAO5B,CAAK,EAErD,OAAOqB,CACT,CCKA,IAAItK,IAAU,MAAM,QCjBhB+3E,IAAW,IAGXC,GAAcf,GAASA,GAAO,UAAY,OAC1CgB,GAAiBD,GAAcA,GAAY,SAAW,OAU1D,SAASE,GAAax3E,EAAO,CAE3B,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIV,IAAQU,CAAK,EAEf,OAAOm3E,IAASn3E,EAAOw3E,EAAY,EAAI,GAEzC,GAAI53E,GAASI,CAAK,EAChB,OAAOu3E,GAAiBA,GAAe,KAAKv3E,CAAK,EAAI,GAEvD,IAAI4J,EAAU5J,EAAQ,GACtB,OAAQ4J,GAAU,KAAQ,EAAI5J,GAAU,CAACq3E,IAAY,KAAOztE,CAC9D,CCjCA,IAAI6tE,IAAe,KAUnB,SAASC,IAAgBh0B,EAAQ,CAG/B,QAFIv5C,EAAQu5C,EAAO,OAEZv5C,KAAWstE,IAAa,KAAK/zB,EAAO,OAAOv5C,CAAK,CAAC,GAAG,CAC3D,OAAOA,CACT,CCbA,IAAIwtE,IAAc,OASlB,SAASC,IAASl0B,EAAQ,CACxB,OAAOA,GACHA,EAAO,MAAM,EAAGg0B,IAAgBh0B,CAAM,EAAI,CAAC,EAAE,QAAQi0B,IAAa,EAAE,CAE1E,CCSA,SAAS93E,GAASG,EAAO,CACvB,IAAIyH,EAAO,OAAOzH,EAClB,OAAOA,GAAS,OAASyH,GAAQ,UAAYA,GAAQ,WACvD,CCvBA,IAAIowE,GAAM,IAGNC,IAAa,qBAGbC,IAAa,aAGbC,IAAY,cAGZC,IAAe,SAyBnB,SAASv2E,GAAS1B,EAAO,CACvB,GAAI,OAAOA,GAAS,SAClB,OAAOA,EAET,GAAIJ,GAASI,CAAK,EAChB,OAAO63E,GAET,GAAIh4E,GAASG,CAAK,EAAG,CACnB,IAAIk4E,EAAQ,OAAOl4E,EAAM,SAAW,WAAaA,EAAM,QAAO,EAAKA,EACnEA,EAAQH,GAASq4E,CAAK,EAAKA,EAAQ,GAAMA,CAC7C,CACE,GAAI,OAAOl4E,GAAS,SAClB,OAAOA,IAAU,EAAIA,EAAQ,CAACA,EAEhCA,EAAQ43E,IAAS53E,CAAK,EACtB,IAAIm4E,EAAWJ,IAAW,KAAK/3E,CAAK,EACpC,OAAQm4E,GAAYH,IAAU,KAAKh4E,CAAK,EACpCi4E,IAAaj4E,EAAM,MAAM,CAAC,EAAGm4E,EAAW,EAAI,CAAC,EAC5CL,IAAW,KAAK93E,CAAK,EAAI63E,GAAM,CAAC73E,CACvC,CC1DA,IAAIq3E,GAAW,IACXe,IAAc,sBAyBlB,SAASC,IAASr4E,EAAO,CACvB,GAAI,CAACA,EACH,OAAOA,IAAU,EAAIA,EAAQ,EAG/B,GADAA,EAAQ0B,GAAS1B,CAAK,EAClBA,IAAUq3E,IAAYr3E,IAAU,CAACq3E,GAAU,CAC7C,IAAI91B,EAAQvhD,EAAQ,EAAI,GAAK,EAC7B,OAAOuhD,EAAO62B,GAClB,CACE,OAAOp4E,IAAUA,EAAQA,EAAQ,CACnC,CCXA,SAASs4E,IAAUt4E,EAAO,CACxB,IAAI4J,EAASyuE,IAASr4E,CAAK,EACvBu4E,EAAY3uE,EAAS,EAEzB,OAAOA,IAAWA,EAAU2uE,EAAY3uE,EAAS2uE,EAAY3uE,EAAU,CACzE,CC1BA,SAAS4uE,IAAUnE,EAAM,CACvB,OAAO,SAASr0E,EAAO,CACrB,OAAOq0E,EAAKr0E,CAAK,CAClB,CACH,CCRA,IAAIy4E,GAAc,OAAO,SAAW,UAAY,SAAW,CAAC,QAAQ,UAAY,QAG5EC,GAAaD,IAAe,OAAO,QAAU,UAAY,QAAU,CAAC,OAAO,UAAY,OAGvFE,IAAgBD,IAAcA,GAAW,UAAYD,GAGrDG,GAAcD,KAAiBtC,GAAW,QAG1CwC,GAAY,UAAW,CACzB,GAAI,CAEF,IAAIC,EAAQJ,IAAcA,GAAW,SAAWA,GAAW,QAAQ,MAAM,EAAE,MAE3E,OAAII,GAKGF,IAAeA,GAAY,SAAWA,GAAY,QAAQ,MAAM,CACxE,MAAW,EACd,ICJA,SAASpe,GAASx6D,EAAO,CACvB,OAAOA,GAAS,KAAO,GAAKw3E,GAAax3E,CAAK,CAChD,CChBA,SAAS+4E,IAAUxwE,EAAOyL,EAAOC,EAAK,CACpC,IAAI9J,EAAQ,GACRgsC,EAAS5tC,EAAM,OAEfyL,EAAQ,IACVA,EAAQ,CAACA,EAAQmiC,EAAS,EAAKA,EAASniC,GAE1CC,EAAMA,EAAMkiC,EAASA,EAASliC,EAC1BA,EAAM,IACRA,GAAOkiC,GAETA,EAASniC,EAAQC,EAAM,EAAMA,EAAMD,IAAW,EAC9CA,KAAW,EAGX,QADIpK,EAAS,MAAMusC,CAAM,EAClB,EAAEhsC,EAAQgsC,GACfvsC,EAAOO,CAAK,EAAI5B,EAAM4B,EAAQ6J,CAAK,EAErC,OAAOpK,CACT,CCjBA,SAASovE,IAAUzwE,EAAOyL,EAAOC,EAAK,CACpC,IAAIkiC,EAAS5tC,EAAM,OACnB,OAAA0L,EAAMA,IAAQ,OAAYkiC,EAASliC,EAC3B,CAACD,GAASC,GAAOkiC,EAAU5tC,EAAQwwE,IAAUxwE,EAAOyL,EAAOC,CAAG,CACxE,CCdA,IAAIglE,IAAgB,kBAChBC,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3DE,IAAa,iBAGbC,IAAQ,UAGRC,IAAe,OAAO,IAAMD,IAAQN,IAAiBI,IAAeC,IAAa,GAAG,EASxF,SAASG,GAAW/1B,EAAQ,CAC1B,OAAO81B,IAAa,KAAK91B,CAAM,CACjC,CChBA,SAASg2B,IAAah2B,EAAQ,CAC5B,OAAOA,EAAO,MAAM,EAAE,CACxB,CCRA,IAAIu1B,GAAgB,kBAChBC,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3DE,IAAa,iBAGbK,IAAW,IAAMV,GAAgB,IACjCW,GAAU,IAAMP,IAAe,IAC/BQ,GAAS,2BACTC,IAAa,MAAQF,GAAU,IAAMC,GAAS,IAC9CE,GAAc,KAAOd,GAAgB,IACrCe,GAAa,kCACbC,GAAa,qCACbV,IAAQ,UAGRW,GAAWJ,IAAa,IACxBK,GAAW,IAAMb,IAAa,KAC9Bc,IAAY,MAAQb,IAAQ,MAAQ,CAACQ,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAME,GAAWD,GAAW,KAClHG,IAAQF,GAAWD,GAAWE,IAC9BE,IAAW,MAAQ,CAACP,GAAcH,GAAU,IAAKA,GAASI,GAAYC,GAAYN,GAAQ,EAAE,KAAK,GAAG,EAAI,IAGxGY,IAAY,OAAOV,GAAS,MAAQA,GAAS,KAAOS,IAAWD,IAAO,GAAG,EAS7E,SAASG,IAAe92B,EAAQ,CAC9B,OAAOA,EAAO,MAAM62B,GAAS,GAAK,CAAE,CACtC,CC1BA,SAASE,IAAc/2B,EAAQ,CAC7B,OAAO+1B,GAAW/1B,CAAM,EACpB82B,IAAe92B,CAAM,EACrBg2B,IAAah2B,CAAM,CACzB,CCRA,SAASg3B,IAAan8E,EAAK,CACzB,OAAO,SAAS6J,EAAQ,CACtB,OAAOA,GAAU,KAAO,OAAYA,EAAO7J,CAAG,CAC/C,CACH,CCOA,IAAI2oE,GAAM,UAAW,CACnB,OAAOp1C,GAAK,KAAK,IAAK,CACxB,ECfI6oD,IAAkB,sBAGlBC,IAAY,KAAK,IACjBC,IAAY,KAAK,IAwDrB,SAASC,GAASzG,EAAM0G,EAAMnqE,EAAS,CACrC,IAAI62D,EACAuT,EACAC,EACArxE,EACAsxE,EACAC,EACAC,EAAiB,EACjBC,EAAU,GACVC,EAAS,GACTC,EAAW,GAEf,GAAI,OAAOlH,GAAQ,WACjB,MAAM,IAAI,UAAUsG,GAAe,EAErCI,EAAOr5E,GAASq5E,CAAI,GAAK,EACrBl7E,GAAS+Q,CAAO,IAClByqE,EAAU,CAAC,CAACzqE,EAAQ,QACpB0qE,EAAS,YAAa1qE,EACtBqqE,EAAUK,EAASV,IAAUl5E,GAASkP,EAAQ,OAAO,GAAK,EAAGmqE,CAAI,EAAIE,EACrEM,EAAW,aAAc3qE,EAAU,CAAC,CAACA,EAAQ,SAAW2qE,GAG1D,SAASC,EAAWhnB,EAAM,CACxB,IAAIzrD,EAAO0+D,EACPx+D,EAAU+xE,EAEd,OAAAvT,EAAWuT,EAAW,OACtBI,EAAiB5mB,EACjB5qD,EAASyqE,EAAK,MAAMprE,EAASF,CAAI,EAC1Ba,CACX,CAEE,SAAS6xE,EAAYjnB,EAAM,CAEzB,OAAA4mB,EAAiB5mB,EAEjB0mB,EAAU,WAAWQ,EAAcX,CAAI,EAEhCM,EAAUG,EAAWhnB,CAAI,EAAI5qD,CACxC,CAEE,SAAS+xE,EAAcnnB,EAAM,CAC3B,IAAIonB,EAAoBpnB,EAAO2mB,EAC3BU,EAAsBrnB,EAAO4mB,EAC7BU,EAAcf,EAAOa,EAEzB,OAAON,EACHT,IAAUiB,EAAab,EAAUY,CAAmB,EACpDC,CACR,CAEE,SAASC,EAAavnB,EAAM,CAC1B,IAAIonB,EAAoBpnB,EAAO2mB,EAC3BU,EAAsBrnB,EAAO4mB,EAKjC,OAAQD,IAAiB,QAAcS,GAAqBb,GACzDa,EAAoB,GAAON,GAAUO,GAAuBZ,CACnE,CAEE,SAASS,GAAe,CACtB,IAAIlnB,EAAO0S,GAAK,EAChB,GAAI6U,EAAavnB,CAAI,EACnB,OAAOwnB,EAAaxnB,CAAI,EAG1B0mB,EAAU,WAAWQ,EAAcC,EAAcnnB,CAAI,CAAC,CAC1D,CAEE,SAASwnB,EAAaxnB,EAAM,CAK1B,OAJA0mB,EAAU,OAINK,GAAY9T,EACP+T,EAAWhnB,CAAI,GAExBiT,EAAWuT,EAAW,OACfpxE,EACX,CAEE,SAASgiE,GAAS,CACZsP,IAAY,QACd,aAAaA,CAAO,EAEtBE,EAAiB,EACjB3T,EAAW0T,EAAeH,EAAWE,EAAU,MACnD,CAEE,SAASrlD,GAAQ,CACf,OAAOqlD,IAAY,OAAYtxE,EAASoyE,EAAa9U,GAAG,CAAE,CAC9D,CAEE,SAAS+U,GAAY,CACnB,IAAIznB,EAAO0S,GAAK,EACZgV,EAAaH,EAAavnB,CAAI,EAMlC,GAJAiT,EAAW,UACXuT,EAAW,KACXG,EAAe3mB,EAEX0nB,EAAY,CACd,GAAIhB,IAAY,OACd,OAAOO,EAAYN,CAAY,EAEjC,GAAIG,EAEF,oBAAaJ,CAAO,EACpBA,EAAU,WAAWQ,EAAcX,CAAI,EAChCS,EAAWL,CAAY,CAEtC,CACI,OAAID,IAAY,SACdA,EAAU,WAAWQ,EAAcX,CAAI,GAElCnxE,CACX,CACE,OAAAqyE,EAAU,OAASrQ,EACnBqQ,EAAU,MAAQpmD,EACXomD,CACT,CCxLA,IAAIE,IAAY,kBAShB,SAASC,IAAap8E,EAAO,CAC3B,OAAOi3E,GAAaj3E,CAAK,GAAKg3E,GAAWh3E,CAAK,GAAKm8E,GACrD,CCVA,IAAIE,GAAexD,IAAYA,GAAS,SAmBpCjb,IAAWye,GAAe7D,IAAU6D,EAAY,EAAID,ICfpDE,IAAY5B,IAAa,QAAQ,ECRjCzB,GAAgB,kBAChBC,IAAoB,kBACpBC,IAAwB,kBACxBC,IAAsB,kBACtBC,IAAeH,IAAoBC,IAAwBC,IAC3DE,IAAa,iBAGbK,IAAW,IAAMV,GAAgB,IACjCW,GAAU,IAAMP,IAAe,IAC/BQ,GAAS,2BACTC,IAAa,MAAQF,GAAU,IAAMC,GAAS,IAC9CE,GAAc,KAAOd,GAAgB,IACrCe,GAAa,kCACbC,GAAa,qCACbV,IAAQ,UAGRW,GAAWJ,IAAa,IACxBK,GAAW,IAAMb,IAAa,KAC9Bc,IAAY,MAAQb,IAAQ,MAAQ,CAACQ,GAAaC,GAAYC,EAAU,EAAE,KAAK,GAAG,EAAI,IAAME,GAAWD,GAAW,KAClHG,IAAQF,GAAWD,GAAWE,IAC9BE,IAAW,MAAQ,CAACP,GAAcH,GAAU,IAAKA,GAASI,GAAYC,GAAYN,GAAQ,EAAE,KAAK,GAAG,EAAI,IAGxGY,GAAY,OAAOV,GAAS,MAAQA,GAAS,KAAOS,IAAWD,IAAO,GAAG,EAS7E,SAASkC,IAAY74B,EAAQ,CAE3B,QADI95C,EAAS2wE,GAAU,UAAY,EAC5BA,GAAU,KAAK72B,CAAM,GAC1B,EAAE95C,EAEJ,OAAOA,CACT,CC9BA,SAAS4yE,IAAW94B,EAAQ,CAC1B,OAAO+1B,GAAW/1B,CAAM,EACpB64B,IAAY74B,CAAM,EAClB44B,IAAU54B,CAAM,CACtB,CCXA,IAAIi3B,IAAkB,sBA8CtB,SAASrT,IAAS+M,EAAM0G,EAAMnqE,EAAS,CACrC,IAAIyqE,EAAU,GACVE,EAAW,GAEf,GAAI,OAAOlH,GAAQ,WACjB,MAAM,IAAI,UAAUsG,GAAe,EAErC,OAAI96E,GAAS+Q,CAAO,IAClByqE,EAAU,YAAazqE,EAAU,CAAC,CAACA,EAAQ,QAAUyqE,EACrDE,EAAW,aAAc3qE,EAAU,CAAC,CAACA,EAAQ,SAAW2qE,GAEnDT,GAASzG,EAAM0G,EAAM,CAC1B,QAAWM,EACX,QAAWN,EACX,SAAYQ,CAChB,CAAG,CACH,CCvDA,IAAIkB,IAAuB,GACvBC,IAAyB,MAGzBC,IAAU,OAuCd,SAASC,IAASl5B,EAAQ9yC,EAAS,CACjC,IAAIulC,EAASsmC,IACTI,EAAWH,IAEf,GAAI78E,GAAS+Q,CAAO,EAAG,CACrB,IAAIxH,EAAY,cAAewH,EAAUA,EAAQ,UAAYxH,EAC7D+sC,EAAS,WAAYvlC,EAAU0nE,IAAU1nE,EAAQ,MAAM,EAAIulC,EAC3D0mC,EAAW,aAAcjsE,EAAU4mE,GAAa5mE,EAAQ,QAAQ,EAAIisE,CACxE,CACEn5B,EAAS8W,GAAS9W,CAAM,EAExB,IAAIo5B,EAAYp5B,EAAO,OACvB,GAAI+1B,GAAW/1B,CAAM,EAAG,CACtB,IAAIq5B,EAAatC,IAAc/2B,CAAM,EACrCo5B,EAAYC,EAAW,MAC3B,CACE,GAAI5mC,GAAU2mC,EACZ,OAAOp5B,EAET,IAAIzvC,EAAMkiC,EAASqmC,IAAWK,CAAQ,EACtC,GAAI5oE,EAAM,EACR,OAAO4oE,EAET,IAAIjzE,EAASmzE,EACT/D,IAAU+D,EAAY,EAAG9oE,CAAG,EAAE,KAAK,EAAE,EACrCyvC,EAAO,MAAM,EAAGzvC,CAAG,EAEvB,GAAI7K,IAAc,OAChB,OAAOQ,EAASizE,EAKlB,GAHIE,IACF9oE,GAAQrK,EAAO,OAASqK,GAEtB2pD,IAASx0D,CAAS,GACpB,GAAIs6C,EAAO,MAAMzvC,CAAG,EAAE,OAAO7K,CAAS,EAAG,CACvC,IAAIymC,EACA6Z,EAAY9/C,EAMhB,IAJKR,EAAU,SACbA,EAAY,OAAOA,EAAU,OAAQoxD,GAASmiB,IAAQ,KAAKvzE,CAAS,CAAC,EAAI,GAAG,GAE9EA,EAAU,UAAY,EACdymC,EAAQzmC,EAAU,KAAKsgD,CAAS,GACtC,IAAIszB,EAASntC,EAAM,MAErBjmC,EAASA,EAAO,MAAM,EAAGozE,IAAW,OAAY/oE,EAAM+oE,CAAM,CAClE,UACat5B,EAAO,QAAQ8zB,GAAapuE,CAAS,EAAG6K,CAAG,GAAKA,EAAK,CAC9D,IAAI9J,EAAQP,EAAO,YAAYR,CAAS,EACpCe,EAAQ,KACVP,EAASA,EAAO,MAAM,EAAGO,CAAK,EAEpC,CACE,OAAOP,EAASizE,CAClB,CC7FA,IAAII,IAAe,EACnB,MAAMC,GAAW,IAAI,WAOhBz5E,GAAA4zD,GANE,MAAM8lB,GAAN,MAAMA,EAAU,CAu7BnB,YAGAnK,EAEAoK,EAAYC,EAAkB,CA37B9BjyB,GAAA,kBACAA,GAAA,mBAIAA,GAAA,KAAC3nD,GAAsB,IAKvB2nD,GAAA,eAAU,MAEVA,GAAA,yBAAoB,MAEpBA,GAAA,sBAOAA,GAAA,cAQAA,GAAA,kBAgBAA,GAAA,gBAAWj9C,GAAI,EAAK,GAEpBi9C,GAAA,mBAAcoM,GACR,IAAI,IACJrsD,GAAS,IAAI,GAAK,GAGxBigD,GAAA,0BAAqBoM,GAASrpD,GAAI,CAAC,EAAI,QAuDvCi9C,GAAA,eAAUj9C,GAAI,IAAI0jE,EAAsB,GA4BxCzmB,GAAA,qBAAgB,MAMhBA,GAAA,oBAAe,MAMfA,GAAA,uBAAkB,MAoJlBA,GAAA,8BAAyB,IAKzBA,GAAA,iBAAY,YAEZA,GAAA,oBAAej9C,GAAI+uE,EAAQ,GA0X3B9xB,GAAA,gBAAW,GAqFXA,GAAA,kBAAa,IAoBbA,GAAA,uBA2KI,KAAK,UAAY4nB,EACjB,KAAK,WAAaoK,EAClB,KAAK,MAAQjyE,GAAS8sD,GAAe,CAAE,EAAE+a,CAAS,CAAC,EACnD,OAAO,eAAe,KAAM,YAAa,CACrC,WAAY,GACZ,aAAc,GACd,MAAOiK,MACP,SAAU,EACtB,CAAS,EACD,MAAMK,EAAO,KAAK,YAClB,GAAID,EACA,KAAK,eAAeA,CAAgB,UAGhCC,EAAK,kBAAoB,IACrB,CAACC,GAAiB,UAAW,CAGzBD,EAAK,kBAAoB,SACzBA,EAAK,gBAAkB,OAAO,OAAOtK,EAAU,KAAK,EAAE,OAAQ7mD,GAASA,EAAK,MAAQ,cAAgBA,EAAK,SAAS,MAAQ,OAAO,GAErI,UAAWA,KAAQmxD,EAAK,gBAGpB,KAAKnxD,EAAK,IAAI,EAAI,KAEjBmxD,EAAK,kBACNA,EAAK,gBAAkB,GAE/C,CAGQ,GAAIA,EAAK,kBAAoB,GAAO,CAChC,UAAWnxD,KAAQ,OAAO,OAAO6mD,EAAU,KAAK,EACxC,iBAAkB7mD,IAClBmxD,EAAK,kBAALA,EAAK,gBAAoB,KACrB,CAACD,GAAoB,EAAElxD,EAAK,QAAQkxD,MACpC,KAAKlxD,EAAK,IAAI,EAAIA,EAAK,eAMnCmxD,EAAK,kBAALA,EAAK,gBAAoB,GACrC,CACA,CAx8BI,IAAI,aAAc,CACd,OAAO,KAAK,KAAK,UAAU,QAAQ,IAAI,CAC/C,CACI,IAAI,YAAY9+E,EAAK,CACjB,KAAK,KAAK,UAAU,QAAQ,IAAI,EAAIA,CAC5C,CAmBI,IAAI,UAAW,CACX,OAAO,KAAK,SAAS,KAC7B,CACI,IAAI,SAASA,EAAK,CACd,GAAI,CAACA,EACD,KAAK,YAAY,MAAO,EACpBg5D,IAAU,KAAK,YAAY,MAC3B,KAAK,mBAAmB,QAE5B,KAAK,SAAS,MAAQ,OAMtB,WAAWO,KAAY,KAAK,UAAU,MAClC,KAAK,cAAcA,CAAQ,CAG3C,CACI,cAAcA,EAAUylB,EAAQ,GAAMC,EAAkB,GAAM,aACzC,KAAK,UAAU,MAAM1lB,CAAQ,EACjC,gBAGTylB,GACA,KAAK,YAAY,IAAIzlB,CAAQ,EACzBP,IACA,KAAK,mBAAmB,QAC5B,KAAK,SAAS,MAAQ,GAClBimB,KAAmB1+B,GAAAt7C,EAAA,KAAK,iBAAL,YAAAA,EAAqB,QAArB,MAAAs7C,EAA4B,WAE/CC,GAAAC,EAAA,KAAK,eAAe,OAAM,UAA1B,MAAAD,EAAA,KAAAC,MAIJ,KAAK,YAAY,OAAO8Y,CAAQ,EAC5BP,IACA,KAAK,mBAAmB,QACvB,KAAK,YAAY,OAClB,KAAK,SAAS,MAAQ,KAGtC,CACI,cAAcO,EAAU,OACpB,OAAIP,MACA/zD,EAAA,KAAK,qBAAL,MAAAA,EAAyB,OACtB,KAAK,YAAY,IAAIs0D,CAAQ,CAC5C,CAII,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,KAC5B,CACI,IAAI,QAAQv5D,EAAK,CACb,KAAK,QAAQ,MAAQA,CAC7B,CAEI,IAAI,aAAc,CACd,OAAO,KAAK,QAAQ,UAC5B,CACI,IAAI,YAAYA,EAAK,CACjB,KAAK,QAAQ,WAAaA,CAClC,CAEI,IAAI,WAAY,CACZ,OAAO,KAAK,QAAQ,QAC5B,CACI,IAAI,UAAUA,EAAK,CACf,KAAK,QAAQ,SAAWA,CAChC,CAqBI,IAAI,iBAAkB,OAClB,IAAIk/E,EAAiB,KAAK,gBAC1B,GAAIA,EACA,OAAOA,EACXA,EAAiB,CAAE,EACnB,UAAW3lB,KAAY,KAAK,UAAU,MAAO,CACzC,MAAM5rC,EAAO,KAAK,UAAU,MAAM4rC,CAAQ,EACpC4lB,GAASl6E,EAAA,KAAK,eAAL,YAAAA,EAAoBs0D,GAC7B6lB,EAAY,CAAE,EACpB,GAAI,UAAWzxD,EAAM,CACjB,MAAM0xD,EAAU,KAAK,cACfC,EAAQ3xD,EAAK,MAEnB,UAAW4xD,KAAYD,EAAO,CAW1B,GATID,IACIA,EAAQ,GAAG9lB,CAAQ,IAAIgmB,CAAQ,EAAE,GACjCF,EAAQ,GAAG9lB,CAAQ,IAAI,IAO3B4lB,GAAUA,EAAOI,CAAQ,EACzB,SAEJ,MAAMC,EAASF,EAAMC,CAAQ,EAC7BC,EAAO,SAAWD,EAClBH,EAAU,KAAKI,CAAM,CACzC,CACA,CAEY,GAAIL,EACA,UAAWI,KAAYJ,EAAQ,CAC3B,MAAMK,EAASL,EAAOI,CAAQ,EAC9BC,EAAO,SAAWD,EAClBH,EAAU,KAAKI,CAAM,CACzC,CAEgBJ,EAAU,SACVF,EAAe3lB,CAAQ,EAAI6lB,EAE3C,CACQ,OAAQ,KAAK,gBAAkBF,CACvC,CACI,SAASvxD,EAAM8xD,EAAYC,EAAM,OAC7B,MAAMnmB,EAAW,OAAO5rC,GAAQ,SAAWA,EAAOA,EAAK,KAIvD,KAAK,aAAe,CAChB,GAAG,KAAK,aACR,CAAC4rC,CAAQ,EAAG,CACR,IAAGt0D,EAAA,KAAK,eAAL,YAAAA,EAAoBs0D,GACvB,CAACkmB,CAAU,EAAGC,CACjB,CACJ,EAED,MAAMC,EAAa,GAAGpmB,CAAQ,IAAIkmB,CAAU,GAC5C,GAAI,KAAK,eAAiBE,KAAc,KAAK,cAAe,CACxD,GAAI,CAAE,CAACA,CAAU,EAAGC,EAAS,GAAG7F,CAAS,EAAK,KAAK,cACnD,KAAK,cAAgBA,CACjC,CAEQ,KAAK,gBAAkB,IAC/B,CACI,YAAYpsD,EAAM8xD,EAAY,OAC1B,MAAMlmB,EAAW,OAAO5rC,GAAQ,SAAWA,EAAOA,EAAK,KAEjDyxD,GAAYn6E,EAAA,KAAK,eAAL,YAAAA,EAAoBs0D,GACtC,GAAI6lB,EAAW,CACX,GAAI,CAAE,CAACK,CAAU,EAAGG,EAAS,GAAG7F,CAAW,EAAGqF,EAC9C,KAAK,aAAe,CAChB,GAAG,KAAK,aACR,CAAC7lB,CAAQ,EAAGwgB,CACf,CACb,CAEQ,KAAK,cAAgB,CACjB,GAAG,KAAK,cACR,CAAC,GAAGxgB,CAAQ,IAAIkmB,CAAU,EAAE,EAAG,EAClC,EAED,KAAK,gBAAkB,IAC/B,CAMI,UAAU9xD,EAAM,CACZ,OAAO,KAAK,gBAAgB,OAAOA,GAAQ,SAAWA,EAAOA,EAAK,IAAI,CAC9E,CAOI,CAAC,WAAWA,EAAM,CACd,GAAIA,EAAM,CACN,MAAM4rC,EAAW,OAAO5rC,GAAQ,SAAWA,EAAOA,EAAK,KACjDuxD,EAAiB,KAAK,gBAAgB3lB,CAAQ,EACpD,GAAI,CAAC2lB,EACD,OACJ,UAAWQ,KAAQR,EAAgB,CAC/B,MAAM9zE,EAASs0E,EAAK,KAAK,MAAMnmB,CAAQ,CAAC,EACpCnuD,IAAW,KACX,MAAMA,EAC1B,CACA,KAEY,WAAWmuD,KAAY,KAAK,gBACxB,MAAO,KAAK,WAAWA,CAAQ,CAG/C,CAEI,IAAI,WAAY,CACZ,MAAO,CAAC,CAAC,KAAK,WAAU,EAAG,KAAM,EAAC,KAC1C,CAII,IAAI,OAAQ,CACR,MAAMsmB,EAAQ,KAAK,WAAW,YAAY,OAAQ,CAAC19E,EAAGoT,IAAO,CACzD,MAAMuqE,EAAY,YAAY,IAAK,EACnC,OAAO39E,EACF,IAAIoT,GAAkB,KAAK,YAAa,KAAK,OAAO,EACpD,KAAM7F,GAAM,CACb,MAAMtE,EAASsE,EAAE,KAAK,OACtB,OAAItE,GAGA,KAAK,eAAeA,EAAQ00E,EAAW,EAAI,EAExCpwE,CACvB,CAAa,CACb,CAAS,EAGD,cAAO,eAAe,KAAM,QAAS,CAAE,MAAOmwE,EAAO,EAC9CA,CACf,CAcI,IAAI,cAAe,CACf,OAAO,KAAK,aAAa,KACjC,CACI,IAAI,aAAar+E,EAAO,CACpB,KAAK,aAAa,MAAQA,CAClC,CAII,IAAI,OAAQ,CACR,MAAMu+E,EAAQ,KAAK,WACd,YAAY,OAAQ,eAAgB59E,EAAG69E,EAAe,CACvD,GAAI,KAAK,UACL,MAAM,MAAMC,GAAW,KAAK,WAAY,EAAC,EAG7C,MAAMC,EAAa,CAAC,GAAG,KAAK,WAAW,EAIjCC,EAAc,CAAC,GAAGD,CAAU,EAOlC,IAAI/6D,EAAO,KACP66D,IACA76D,EAAO,CACH,GAAG,KAAK,MACR,GAAG66D,EACH,UAAW,KAAK,SACnB,EACDG,EAAY,KAAK,GAAG,OAAO,KAAKH,CAAa,CAAC,GAG9C,KAAK,aAAe,MACpBG,EAAY,KAAK,KAAK,UAAU,QAAQ,IAAI,EAEhD,KAAK,aAAe,IAAI,IAAIA,CAAW,EAGvC,MAAMhK,EAAS,KAAK,WAAa,WAC3B,CAAC,GAAG,KAAK,YAAY,EACrB,KAIN,KAAK,SAAW,GAChB,GAAI,CACA,OAAO,MAAMh0E,EAAE,KAAKgjB,EAAM,CAAE,GAAG,KAAK,QAAS,OAAAgxD,EAAQ,CACrE,OACmB/tE,EAAG,CACN,UAAWulB,KAAQuyD,EACf,KAAK,cAAcvyD,EAAM,GAOzB,EAAK,EAET,WAAK,aAAe+wD,GACdt2E,CACtB,CACS,GACI,YAAY,UAAY,CACpB,KAAK,MAAM,SAIhB,KAAK,aAAes2E,GACf,KAAK,wBAQN,KAAK,eAAe,KAAK,MAAM,OAAQ,YAAY,KAAK,EACxD,KAAK,8CAA+C,GANpD,KAAK,YAAc,KAAK,MAAM,OAAO,KAAK,UAAU,QAAQ,IAAI,EAQhF,CAAS,EAGD,cAAO,eAAe,KAAM,QAAS,CAAE,MAAOqB,EAAO,EAC9CA,CACf,CAMI,IAAI,WAAY,CACZ,MAAMK,EAAY,KAAK,WAAW,YAAY,OAAQ,eAAgBj+E,EAAGiQ,EAAS,SAC9E,KAAM,CAAE,MAAOiuE,EAAa,SAAUC,EAAY,OAAAC,EAAQ,UAAWC,CAAY,EAAG,KAAK,iBAAiBpuE,CAAO,EACjH,GAAImuE,EAAO,OAGP,MAAM,MAAMN,GAAWM,CAAM,CAAC,EAElC,MAAMz8E,EAAM,MAAM3B,EAAE,SAAS,CAAE,MAAOk+E,CAAW,EAAI,CAAE,GAAG,KAAK,QAAS,EACxE,IAAIp7E,EAAAnB,EAAI,OAAJ,MAAAmB,EAAU,cAAe,CAKzB,MAAMw7E,EAAS38E,EAAI,KAAK,OACxB,UAAW6L,KAAO8wE,EAAQ,CACtB,MAAMC,GAAQngC,EAAAigC,EAAU,IAAI,CAAC7wE,CAAG,IAAlB,YAAA4wC,EAAqB,MAC/BmgC,IACAA,EAAM,YAAcD,EAAO9wE,CAAG,EACtD,CACgB,MAAMvE,EAAStH,EAAI,KAAK,OACxB,GAAIsH,EAAQ,CACR,MAAMu1E,EAAM,YAAY,IAAK,EAI7B,KAAK,eAAev1E,EAAQu1E,EAAK,EAAI,EACrC,MAAMC,EAAgB,IAAI,IAAIN,EACzB,OAAQ79C,UAAM,OAAAA,EAAE,QAAU,QAC3BA,EAAE,MAAM,UAAYk+C,GAEpB,GAAC17E,EAAAmN,GAAA,YAAAA,EAAS,kBAAT,MAAAnN,EAA0B,SAASw9B,EAAE,QAAM,EAC3C,IAAKA,GAAMA,EAAE,MAAM,UAAU,IAAI,CAAC,EACnCm+C,EAAc,KAAO,GACrB,QAAQ,KAAK,eAAe,CAAC,GAAGA,EAAc,OAAQ,GAAE,KAAK,OAAO,CAAC,qJAAqJ,CAElP,CACA,CACY,OAAO98E,CACnB,CAAS,EAGD,cAAO,eAAe,KAAM,YAAa,CAAE,MAAOs8E,EAAW,EACtDA,CACf,CAMI,iBAAiBhuE,EAAS,SAEtB,IAAIyuE,EAAa,CAAC,IAAI,EAClBzuE,GAAA,MAAAA,EAAS,iBACTyuE,EAAW,KAAK,GAAGzuE,EAAQ,eAAe,EAE9C,MAAMouE,EAAY,IAAI,IAChBM,EAAWJ,GAAU,CACvB,IAAI58E,EAAM08E,EAAU,IAAIE,EAAM,SAAS,EACvC,OAAK58E,GACD08E,EAAU,IAAIE,EAAM,UAAY58E,EAAM,CAClC,MAAA48E,EACA,SAAUA,EAAM,UAChB,OAAQ,OACR,OAAQ,GACR,YAAa,GACb,QAAS,GACT,KAAM,CAGF,CAACA,EAAM,UAAU,QAAQ,IAAI,EAAGA,EAAM,SAIzC,CACrB,CAAmB,EACA58E,CACV,EAGD,KAAO+8E,EAAW,QAAQ,CACtB,MAAME,EAAgBF,EACtBA,EAAa,CAAE,EACf,UAAWH,KAASK,EAAe,CAC/B,GAAI,CAACL,EACD,SACJ,MAAMv7D,EAAO27D,EAAQJ,CAAK,EAC1B,GAAIv7D,EAAK,QACL,SACJA,EAAK,QAAU,GACf,MAAM4vB,EAAO2rC,EAAM,UACfA,EAAM,eAENG,EAAW,KAAK,GAAGH,EAAM,aAAa,EAE1Cv7D,EAAK,OAASu7D,GAAS,KACvB,UAAWnnB,KAAYxkB,EAAK,MAAO,CAC/B,MAAMpnB,EAAOonB,EAAK,MAAMwkB,CAAQ,EAChC,GAAI5rC,EAAK,MAAQ,uBAAwB,CACrC,MAAMqzD,EAAaN,EAAM,MAAM/yD,EAAK,IAAI,EACpCqzD,GACAH,EAAW,KAAK,GAAGG,CAAU,CAEzD,SAC6BrzD,EAAK,MAAQ,sBAAuB,CACzC,IAAIszD,EAAYP,EAAM,MAAM/yD,EAAK,IAAI,EAIrC,GAGA+yD,EAAM,MAAM/yD,EAAK,WAAW,IAAI,GAAK,KAAM,CACvCkzD,EAAW,KAAKI,CAAS,EACzB,QAC5B,CACwB,MAAMC,EAAaR,EAAM,kBACrB,CAACO,IACDC,GAAA,YAAAA,EAAY,mBAAmBvC,IAC/BuC,EAAW,WAAavzD,EAAK,oBAQ7BszD,EAAYC,EAAW,SAE3BL,EAAW,KAAKI,CAAS,EACrBA,GACA,CAACA,EAAU,YACX,CAACP,EAAM,aACNA,EAAM,UAAY,CAACA,EAAM,mBAGzB,CAACO,EAAU,mBACRh8E,EAAAmN,GAAA,YAAAA,EAAS,YAAT,YAAAnN,EAAA,KAAAmN,EAAqB6uE,EAAW,WAAY,IAI3CA,EAAU,iBACP,CAACP,EAAM,cAAc/yD,EAAK,WAAW,IAAI,KAC7CxI,EAAK,KAAKwI,EAAK,WAAW,IAAI,EAAIszD,EAAU,UAC5CH,EAAQG,CAAS,EAAE,YAAc,GAGjE,CACA,CACA,CACA,CACQ,MAAMX,EAAa,CAAE,EACfD,EAAc,CAAE,EACtB,IAAI55E,EAAU,GACd,MAAM85E,EAAS,CAAE,EACjB,SAAW,CAACr+E,EAAGijB,CAAI,IAAKq7D,EAAW,CAC/B,MAAME,EAAQv7D,EAAK,MAInB,IAAIg8D,EAAS,OAqBb,GApBIT,EAAM,WACNS,EAAST,EAAM,gBACT,SACA,QAIFA,EAAM,UACN,CAACA,EAAM,iBACP,OAAO,QAAQv7D,EAAK,IAAI,EAAE,KAAK,CAAC,CAACplB,EAAK4P,CAAG,IAC9B5P,GAAO2gF,EAAM,UAAU,QAAQ,IACzC,KACDS,EAAS,QAIbA,GAAU,QAAU,CAACh8D,EAAK,QAAU,CAACA,EAAK,aAI1Cg8D,IAAW,UAAU5gC,EAAAnuC,GAAA,YAAAA,EAAS,YAAT,YAAAmuC,EAAA,KAAAnuC,EAAqBsuE,EAAOS,MAAY,GAC7D,SAEJh8D,EAAK,OAASg8D,EACdb,EAAW,KAAKn7D,CAAI,EACpB,MAAMs5B,EAAWt5B,EAAK,SAChBhhB,EAAQs6C,EAAS,MACvB,GAAI0iC,GAAU,SACV16E,EAAU,WAEL06E,GAAU,OAAQ,CACvB16E,EAAU,GACV,SAAW,CAAC8yD,EAAU+lB,CAAK,IAAK,OAAO,QAAQoB,EAAM,eAAe,EAAG,CACnE,MAAM9hC,EAAWz6C,EAAMo1D,CAAQ,EAC/B,UAAWmmB,KAAQJ,GAAS,GAAI,CAC5B,MAAMl0E,EAASs0E,EAAKgB,EAAMnnB,CAAQ,CAAC,EACnC,GAAInuD,IAAW,GAAM,CACjB,GAAIs0E,EAAK,UAAY,YACjB9gC,EAAS,MAAQ,cACjB2a,KAAYp0C,EAAK,KAKjB,SAEJA,EAAK,SAALA,EAAK,OAAW,CAAE,GAClBA,EAAK,OAAO,KAAK/Z,CAAM,EACvBm1E,EAAO,KAAKn1E,CAAM,CAC9C,CACA,CACA,CACA,CACYi1E,EAAY,KAAK,CACb,KAAM5hC,EAAS,KACf,OAAA0iC,EACA,KAAMh8D,EAAK,KACX,KAAMA,EAAK,OAAS,GAAO,OAC3B,KAAMg8D,GAAU,QAAUA,GAAU,SAE5BlnB,GAAiBymB,EAAO,CAACjiC,EAAS,QAAQ,IAAI,CAAC,EACjDiiC,EAAM,WAAa,WACfzmB,GAAiBymB,EAAO,CACtB,GAAGA,EAAM,YACTjiC,EAAS,QAAQ,IACpB,GACCub,GAAS0mB,CAAK,CACxC,CAAa,CACb,CACQ,MAAO,CAEH,QAAAj6E,EAEA,MAAO45E,EAEP,SAAUC,EAEV,OAAAC,EAEA,UAAWC,CACd,CACT,CAEI,+CAAgD,SAC5C,MAAMY,EAAU,KAAK,YAGrB,UAAWzzD,KAAQ,OAAO,OAAO,KAAK,UAAU,KAAK,EAAG,CACpD,GAAIA,EAAK,MAAQ,uBACb,SACJ,MAAMnsB,EAAQ,KAAKmsB,EAAK,IAAI,EAC5B,GAAInsB,GAAA,MAAAA,EAAO,OAAQ,CACf,MAAM6/E,EAAK1zD,EAAK,WAAW,KAC3B,UAAWzS,KAAS1Z,EAChB0Z,EAAMmmE,CAAE,EAAID,CAEhC,CACA,CACQ,IAAI7gC,GAAAt7C,EAAA,KAAK,UAAL,YAAAA,EAAc,YAAd,MAAAs7C,EAAyB,MAAO,CAChC,MAAM1tB,EAAS,KAAK,QACpB,UAAWlF,KAAQ,OAAO,OAAOkF,EAAO,UAAU,KAAK,EAAG,CACtD,GAAIlF,EAAK,MAAQ,sBACb,SAKUkF,EAAOlF,EAAK,IAAI,IAChB,OAEVkF,EAAOlF,EAAK,WAAW,IAAI,EAAIyzD,EAEnD,CACA,CACA,CAUI,eAAejwE,EAAQmwE,EAAc,GAAMC,EAAe,GAAO,SACzD,KAAK,YAAYhhC,GAAAt7C,EAAA,KAAK,iBAAL,YAAAA,EAAqB,QAArB,MAAAs7C,EAA4B,QAC7CihC,GAAyB,KAAMrwE,EAAQ,GAAMmwE,EAAa,GAAO,EAAI,GAGrEE,GAAyB,KAAMrwE,EAAQ,GAAOmwE,EAAaC,EAAc,EAAI,EACzED,IACA,KAAK,SAAW,IAGhC,CAOI,eAAenwE,EAAQowE,EAAe,GAAO,CACzC,OAAO,KAAK,eAAepwE,EAAQ,GAAMowE,CAAY,CAC7D,CAQI,eAAepwE,EAAQ,CACnB,OAAO,KAAK,eAAeA,EAAQ,GAAO,EAAK,CACvD,CAII,IAAI,SAAU,CACV,MAAMswE,EAAU,KAAK,WAChB,YAAY,OAAQ,SAAUt/E,EAAG,CAClC,GAAI,KAAK,gBACL,OAAOA,EAAE,OAAO,KAAK,YAAa,KAAK,OAAO,EAG9C,KAAK,4BAA6B,CAEzC,GACI,YAAY,UAAY,CACzB,KAAK,4BAA6B,CAC9C,CAAS,EAGD,cAAO,eAAe,KAAM,UAAW,CAAE,MAAOs/E,EAAS,EAClDA,CACf,CAEI,6BAA8B,CAC1B,GAAI,KAAK,kBAAmB,CACxB,MAAMC,EAAM,KAAK,kBAAkB,QAAQ,IAAI,EAC/C,GAAIA,EAAM,GAEN,OADa,KAAK,kBAAkB,OAAOA,EAAK,CAAC,EAAE,CAAC,CAGpE,CACA,CAEI,IAAI,iBAAkB,CAIlB,MAHI,GAAC,KAAK,aAGN,KAAK,UAAU,QAAQ,YACvB,KAAK,cAAc,KAAK,UAAU,QAAQ,IAAI,EAM1D,CAKI,IAAI,YAAa,CACb,OAAO,KAAK,UACpB,CAKI,SAAU,OACN,GAAI,CAAC,KAAK,QACN,MAAM,IAAI,MAAM,oBAAoB,KAAK,UAAU,IAAI,0CAA0C,EAErG,KAAK,WAAa,GAClB,KAAK,4BAA6B,EAC9B,KAAK,mBAAmB/C,MACvB15E,EAAA,KAAK,SAAQ,gBAAbA,EAAa,cAAkB,KAAI,KAAK,IAAI,CAEzD,CASI,aAAamN,EAAU,GAAI,OACvB,MAAM2mD,GAAM9zD,EAAA0X,GAAkB,IAAlB,YAAA1X,EAAsB,MAClC,GAAI,CAAC8zD,EACD,MAAM,IAAI,MAAM,sHAAsH,EAC1I,OAAO,KAAK,eAAeA,EAAK3mD,CAAO,CAC/C,CAMI,eAAe2mD,EAAK3mD,EAAU,GAAI,SAC9B,IAAI8J,GAAQjX,EAAA,KAAK,iBAAL,YAAAA,EAAqB,MACjC,GAAIiX,GAAA,MAAAA,EAAO,QAAUA,EAAM,UAAY9J,EAGnC,OAEJ,KAAM,CAAE,KAAAmqE,EAAO,IAAM,UAAA72B,EAAY,OAAW,SAAUi8B,CAAe,EAAMvvE,EAC3E,KAAK,cAAe,EACpB8J,EAAQ,IAAI0lE,GACZ1lE,EAAM,QAAU9J,EACZ,KAAK,eACL,KAAK,eAAe,MAAQ8J,EAG5B,KAAK,eAAiBvM,GAAIuM,CAAK,EAEnC,IAAI2lE,EAAU,GACd,MAAMC,EAAcxF,GAAS,IAAM,CAC/B,GAAKpgE,GAAA,MAAAA,EAAO,SAcR,KAAK,UACJ,CAAC2lE,GAAW,CAAC,KAAK,aAAe,KAAK,MAAM,gBAAkB,MAAO,CACtE,GAAI,KAAK,WAAcn8B,GAAa,CAACA,EAAU,IAAI,EAI/C,OAEJ,GAAI,KAAK,MAAM,WAAa,KAAK,MAAM,UAAW,CAG9Co8B,EAAa,EACb,MACpB,CAEgBD,EAAU,GACV,KAAK,MAAK,EAML,KAAKC,CAAW,EAGhB,MAAM,IAAM,EAAG,CACpC,CACS,EAAE,KAAK,IAAI,EAAGvF,CAAI,EAAGoF,CAAe,EACrC,IAAII,EAAY,GAchB,GAbA7lE,EAAM,QAAU,UAAY,CACpB6lE,IAEJA,EAAY,GAGZhpB,EAAI,UAAU,IAAM,CAChBgpB,EAAY,GACZD,EAAa,CAC7B,CAAa,EACJ,EACDE,GAAc9lE,EAAO68C,EAAK,OAAW+oB,CAAW,EAChD5lE,EAAM,QAAS,EACX9J,EAAQ,KACR,UAAWmnD,KAAY,KAAK,UAAU,MAAO,CACzC,MAAM5rC,EAAO,KAAK,UAAU,MAAM4rC,CAAQ,EAC1C,GAAI5rC,EAAK,MAAQ,wBACb,GAAI,KAAK4rC,CAAQ,EACb,UAAWr+C,KAAS,KAAKq+C,CAAQ,EAC7Br+C,EAAM,eAAe69C,EAAK3mD,CAAO,OAIpCub,EAAK,MAAQ,yBAClB4yB,EAAA,KAAKgZ,CAAQ,IAAb,MAAAhZ,EAAgB,eAAewY,EAAK3mD,GAExD,CAEA,CAEI,eAAgB,YACZquC,GAAAF,GAAAt7C,EAAA,KAAK,iBAAL,YAAAA,EAAqB,QAArB,YAAAs7C,EAA4B,UAA5B,MAAAE,EAAA,KAAAF,EACR,CAEI,IAAI,oBAAqB,SAErB,OAAK,KAAK,gBAIHA,GAAAt7C,EAAA,KAAK,iBAAL,YAAAA,EAAqB,QAArB,YAAAs7C,EAA4B,QAH/B,KAAK,eAAiB5wC,GAAK,EACpB,GAGnB,CAOI,SAASge,EAAMvb,EAAS,CACpB,OAAKub,EAEE0tC,IAAY,KAAM1tC,EAAMvb,CAAO,EAD3B+oD,IAAa,KAAM/oD,CAAO,CAE7C,CAMI,UAAUub,EAAMkxD,EAAkB,CAC9B,MAAMjgC,EAAWJ,GAAgB,KAAK,UAAW7wB,CAAI,EACrD,IAAIuzD,EAAa,KAAKtiC,EAAS,IAAI,EAKnC,GAJK,MAAM,QAAQsiC,CAAU,IACzB,KAAKtiC,EAAS,IAAI,EAAI,CAAE,EACxBsiC,EAAa,KAAKtiC,EAAS,IAAI,GAE/BA,EAAS,MAAQ,uBAAwB,CAGzC,MAAMqjC,EAAef,EAAWA,EAAW,KAAKxnB,GAAW,GAAI9a,EAAS,SAAS,OAAO,CAAC,EAAI,CAAC,EAC9F,OAAIigC,GACAoD,EAAa,eAAepD,CAAgB,EAGhDoD,EAAarjC,EAAS,WAAW,IAAI,EAAI,KAAK,YAG1CA,EAAS,WAAW,iBAEpBqjC,EAAarjC,EAAS,WAAW,eAAe,IAAI,EAAI,MAErDqjC,CACnB,KAEY,MAAM,yDAElB,CAqDA,EAn+BIr1B,GARS+xB,GAQF,aAAa,MARjB,IAAMuD,GAANvD,UAy/BF15E,GAAA4zD,GAbE,MAAMspB,GAAc,CAuRvB,YAGA3N,EAEAoK,EAAY,CA3RZhyB,GAAA,kBACAA,GAAA,mBAWAA,GAAA,KAAC3nD,GAAsB,IAIvB2nD,GAAA,eAAUj9C,GAAI,IAAI6jE,GAAgB,GAyBlC5mB,GAAA,oBAAe,IA4BfA,GAAA,cAASj9C,GAAK,GAuGdi9C,GAAA,sBAAiB,IAAIg1B,IA0DrBh1B,GAAA,sBAAiB,IAAIg1B,IAsDjB,KAAK,UAAYpN,EACjB,KAAK,WAAaoK,EAClBnvE,GAAQ,IAAI,CACpB,CA7QI,IAAI,SAAU,CACV,OAAO,KAAK,QAAQ,KAC5B,CACI,IAAI,QAAQzP,EAAK,CACb,KAAK,QAAQ,MAAQA,CAC7B,CAEI,IAAI,aAAc,CACd,OAAO,KAAK,QAAQ,UAC5B,CACI,IAAI,YAAYA,EAAK,CACjB,KAAK,QAAQ,WAAaA,CAClC,CAEI,IAAI,WAAY,CACZ,OAAO,KAAK,QAAQ,QAC5B,CACI,IAAI,UAAUA,EAAK,CACf,KAAK,QAAQ,SAAWA,CAChC,CAQI,IAAI,aAAc,CACd,OAAO,KAAK,MAAM,QAAU,CAAE,CACtC,CAEI,IAAI,gBAAiB,CACjB,OAAO,KAAK,YACpB,CAOI,IAAI,eAAeA,EAAK,CACpB,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,kDAAkD,EAEtE,KAAK,aAAe,GACpB,KAAK,OAAO,MAAQ,MAC5B,CAMI,IAAI,QAAS,CACT,IAAIwB,EAAQ,KAAK,OAAO,MACxB,GAAI,CAACA,EAAO,CACR,GAAI,KAAK,aACL,MAAM,IAAI,MAAM,mHAAmH,EAEvIA,EAAQ,IAAI4gF,GAAoB,KAAK,UAAW,IAAI,EAIpD,KAAK,OAASzyE,GAAInO,CAAK,EACnBw3D,IAOA,KAAK,OAAO,MAAM,OAAO,SAAU,CAEnD,CACQ,OAAOx3D,CACf,CACI,IAAI,OAAOxB,EAAK,CACZ,GAAI,KAAK,aACL,MAAM,IAAI,MAAM,oFAAoF,EAExG,GAAI,KAAK,OAAO,QAAUA,EACtB,OACJ,MAAMqiF,EAAM,IAAID,GAAoB,KAAK,UAAW,IAAI,EACpDpiF,GACAqiF,EAAI,KAAK,GAAGriF,CAAG,EACnB,KAAK,OAAO,MAAQqiF,CAC5B,CAEI,IAAI,kBAAmB,CACnB,OAAQ,KAAK,QAAQ,MAAQ,GAAK,CAC1C,CAEI,IAAI,cAAe,CAEf,OAAI,KAAK,MAAM,YAAc,GAClB,IACH,KAAK,QAAQ,MAAQ,IAAM,KAAK,MAAM,WAAa,EACnE,CAEI,eAAgB,CACR,KAAK,mBACL,KAAK,QAAQ,MAAQ,KAAK,QAAQ,MAAQ,GAAK,EAC3D,CAEI,WAAY,CACJ,KAAK,eACL,KAAK,QAAQ,MAAQ,KAAK,QAAQ,MAAQ,GAAK,EAC3D,CACI,IAAI,OAAQ,CACR,OAAO,KAAK,QAAQ,MAAQ,CACpC,CACI,IAAI,MAAMriF,EAAK,CACX,KAAK,QAAQ,KAAO,KAAK,IAAI,EAAG,OAAOA,CAAG,CAAC,CACnD,CACI,IAAI,WAAY,CACZ,OAAO,KAAK,QAAQ,UAAY,CACxC,CACI,IAAI,UAAUA,EAAK,CACf,KAAK,QAAQ,SAAW,OAAOA,CAAG,CAC1C,CACI,IAAI,YAAa,CACb,OAAO,KAAK,MAAM,SAC1B,CAII,IAAI,OAAQ,CACR,MAAM6/E,EAAQ,KAAK,WAAW,YAAY,OAAS19E,GAAM,CACrD,MAAM29E,EAAY,YAAY,IAAK,EACnC,OAAO39E,EAAE,KAAK,KAAK,OAAO,EAAE,KAAMuN,GAAM,CACpC,GAAI,CAAC,KAAK,aAAc,CACpB,MAAMtE,EAASsE,EAAE,KAAK,KAClBtE,IACA,KAAK,OAASk3E,GAA6C,KAAK,UAAW,KAAK,OAAQl3E,EAAQ00E,EAAW,EAAI,EAEvI,CACgB,OAAOpwE,CACvB,CAAa,CACb,CAAS,EAGD,cAAO,eAAe,KAAM,QAAS,CAAE,MAAOmwE,EAAO,EAC9CA,CACf,CAII,IAAI,QAAS,CACT,MAAM0C,EAAS,KAAK,WAAW,YAAY,OAASpgF,GAAMA,EAAE,MAAM,KAAK,OAAO,CAAC,EAG/E,cAAO,eAAe,KAAM,SAAU,CAAE,MAAOogF,EAAQ,EAChDA,CACf,CAQI,aAAanwE,EAAU,GAAI,OACvB,MAAM2mD,GAAM9zD,EAAA0X,GAAkB,IAAlB,YAAA1X,EAAsB,MAClC,GAAI,CAAC8zD,EACD,MAAM,IAAI,MAAM,sHAAsH,EAC1I,OAAO,KAAK,eAAeA,EAAK3mD,CAAO,CAC/C,CAMI,eAAe2mD,EAAK3mD,EAAU,GAAI,CAC9B,KAAM,CAAE,KAAAmqE,EAAO,IAAM,UAAA72B,EAAY,OAAW,SAAUi8B,CAAe,EAAMvvE,EAC3E,KAAK,cAAe,EACpB,MAAMowE,EAAclG,GAAS,IAAM,CAC1B,KAAK,eAAe,SAGrB52B,GAAa,CAACA,EAAU,IAAI,IAG5B,KAAK,MAAM,WAAa,KAAK,MAAM,iBAAmB,SAEtD88B,EAAa,EAIb,KAAK,MAAO,GAE5B,EAAWjG,EAAMoF,CAAe,EAClBc,EAAW,IAAM,CACf/8B,GAAa,CAACA,EAAU,IAAI,GAGhC88B,EAAa,CAChB,EACKE,EAAU3pB,EAAI,OAIpB,IAAM,KAAK,UAAU0a,GAAe,KAAK,OAAO,CAAC,EAAGgP,CAAQ,EAC5DT,GAAc,KAAK,eAAgBjpB,EAAK2pB,EAASF,CAAW,EACxDpwE,EAAQ,WAER,KAAK,MAAO,CAExB,CAEI,eAAgB,UACZmuC,GAAAt7C,EAAA,KAAK,gBAAe,UAApB,MAAAs7C,EAAA,KAAAt7C,EACR,CAQI,aAAamN,EAAU,GAAI,OACvB,MAAM2mD,GAAM9zD,EAAA0X,GAAkB,IAAlB,YAAA1X,EAAsB,MAClC,GAAI,CAAC8zD,EACD,MAAM,IAAI,MAAM,sHAAsH,EAC1I,OAAO,KAAK,eAAeA,EAAK3mD,CAAO,CAC/C,CAMI,eAAe2mD,EAAK3mD,EAAU,GAAI,CAC9B,GAAI,KAAK,aACL,MAAM,IAAI,MAAM,sDAAsD,EAE1E,IAAI8J,EAAQ,KAAK,eACjB,GAAIA,GAAA,MAAAA,EAAO,QAAUA,EAAM,UAAY9J,EAEnC,OAEJ,KAAK,cAAe,EACpB8J,EAAQ,KAAK,iBAAL,KAAK,eAAmB,IAAI0lE,IACpC1lE,EAAM,QAAU9J,EAChB8J,EAAM,IAAM68C,EACZ,MAAM2pB,EAAU3pB,EAAI,OAAO,IAAM,CAAC,GAAG,KAAK,OAAO,IAAKp4D,GAAMA,EAAE,SAAS,CAAC,EAAG,IAAM,CAC7E,UAAW4C,KAAQ,KAAK,OACpBA,EAAK,eAAe2Y,EAAM,IAAKA,EAAM,OAAO,CAEnD,EAAE,CAAE,UAAW,GAAM,KAAM,EAAI,CAAE,EAClC8lE,GAAc9lE,EAAO68C,EAAK2pB,CAAO,CACzC,CAEI,eAAgB,UACZniC,GAAAt7C,EAAA,KAAK,iBAAL,YAAAA,EAAqB,UAArB,MAAAs7C,EAAA,KAAAt7C,GACA,UAAW1B,KAAQ,KAAK,OACpBA,EAAK,cAAe,CAEhC,CAEI,IAAI,oBAAqB,OACrB,OAAO0B,EAAA,KAAK,iBAAL,YAAAA,EAAqB,MACpC,CAWA,CAlRI2nD,GAfSu1B,IAeF,aAAa,aAgSnBl9E,GAAA4zD,GAbE,MAAM8pB,GAAiB,CAgB1B,YAEAnO,EAEAoK,EAAY,CAnBZhyB,GAAA,kBACAA,GAAA,mBAWAA,GAAA,KAAC3nD,GAAsB,IAQnB,KAAK,UAAYuvE,EACjB,KAAK,WAAaoK,EAClBnvE,GAAQ,IAAI,CACpB,CACA,CAVIm9C,GAfS+1B,IAeF,aAAa,MAgBjB,MAAMC,GAAN,MAAMA,EAAiB,CA8D1B,YAAYtB,EAAc,GAAM,CA7DhC10B,GAAA,oBAMAA,GAAA,WAAM,IAAI,KAoBVA,GAAA,iBAAY,IAAI,KAoCZ,KAAK,YAAc00B,CAC3B,CA5DI,WAAW,WAAY,CACnB,MAAO,CAAC,CAAC,KAAK,OACtB,CAMI,IAAIvzD,EAAU80D,EAAa,CACvB,MAAM/iF,EAAM,KAAK,IACjB,GAAIA,EAAI,IAAI+iF,CAAW,EACnB,OAAO/iF,EAAI,IAAI+iF,CAAW,EAE9B,MAAMC,EAASZ,GAAU,WAAWn0D,CAAQ,EACtCg1D,EAAK,IAAID,EACf,OAAAhjF,EAAI,IAAI+iF,EAAaE,CAAE,EACvBA,EAAG,eAAeF,EAAa,KAAK,WAAW,EACxCE,CACf,CAEI,IAAIF,EAAaE,EAAI,CACjB,KAAK,IAAI,IAAIF,EAAaE,CAAE,CACpC,CAGI,cAAcF,EAAaE,EAAI,CAC3B,IAAIzb,EAAU,KAAK,UAAU,IAAIub,CAAW,EAI5C,OAHKvb,GACD,KAAK,UAAU,IAAIub,EAAcvb,EAAU,IAAI,GAAO,EAEtDA,EAAQ,IAAIyb,CAAE,EACP,IAEXzb,EAAQ,IAAIyb,CAAE,EACP,GACf,CACI,OAAO,MAAM5B,EAAQG,EAAa,CAC9B,GAAKsB,GAAiB,QAalB,OAAOzB,EAAOyB,GAAiB,OAAO,EAXtCA,GAAiB,QAAU,IAAIA,GAAiBtB,CAAW,EAC3D,GAAI,CAEA,OAAOH,EAAOyB,GAAiB,OAAO,CACtD,QACoB,CACJA,GAAiB,QAAU,IAC3C,CAMA,CACI,OAAO,IAAI70D,EAAU80D,EAAavB,EAAa,CAC3C,OAAOsB,GAAiB,MAAM,SAAUryE,EAAS,CAC7C,OAAOA,EAAQ,IAAIwd,EAAU80D,CAAW,CAC3C,EAAEvB,CAAW,CACtB,CAIA,EA/DI10B,GAFSg2B,GAEF,UAAU,MAFd,IAAM7D,GAAN6D,GAmEP,SAASI,GAAwBxO,EAAW,CAExC,MAAM30E,EAAM,oBADc20E,EAAU,MAAQ,QAAUA,EAAYA,EAAU,SAAS,SACpC,IAAI,GACrD,OAAOA,EAAU,MAAQ,QAAU30E,EAAM,GAAG20E,EAAU,IAAI,KAAK30E,CAAG,GACtE,CACA,SAASojF,GAA4B3qB,EAAO+pB,EAAKf,EAAa,CAC1D,MAAM4B,EAAoBb,EAAI,UAAU,MAAQ,QAC1CA,EAAI,UACJA,EAAI,UAAU,SAAS,QAC7B,OAAO/pB,EAAM,IAAKt4D,GAAQ,SACtB,GAAIA,GAAO,KACP,MAAM,MAAM,iDAAiD,EAEjE,GAAI,OAAOA,GAAQ,SACf,MAAM,MAAM,+BAA+BgjF,GAAwBX,EAAI,SAAS,CAAC,EAAE,EAGlF,GAAI,cAAeriF,GAAOA,EAAI,WAAakjF,EAC5C,MAAM,MAAM,yCAAyCljF,EAAI,UAAU,IAAI,OAAOgjF,GAAwBX,EAAI,SAAS,CAAC,EAAE,EAE1H,IAAIc,EACJ,GAAInjF,aAAekiF,GAEfiB,EAAYnjF,MAEX,CAED,GAAIkiF,GAAU,aAAe,KACzB,MAAM,MAAM,yFAAyF,EAEzGiB,EAAYnjF,EAAM++E,GAAiB,IAAImE,EAAkB,KAAMljF,EAAKshF,CAAW,CAC3F,CAKQ6B,EAAU,QAAUd,EAAI,QACxBc,EAAU,kBAAoBd,EAE9B,MAAMe,GAAgBn+E,EAAAo9E,EAAI,QAAQ,iBAAZ,YAAAp9E,EAA4B,MAClD,OAAIm+E,GAAA,MAAAA,EAAe,UAAU7iC,EAAA6iC,EAAc,UAAd,MAAA7iC,EAAuB,OAChD4iC,EAAU,eAAeC,EAAc,IAAKA,EAAc,OAAO,EAE9DD,CACf,CAAK,CACL,CACA,SAASE,GAAavgF,EAAK,CAIvB,MAAMwgF,EAAQ,OAAO,eAAexgF,CAAG,EACvC,OAAIA,EAAI,MAAQwgF,EAAM,KAGX,OAAO,eAAeA,CAAK,EAE/BA,CACX,CACO,MAAMlB,WAA4B,KAAM,CAsB3C,YAAY5N,EAAW+O,EAAS,CAC5B,MAAO,EAtBX32B,GAAA,kBACAA,GAAA,gBACAA,GAAA,mBAqBI,cAAO,iBAAiB,KAAM,CAI1B,UAAW,CACP,MAAO4nB,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,EACD,QAAS,CACL,MAAO+O,EACP,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,EACD,WAAY,CACR,MAAO,GACP,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,CACb,CAAS,EACGvqB,IACA,OAAO,iBAAiB,KAAM,CAC1B,KAAM,CACF,MAAOopB,GAAoB,UAAU,KACrC,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,EACD,OAAQ,CACJ,MAAOA,GAAoB,UAAU,OACrC,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,CACjB,CAAa,EACM,OAMP,OAAO,iBAAiB,KAAM,CAC1B,YAAa,CACT,MAAO,MAAM,YACb,WAAY,GACZ,SAAU,GACV,aAAc,EACjB,CACjB,CAAa,EACMz1E,GAAS,IAAI,EAEhC,CA1EI,QAAQ2rD,EAAO,CAGX,MAAMkrB,EAAiBP,GAA4B3qB,EAAO,KAAM,EAAI,EACpE,OAAIW,GACO,MAAM,KAAK,GAAGuqB,CAAc,EAEhCH,GAAa,IAAI,EAAE,KAAK,MAAM,KAAMG,CAAc,CACjE,CACI,OAAOhuE,EAAOiuE,KAAgBnrB,EAAO,CACjC,MAAMkrB,EAAiBlrB,GACjB2qB,GAA4B3qB,EAAO,KAAM,EAAI,EAEnD,OAAIW,GACO,MAAM,OAAOzjD,EAAOiuE,EAAa,GAAGD,CAAc,EAEtDH,GAAa,IAAI,EAAE,OAAO,KAAK,KAAM7tE,EAAOiuE,EAAa,GAAGD,CAAc,CACzF,CA0DA,CAMO,SAASE,IAAY5E,EAAMrgC,EAAU,CACxC,MAAMt6C,EAAQ,OAAO,OAAOs6C,EAAS,KAAK,EACpCwf,EAAc,CAAE,EACtB,QAAS,EAAI,EAAG,EAAI95D,EAAM,OAAQ,IAAK,CACnC,MAAMwpB,EAAOxpB,EAAM,CAAC,EACdo1D,EAAW5rC,EAAK,KAChBg2D,EAAiB,OAAO,iCAAmCpqB,CAAQ,EACzE0E,EAAY1E,CAAQ,EAAI,CACpB,WAAY,GACZ,aAAc,GACd,IAAK,UAAY,CACb,OAAO,KAAK,MAAMA,CAAQ,CAC7B,EACD,IAAK5rC,EAAK,MAAQ,QACZ,SAAUi2D,EAAe,SACvB,GAAIA,GAAiB,KAAM,CACvB,GAAI,OAAOA,GAAkB,SACzB,MAAM,MAAM,iCAAiCnlC,EAAS,IAAI,IAAI8a,CAAQ,EAAE,EAEvE,GAAI,cAAeqqB,GAChBA,EAAc,UAAU,MAAQj2D,EAAK,QAAQ,KAC7C,MAAM,MAAM,yCAAyCi2D,EAAc,UAAU,IAAI,OAAOnlC,EAAS,IAAI,IAAI8a,CAAQ,EAAE,EAGvHqqB,aAAyB1B,KAMzB0B,EAAgB7E,GAAiB,IAAIpxD,EAAK,QAAQ,KAAMi2D,EAAe,CAAC,CAACA,EAAcj2D,EAAK,QAAQ,QAAQ,IAAI,CAC/G,GAGL,MAAMy1D,GAAgBn+E,EAAA,KAAK,iBAAL,YAAAA,EAAqB,MACvCm+E,GAAA,MAAAA,EAAe,UAAU7iC,EAAA6iC,EAAc,UAAd,MAAA7iC,EAAuB,OAChDqjC,EAAc,eAAeR,EAAc,IAAKA,EAAc,OAAO,EAEzEQ,EAAc,QAAU,IAChD,CAMoB,GALA,KAAK,MAAMrqB,CAAQ,EAAIqqB,EAKnBj2D,EAAK,MAAQ,sBAAuB,CAGpC,MAAMk2D,EAAaD,EACbA,EAAcj2D,EAAK,aAAa,IAAI,EACpC,KAGN,KAAKA,EAAK,WAAW,IAAI,EAAIk2D,EACzBD,GAAiBC,GAAc,MAI/B,KAAK,cAAcl2D,EAAK,WAAW,IAAI,CAEnE,CACA,EACkBA,EAAK,MAAQ,cAAgBA,EAAK,SAAS,MAAQ,QAC/C,SAAUi2D,EAAe,CACvB,IAAIE,EAAY,GAChB,GAAIF,GAAiB,KAIjBA,EAAgB,CAAE,UAEZ,MAAM,QAAQA,CAAa,EAIjCE,EAAY,OAHZ,OAAM,MAAM,gCAAgCrlC,EAAS,IAAI,IAAI8a,CAAQ,EAAE,EAK3E,MAAMwqB,EAAQ,KAAK,MAEnB,GADYA,EAAMxqB,CAAQ,IACdqqB,EAER,OAEJ,MAAMvB,EAAM,IAAID,GAAoBz0D,EAAM,IAAI,EAI9C00D,EAAI,WAAayB,EACjBzB,EAAI,KAAK,GAAGuB,CAAa,EACzBG,EAAMxqB,CAAQ,EAAI8oB,CAC1C,EACsB,SAAUuB,EAAe,CACvB,MAAMG,EAAQ,KAAK,MAIbC,EAAW/5E,GAAM85E,CAAK,EACtBhO,EAAMiO,EAASzqB,CAAQ,EAE7B,GAAIwc,IAAQ6N,IAGRj2D,EAAK,MAAQ,UACbi2D,GAAiB,MACjB,EAAE,cAAeA,IACjBnqB,GAAemqB,EAAej2D,EAAK,OAAO,GAM1CooD,GAAA,YAAAA,EAAK,cAAc6N,GAAA,YAAAA,EAAe,YAAW,CAQ7C,GAPAG,EAAMxqB,CAAQ,EAAIqqB,EAClB,KAAK,cAAcrqB,CAAQ,EAMvB5rC,EAAK,MAAQ,SACbA,EAAK,MAAQ,cACb,CAACA,EAAK,eACN,CAAC,KAAKg2D,CAAc,EAEpB,GADA,KAAKA,CAAc,EAAI,GACnB,CAACM,GAEI,OAAO,uCAER,OAAO,qCAAuC,GAC9C,QAAQ,KAAK,4GAA4G,OAG5H,CAMD,MAAMC,EAAW,IAAI,QAAQ,IAAI,EACjCD,GAA4B,SAAS,KAAM/xE,GAAM,IAAM6xE,EAAMxqB,CAAQ,EAAG,WAAM,OAAAt0D,EAAAi/E,EAAS,MAAK,IAAd,YAAAj/E,EAAkB,cAAcs0D,IAAW,CAAE,KAAM,GAAM,MAAO,MAAM,CAAE,CAAC,CAC3L,CAE4B,GAAI5rC,EAAK,MAAQ,cAAgBA,EAAK,eAAgB,CAMlD,MAAMw2D,EAAgBH,EAASr2D,EAAK,eAAe,IAAI,EACnDw2D,GAAiB,MACjBP,GAAiBO,EAAcx2D,EAAK,aAAa,IAAI,IAMrDo2D,EAAMp2D,EAAK,eAAe,IAAI,EAAI,KAEtE,CACA,CACqB,CACZ,CACT,CACI,OAAO,iBAAiBmxD,EAAK,UAAW7gB,CAAW,CACvD,CAMA,SAASqkB,GAA6Cr5E,EAAMysC,EAAckuC,EAAetC,EAAaC,EAAc,CAC3G,MAAM,QAAQ7rC,CAAY,IAC3BA,EAAe,CAAE,GAErB,IAAI0uC,EAAiBR,EAAc,OAC/BS,EAAgB3uC,EAAa,OAGjC,MAAM4uC,EAASr7E,EAAK,QAAQ,KACtBs7E,EAAmB,IAAI,IACvBC,EAAyB,CAAE,EACjC,QAAS7jF,EAAI,EAAGA,EAAI0jF,EAAe1jF,IAAK,CACpC,MAAM4C,EAAOmyC,EAAa/0C,CAAC,EACrB8jF,EAASlhF,EAAK,YAChBkhF,EACAF,EAAiB,IAAIE,EAAQlhF,CAAI,EAGjCihF,EAAuB,KAAKjhF,CAAI,CAE5C,CAGI,QAAS5C,EAAI,EAAGA,EAAIyjF,EAAgBzjF,IAAK,CACrC,MAAM+jF,EAAed,EAAcjjF,CAAC,EAC9BgkF,EAAiBD,EAAaJ,CAAM,EACpCM,EAAeL,EAAiB,IAAII,CAAc,EACpDC,GACAA,EAAa,eAAeF,EAAcpD,CAAW,EACjD5rC,EAAa/0C,CAAC,IAAMikF,GAKpBlvC,EAAa,OAAO/0C,EAAG,EAAGikF,CAAY,GAMtClvC,EAAa/0C,CAAC,EAEd+0C,EAAa,OAAO/0C,EAAG,EAAG+jF,CAAY,EAItChvC,EAAa,KAAKgvC,CAAY,CAG9C,CACI,GAAIF,EAAuB,QAAU,CAACjD,EAAc,CAOhD,MAAMsD,EAAsBL,EAAuB,OACnD,QAAS7jF,EAAI,EAAGA,EAAIkkF,EAAqBlkF,IAAK,CAC1C,MAAMikF,EAAeJ,EAAuB7jF,CAAC,EACvCmkF,EAAcpvC,EAAa0uC,CAAc,EAC3CQ,IAAiBE,GAKjBpvC,EAAa,OAAO0uC,EAAgB,EAAGQ,CAAY,EAEvDR,GAAkB,CAC9B,CACA,CAGI,OAAIC,EAAgBD,GAChB1uC,EAAa,OAAO0uC,EAAgBC,EAAgBD,CAAc,EAI/D1uC,CACX,CAWO,SAAS8rC,GAAyBx4E,EAAQmI,EAAQ4zE,EAAY,GAAOzD,EAAc,GAAMC,EAAe,GAAOyD,EAAY,GAAO,CACrIjG,GAAiB,MAAM,SAAUxuE,EAAS,CAEtC,GAAI,CAACA,EAAQ,cAAcY,EAAQnI,CAAM,EACrC,OAOJuH,EAAQ,IAAIY,EAAQnI,CAAM,EAC1B,MAAMy1C,EAAWz1C,EAAO,UAExB,GAAI,cAAemI,GAAUA,EAAO,WAAastC,EAC7C,MAAM,MAAM,uBAAuBA,EAAS,IAAI,qBAAqBttC,EAAO,UAAU,IAAI,UAAU,EAMxG,MAAM4yE,EAAQ/6E,EAAO,MACfg7E,EAAW/5E,GAAM85E,CAAK,EACxBzC,GAQA,OAAOt4E,EAAO,cAElB,IAAIi8E,EAAkB,GAClB,OAAO3D,GAAe,UAClB0D,GAAa1D,EAAct4E,EAAO,WAClC,QAAQ,IAAI,mBAAmBy1C,EAAS,IAAI,IAAIz1C,EAAO,WAAW,uBAAuBA,EAAO,SAAWs4E,GAAa,QAAQ,CAAC,CAAC,0CAA0C,EAC5K2D,EAAkB,IAEtBj8E,EAAO,SAAWs4E,GAEbA,IACLt4E,EAAO,SAAW,YAAY,IAAK,GAEvC,UAAW2kB,KAAQ,OAAO,OAAO8wB,EAAS,KAAK,EAAG,CAC9C,MAAM8a,EAAW5rC,EAAK,KACtB,IAAIi2D,EAAgBzyE,EAAOooD,CAAQ,EAMnC,OAFIqqB,IAAkB,SAClBA,EAAgB,MACZj2D,EAAK,KAAI,CACb,IAAK,sBACD,GAAIi2D,EAAe,CACf,MAAMluC,EAAesuC,EAASzqB,CAAQ,EAClC7jB,GAAgB,MAChBA,EAAa/nB,EAAK,QAAQ,QAAQ,IAAI,IAClCi2D,EAAcj2D,EAAK,QAAQ,QAAQ,IAAI,EAIvCq3D,GAAah8E,EAAO,aAAa,IAAI2kB,EAAK,WAAW,IAAI,EAEzD,QAAQ,IAAI,oBAAoB4rC,CAAQ,QAAQ9a,EAAS,IAAI,IAAIz1C,EAAO,WAAW,gCAAgC,EAE7Gi8E,IAENj8E,EAAOuwD,CAAQ,EAAIqqB,GAMvBluC,EAAa,eAAekuC,EAAetC,EAAaC,CAAY,EAIxE,MAAM1uD,EAAS7pB,EAAO,QAChBI,EAAWssC,GAAgB1sC,EAAOuwD,CAAQ,EAC5C1mC,aAAkBqvD,IAClB94E,GACAypB,EAAO,YAAczpB,EAAS,WAC9BA,EAAS,cAAgBypB,EAAO,aAChCA,IAAWzpB,GACXypB,EAAO,eAAe+wD,EAAetC,EAAaC,CAAY,CAE1F,CAYoB,MACJ,IAAK,uBACD,MAAM7rC,EAAequC,EAAMxqB,CAAQ,EACnC,GAAIqqB,GAAiB,KAAM,CACnBluC,IAQA1sC,EAAOuwD,CAAQ,EAAI,MAEvB,KACxB,CACoB,GAAI,CAAC,MAAM,QAAQqqB,CAAa,EAC5B,KAAM,yCAAyCnlC,EAAS,IAAI,IAAI9wB,EAAK,IAAI,GAE7E,MAAMu3D,EAAgB5C,GAA6C30D,EAAK,SAAS,QAAS+nB,EAAckuC,EAAetC,EAAaC,CAAY,EAC5I7rC,IAAiBwvC,IACjBl8E,EAAOuwD,CAAQ,EAAI2rB,GAEvB,MACJ,IAAK,aAEGlB,EAASzqB,CAAQ,IAAMqqB,IACvB56E,EAAOuwD,CAAQ,EAAIqqB,GAEvB,MACJ,QAQI,GAHII,EAASzqB,CAAQ,IAAMqqB,GAGvBj2D,EAAK,MAAQ,cACTi2D,GAAiB,MACjBj2D,EAAK,gBACLxc,EAAOwc,EAAK,eAAe,IAAI,EAK/B,MAGJq3D,GAAah8E,EAAO,aAAa,IAAIuwD,CAAQ,EAE7C,QAAQ,IAAI,oBAAoBA,CAAQ,QAAQ9a,EAAS,IAAI,IAAIz1C,EAAO,WAAW,gCAAgC,EAE9G+7E,GAAa/7E,EAAO,cAAcuwD,CAAQ,GAIzC0rB,IACNj8E,EAAOuwD,CAAQ,EAAIqqB,GAEvB,KACpB,CACA,CACK,EAAEtC,CAAW,CAClB,CAEA,MAAMM,EAAc,CAQhB,aAAc,CAPdh1B,GAAA,cAAS,IACTA,GAAA,eAAU,MAEVA,GAAA,WAAM,MACNA,GAAA,cAAS,IAAI,SACbA,GAAA,eAAU,MACVA,GAAA,eAAU,MAGN,OAAO,OAAO,KAAK,IAAI,CAC/B,CACA,CACA,SAASo1B,GAAc9lE,EAAO68C,EAAK2pB,EAASyC,EAAW,CAC9CjpE,EAAM,OAAO,IAAI68C,CAAG,IACrB78C,EAAM,OAAO,IAAI68C,CAAG,EACpB38C,GAIA,WAAM,OAAAF,EAAM,MAAQ68C,KAAO9zD,EAAAiX,EAAM,UAAN,YAAAjX,EAAA,KAAAiX,KAAmB48C,GAAoBC,CAAG,CAAC,GAE1E78C,EAAM,IAAM68C,EACZ78C,EAAM,QAAU,IAAM,CACbA,EAAM,SAGXwmE,GAAA,MAAAA,IAEAyC,GAAA,MAAAA,EAAW,SACXjpE,EAAM,OAAS,GAEfA,EAAM,IAAM,KACZA,EAAM,QAAU,KACnB,EACDA,EAAM,OAAS,EACnB,CACA,SAAS+jE,GAAWM,EAAQ,CACxB,MAAO,CAAC,GAAGA,CAAM,EAAE,IAAK,GAAM,EAAE,QAAQ,MAAO,EAAE,CAAC,EAAE,KAAK,IAAI,EAAI,GACrE,CACA,MAAM0D,GAA8B,OAAO,qBAAyB,IAC9D,IAAI,qBAAsBmB,GAAc,CACtCA,EAAW,CACd,GACC,OCr+DN,2LAEA,KAAM,CACJ,QAAAvgF,GACF,eAAEwgF,GACF,SAAEC,IACF,eAAErpB,IACAspB,4BACF,EAAI,OACJ,GAAI,CACJ,OAAEC,GACF,KAAEC,GACAC,SACF,EAAI,OACA,CACJ,MAAEh7E,GACAi7E,YACF,EAAI,OAAO,QAAY,KAAe,QACjCH,KACHA,GAAS,SAAgBh7E,EAAG,CAC1B,OAAOA,CACR,GAEEi7E,KACHA,GAAO,SAAcj7E,EAAG,CACtB,OAAOA,CACR,GAEEE,KACHA,GAAQ,SAAek7E,EAAKC,EAAWt7E,EAAM,CAC3C,OAAOq7E,EAAI,MAAMC,EAAWt7E,CAAI,CACjC,GAEEo7E,KACHA,GAAY,SAAmBG,EAAMv7E,EAAM,CACzC,OAAO,IAAIu7E,EAAK,GAAGv7E,CAAI,CACxB,GAEH,MAAMw7E,GAAeC,GAAQ,MAAM,UAAU,OAAO,EAC9CC,IAAmBD,GAAQ,MAAM,UAAU,WAAW,EACtDE,GAAWF,GAAQ,MAAM,UAAU,GAAG,EACtCG,GAAYH,GAAQ,MAAM,UAAU,IAAI,EACxCI,IAAcJ,GAAQ,MAAM,UAAU,MAAM,EAC5CK,GAAoBL,GAAQ,OAAO,UAAU,WAAW,EACxDM,GAAiBN,GAAQ,OAAO,UAAU,QAAQ,EAClDO,GAAcP,GAAQ,OAAO,UAAU,KAAK,EAC5CQ,GAAgBR,GAAQ,OAAO,UAAU,OAAO,EAChDS,IAAgBT,GAAQ,OAAO,UAAU,OAAO,EAChDU,IAAaV,GAAQ,OAAO,UAAU,IAAI,EAC1CW,GAAuBX,GAAQ,OAAO,UAAU,cAAc,EAC9DY,GAAaZ,GAAQ,OAAO,UAAU,IAAI,EAC1Ca,GAAkBC,IAAY,SAAS,EAO7C,SAASd,GAAQnQ,EAAM,CACrB,OAAO,SAAUprE,EAAS,CACxB,QAASs8E,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAClG2F,EAAK3F,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjC,OAAO8F,GAAMmrE,EAAMprE,EAASF,CAAI,CACjC,CACH,CAOA,SAASu8E,IAAYjR,EAAM,CACzB,OAAO,UAAY,CACjB,QAASmR,EAAQ,UAAU,OAAQz8E,EAAO,IAAI,MAAMy8E,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF18E,EAAK08E,CAAK,EAAI,UAAUA,CAAK,EAE/B,OAAOtB,GAAU9P,EAAMtrE,CAAI,CAC5B,CACH,CASA,SAAS28E,GAAS12E,EAAKzG,EAAO,CAC5B,IAAIo9E,EAAoB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAId,GACxFhB,IAIFA,GAAe70E,EAAK,IAAI,EAE1B,IAAInL,EAAI0E,EAAM,OACd,KAAO1E,KAAK,CACV,IAAI+hF,EAAUr9E,EAAM1E,CAAC,EACrB,GAAI,OAAO+hF,GAAY,SAAU,CAC/B,MAAMC,EAAYF,EAAkBC,CAAO,EACvCC,IAAcD,IAEX9B,IAASv7E,CAAK,IACjBA,EAAM1E,CAAC,EAAIgiF,GAEbD,EAAUC,EAElB,CACI72E,EAAI42E,CAAO,EAAI,EACnB,CACE,OAAO52E,CACT,CAOA,SAAS82E,IAAWv9E,EAAO,CACzB,QAAS4B,EAAQ,EAAGA,EAAQ5B,EAAM,OAAQ4B,IAChBg7E,GAAqB58E,EAAO4B,CAAK,IAEvD5B,EAAM4B,CAAK,EAAI,MAGnB,OAAO5B,CACT,CAOA,SAAS68B,GAAMh9B,EAAQ,CACrB,MAAM29E,EAAY7B,GAAO,IAAI,EAC7B,SAAW,CAAC8B,EAAUhmF,CAAK,IAAKqD,GAAQ+E,CAAM,EACpB+8E,GAAqB/8E,EAAQ49E,CAAQ,IAEvD,MAAM,QAAQhmF,CAAK,EACrB+lF,EAAUC,CAAQ,EAAIF,IAAW9lF,CAAK,EAC7BA,GAAS,OAAOA,GAAU,UAAYA,EAAM,cAAgB,OACrE+lF,EAAUC,CAAQ,EAAI5gD,GAAMplC,CAAK,EAEjC+lF,EAAUC,CAAQ,EAAIhmF,GAI5B,OAAO+lF,CACT,CAQA,SAASE,GAAa79E,EAAQ+jB,EAAM,CAClC,KAAO/jB,IAAW,MAAM,CACtB,MAAMunE,EAAOoU,IAAyB37E,EAAQ+jB,CAAI,EAClD,GAAIwjD,EAAM,CACR,GAAIA,EAAK,IACP,OAAO6U,GAAQ7U,EAAK,GAAG,EAEzB,GAAI,OAAOA,EAAK,OAAU,WACxB,OAAO6U,GAAQ7U,EAAK,KAAK,CAEjC,CACIvnE,EAASqyD,IAAeryD,CAAM,CAClC,CACE,SAAS89E,GAAgB,CACvB,OAAO,IACX,CACE,OAAOA,CACT,CAEA,MAAMC,GAASnC,GAAO,CAAC,IAAK,OAAQ,UAAW,UAAW,OAAQ,UAAW,QAAS,QAAS,IAAK,MAAO,MAAO,MAAO,QAAS,aAAc,OAAQ,KAAM,SAAU,SAAU,UAAW,SAAU,OAAQ,OAAQ,MAAO,WAAY,UAAW,OAAQ,WAAY,KAAM,YAAa,MAAO,UAAW,MAAO,SAAU,MAAO,MAAO,KAAM,KAAM,UAAW,KAAM,WAAY,aAAc,SAAU,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQ,SAAU,SAAU,KAAM,OAAQ,IAAK,MAAO,QAAS,MAAO,MAAO,QAAS,SAAU,KAAM,OAAQ,MAAO,OAAQ,UAAW,OAAQ,WAAY,QAAS,MAAO,OAAQ,KAAM,WAAY,SAAU,SAAU,IAAK,UAAW,MAAO,WAAY,IAAK,KAAM,KAAM,OAAQ,IAAK,OAAQ,UAAW,SAAU,SAAU,QAAS,SAAU,SAAU,OAAQ,SAAU,SAAU,QAAS,MAAO,UAAW,MAAO,QAAS,QAAS,KAAM,WAAY,WAAY,QAAS,KAAM,QAAS,OAAQ,KAAM,QAAS,KAAM,IAAK,KAAM,MAAO,QAAS,KAAK,CAAC,EACz+BoC,GAAQpC,GAAO,CAAC,MAAO,IAAK,WAAY,cAAe,eAAgB,eAAgB,gBAAiB,mBAAoB,SAAU,WAAY,OAAQ,OAAQ,UAAW,SAAU,OAAQ,IAAK,QAAS,WAAY,QAAS,QAAS,OAAQ,iBAAkB,SAAU,OAAQ,WAAY,QAAS,OAAQ,UAAW,UAAW,WAAY,iBAAkB,OAAQ,OAAQ,QAAS,SAAU,SAAU,OAAQ,WAAY,QAAS,OAAQ,QAAS,OAAQ,OAAO,CAAC,EACndqC,GAAarC,GAAO,CAAC,UAAW,gBAAiB,sBAAuB,cAAe,mBAAoB,oBAAqB,oBAAqB,iBAAkB,eAAgB,UAAW,UAAW,UAAW,UAAW,UAAW,iBAAkB,UAAW,UAAW,cAAe,eAAgB,WAAY,eAAgB,qBAAsB,cAAe,SAAU,cAAc,CAAC,EAK/YsC,IAAgBtC,GAAO,CAAC,UAAW,gBAAiB,SAAU,UAAW,YAAa,mBAAoB,iBAAkB,gBAAiB,gBAAiB,gBAAiB,QAAS,YAAa,OAAQ,eAAgB,YAAa,UAAW,gBAAiB,SAAU,MAAO,aAAc,UAAW,KAAK,CAAC,EACtTuC,GAAWvC,GAAO,CAAC,OAAQ,WAAY,SAAU,UAAW,QAAS,SAAU,KAAM,aAAc,gBAAiB,KAAM,KAAM,QAAS,UAAW,WAAY,QAAS,OAAQ,KAAM,SAAU,QAAS,SAAU,OAAQ,OAAQ,UAAW,SAAU,MAAO,QAAS,MAAO,SAAU,aAAc,aAAa,CAAC,EAGtTwC,IAAmBxC,GAAO,CAAC,UAAW,cAAe,aAAc,WAAY,YAAa,UAAW,UAAW,SAAU,SAAU,QAAS,YAAa,aAAc,iBAAkB,cAAe,MAAM,CAAC,EAClN3pD,GAAO2pD,GAAO,CAAC,OAAO,CAAC,EAEvByC,GAAOzC,GAAO,CAAC,SAAU,SAAU,QAAS,MAAO,iBAAkB,eAAgB,uBAAwB,WAAY,aAAc,UAAW,SAAU,UAAW,cAAe,cAAe,UAAW,OAAQ,QAAS,QAAS,QAAS,OAAQ,UAAW,WAAY,eAAgB,SAAU,cAAe,WAAY,WAAY,UAAW,MAAO,WAAY,0BAA2B,wBAAyB,WAAY,YAAa,UAAW,eAAgB,OAAQ,MAAO,UAAW,SAAU,SAAU,OAAQ,OAAQ,WAAY,KAAM,YAAa,YAAa,QAAS,OAAQ,QAAS,OAAQ,OAAQ,UAAW,OAAQ,MAAO,MAAO,YAAa,QAAS,SAAU,MAAO,YAAa,WAAY,QAAS,OAAQ,QAAS,UAAW,aAAc,SAAU,OAAQ,UAAW,UAAW,cAAe,cAAe,UAAW,gBAAiB,sBAAuB,SAAU,UAAW,UAAW,aAAc,WAAY,MAAO,WAAY,MAAO,WAAY,OAAQ,OAAQ,UAAW,aAAc,QAAS,WAAY,QAAS,OAAQ,QAAS,OAAQ,UAAW,QAAS,MAAO,SAAU,OAAQ,QAAS,UAAW,WAAY,QAAS,YAAa,OAAQ,SAAU,SAAU,QAAS,QAAS,OAAQ,QAAS,MAAM,CAAC,EACnuC0C,GAAM1C,GAAO,CAAC,gBAAiB,aAAc,WAAY,qBAAsB,YAAa,SAAU,gBAAiB,gBAAiB,UAAW,gBAAiB,iBAAkB,QAAS,OAAQ,KAAM,QAAS,OAAQ,gBAAiB,YAAa,YAAa,QAAS,sBAAuB,8BAA+B,gBAAiB,kBAAmB,KAAM,KAAM,IAAK,KAAM,KAAM,kBAAmB,YAAa,UAAW,UAAW,MAAO,WAAY,YAAa,MAAO,WAAY,OAAQ,eAAgB,YAAa,SAAU,cAAe,cAAe,gBAAiB,cAAe,YAAa,mBAAoB,eAAgB,aAAc,eAAgB,cAAe,KAAM,KAAM,KAAM,KAAM,aAAc,WAAY,gBAAiB,oBAAqB,SAAU,OAAQ,KAAM,kBAAmB,KAAM,MAAO,YAAa,IAAK,KAAM,KAAM,KAAM,KAAM,UAAW,YAAa,aAAc,WAAY,OAAQ,eAAgB,iBAAkB,eAAgB,mBAAoB,iBAAkB,QAAS,aAAc,aAAc,eAAgB,eAAgB,cAAe,cAAe,mBAAoB,YAAa,MAAO,OAAQ,QAAS,SAAU,OAAQ,MAAO,OAAQ,aAAc,SAAU,WAAY,UAAW,QAAS,SAAU,cAAe,SAAU,WAAY,cAAe,OAAQ,aAAc,sBAAuB,mBAAoB,eAAgB,SAAU,gBAAiB,sBAAuB,iBAAkB,IAAK,KAAM,KAAM,SAAU,OAAQ,OAAQ,cAAe,YAAa,UAAW,SAAU,SAAU,QAAS,OAAQ,kBAAmB,QAAS,mBAAoB,mBAAoB,eAAgB,cAAe,eAAgB,cAAe,aAAc,eAAgB,mBAAoB,oBAAqB,iBAAkB,kBAAmB,oBAAqB,iBAAkB,SAAU,eAAgB,QAAS,eAAgB,iBAAkB,WAAY,cAAe,UAAW,UAAW,YAAa,mBAAoB,cAAe,kBAAmB,iBAAkB,aAAc,OAAQ,KAAM,KAAM,UAAW,SAAU,UAAW,aAAc,UAAW,aAAc,gBAAiB,gBAAiB,QAAS,eAAgB,OAAQ,eAAgB,mBAAoB,mBAAoB,IAAK,KAAM,KAAM,QAAS,IAAK,KAAM,KAAM,IAAK,YAAY,CAAC,EACz0E2C,GAAS3C,GAAO,CAAC,SAAU,cAAe,QAAS,WAAY,QAAS,eAAgB,cAAe,aAAc,aAAc,QAAS,MAAO,UAAW,eAAgB,WAAY,QAAS,QAAS,SAAU,OAAQ,KAAM,UAAW,SAAU,gBAAiB,SAAU,SAAU,iBAAkB,YAAa,WAAY,cAAe,UAAW,UAAW,gBAAiB,WAAY,WAAY,OAAQ,WAAY,WAAY,aAAc,UAAW,SAAU,SAAU,cAAe,gBAAiB,uBAAwB,YAAa,YAAa,aAAc,WAAY,iBAAkB,iBAAkB,YAAa,UAAW,QAAS,OAAO,CAAC,EAC7pB4C,GAAM5C,GAAO,CAAC,aAAc,SAAU,cAAe,YAAa,aAAa,CAAC,EAGhF6C,IAAgB5C,GAAK,2BAA2B,EAChD6C,IAAW7C,GAAK,uBAAuB,EACvC8C,IAAc9C,GAAK,eAAe,EAClC+C,IAAY/C,GAAK,8BAA8B,EAC/CgD,IAAYhD,GAAK,gBAAgB,EACjCiD,GAAiBjD,GAAK,2FAC5B,EACMkD,IAAoBlD,GAAK,uBAAuB,EAChDmD,IAAkBnD,GAAK,6DAC7B,EACMoD,GAAepD,GAAK,SAAS,EAC7BqD,IAAiBrD,GAAK,0BAA0B,EAEtD,IAAIsD,GAA2B,OAAO,OAAO,CAC3C,UAAW,KACX,UAAWN,IACX,gBAAiBG,IACjB,eAAgBE,IAChB,UAAWN,IACX,aAAcK,GACd,SAAUP,IACV,eAAgBI,GAChB,kBAAmBC,IACnB,cAAeN,IACf,YAAaE,GACf,CAAC,EAID,MAAMS,GAAY,CAChB,QAAS,EACT,UAAW,EACX,KAAM,EACN,aAAc,EACd,gBAAiB,EAEjB,WAAY,EAEZ,uBAAwB,EACxB,QAAS,EACT,SAAU,EACV,aAAc,GACd,iBAAkB,GAClB,SAAU,EACZ,EACMC,IAAY,UAAqB,CACrC,OAAO,OAAO,OAAW,IAAc,KAAO,MAChD,EASMC,IAA4B,SAAmCC,EAAcC,EAAmB,CACpG,GAAI,OAAOD,GAAiB,UAAY,OAAOA,EAAa,cAAiB,WAC3E,OAAO,KAKT,IAAIE,EAAS,KACb,MAAMC,EAAY,wBACdF,GAAqBA,EAAkB,aAAaE,CAAS,IAC/DD,EAASD,EAAkB,aAAaE,CAAS,GAEnD,MAAMC,EAAa,aAAeF,EAAS,IAAMA,EAAS,IAC1D,GAAI,CACF,OAAOF,EAAa,aAAaI,EAAY,CAC3C,WAAWtB,EAAM,CACf,OAAOA,CACR,EACD,gBAAgBuB,EAAW,CACzB,OAAOA,CACf,CACA,CAAK,CACF,MAAW,CAIV,eAAQ,KAAK,uBAAyBD,EAAa,wBAAwB,EACpE,IACX,CACA,EACME,GAAkB,UAA2B,CACjD,MAAO,CACL,wBAAyB,CAAE,EAC3B,sBAAuB,CAAE,EACzB,uBAAwB,CAAE,EAC1B,yBAA0B,CAAE,EAC5B,uBAAwB,CAAE,EAC1B,wBAAyB,CAAE,EAC3B,sBAAuB,CAAE,EACzB,oBAAqB,CAAE,EACvB,uBAAwB,EACzB,CACH,EACA,SAASC,IAAkB,CACzB,IAAIC,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIV,IAAW,EAC5F,MAAMW,EAAYt2D,IAAQo2D,GAAgBp2D,EAAI,EAG9C,GAFAs2D,EAAU,QAAU,QACpBA,EAAU,QAAU,CAAE,EAClB,CAACD,GAAU,CAACA,EAAO,UAAYA,EAAO,SAAS,WAAaX,GAAU,UAAY,CAACW,EAAO,QAG5F,OAAAC,EAAU,YAAc,GACjBA,EAET,GAAI,CACF,SAAAC,CACJ,EAAMF,EACJ,MAAMG,EAAmBD,EACnBE,EAAgBD,EAAiB,cACjC,CACJ,iBAAAE,EACA,oBAAAC,EACA,KAAAC,EACA,QAAAC,EACA,WAAAC,EACA,aAAAC,EAAeV,EAAO,cAAgBA,EAAO,gBAC7C,gBAAAW,EACA,UAAAC,EACA,aAAApB,CACJ,EAAMQ,EACEa,EAAmBL,EAAQ,UAC3BM,EAAYhD,GAAa+C,EAAkB,WAAW,EACtDhqF,EAASinF,GAAa+C,EAAkB,QAAQ,EAChDE,EAAiBjD,GAAa+C,EAAkB,aAAa,EAC7DG,EAAgBlD,GAAa+C,EAAkB,YAAY,EAC3DI,EAAgBnD,GAAa+C,EAAkB,YAAY,EAOjE,GAAI,OAAOP,GAAwB,WAAY,CAC7C,MAAM3sD,GAAWusD,EAAS,cAAc,UAAU,EAC9CvsD,GAAS,SAAWA,GAAS,QAAQ,gBACvCusD,EAAWvsD,GAAS,QAAQ,cAElC,CACE,IAAIutD,EACAC,EAAY,GAChB,KAAM,CACJ,eAAAC,EACA,mBAAAC,EACA,uBAAAC,EACA,qBAAAC,CACJ,EAAMrB,EACE,CACJ,WAAAsB,CACJ,EAAMrB,EACJ,IAAIzsE,EAAQosE,GAAiB,EAI7BG,EAAU,YAAc,OAAO/kF,IAAY,YAAc,OAAO+lF,GAAkB,YAAcG,GAAkBA,EAAe,qBAAuB,OACxJ,KAAM,CACJ,cAAA1C,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,EACA,UAAAC,EACA,kBAAAE,EACA,gBAAAC,GACA,eAAAE,EACJ,EAAMC,GACJ,GAAI,CACF,eAAgBqC,CACpB,EAAMrC,GAMAsC,EAAe,KACnB,MAAMC,EAAuBpE,GAAS,CAAE,EAAE,CAAC,GAAGS,GAAQ,GAAGC,GAAO,GAAGC,GAAY,GAAGE,GAAU,GAAGlsD,EAAI,CAAC,EAEpG,IAAI0vD,EAAe,KACnB,MAAMC,EAAuBtE,GAAS,CAAE,EAAE,CAAC,GAAGe,GAAM,GAAGC,GAAK,GAAGC,GAAQ,GAAGC,EAAG,CAAC,EAO9E,IAAIqD,EAA0B,OAAO,KAAK/F,GAAO,KAAM,CACrD,aAAc,CACZ,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACR,EACD,mBAAoB,CAClB,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,IACR,EACD,+BAAgC,CAC9B,SAAU,GACV,aAAc,GACd,WAAY,GACZ,MAAO,EACb,CACA,CAAG,CAAC,EAEEgG,EAAc,KAEdC,EAAc,KAEdC,GAAkB,GAElBC,GAAkB,GAElBC,GAA0B,GAG1BC,GAA2B,GAI3BC,GAAqB,GAIrBC,GAAe,GAEfC,GAAiB,GAEjBC,GAAa,GAGbC,GAAa,GAKbC,GAAa,GAGbC,GAAsB,GAGtBC,GAAsB,GAItBC,GAAe,GAcfC,GAAuB,GAC3B,MAAMC,GAA8B,gBAEpC,IAAIC,GAAe,GAGfC,GAAW,GAEXC,GAAe,CAAE,EAEjBC,GAAkB,KACtB,MAAMC,GAA0B7F,GAAS,CAAE,EAAE,CAAC,iBAAkB,QAAS,WAAY,OAAQ,gBAAiB,OAAQ,SAAU,OAAQ,KAAM,KAAM,KAAM,KAAM,QAAS,UAAW,WAAY,WAAY,YAAa,SAAU,QAAS,MAAO,WAAY,QAAS,QAAS,QAAS,KAAK,CAAC,EAEhS,IAAI8F,GAAgB,KACpB,MAAMC,GAAwB/F,GAAS,CAAE,EAAE,CAAC,QAAS,QAAS,MAAO,SAAU,QAAS,OAAO,CAAC,EAEhG,IAAIgG,GAAsB,KAC1B,MAAMC,GAA8BjG,GAAS,GAAI,CAAC,MAAO,QAAS,MAAO,KAAM,QAAS,OAAQ,UAAW,cAAe,OAAQ,UAAW,QAAS,QAAS,QAAS,OAAO,CAAC,EAC1KkG,GAAmB,qCACnBC,GAAgB,6BAChBC,GAAiB,+BAEvB,IAAIC,GAAYD,GACZE,GAAiB,GAEjBC,GAAqB,KACzB,MAAMC,GAA6BxG,GAAS,GAAI,CAACkG,GAAkBC,GAAeC,EAAc,EAAGhH,EAAc,EACjH,IAAIqH,GAAiCzG,GAAS,GAAI,CAAC,KAAM,KAAM,KAAM,KAAM,OAAO,CAAC,EAC/E0G,GAA0B1G,GAAS,GAAI,CAAC,gBAAgB,CAAC,EAK7D,MAAM2G,GAA+B3G,GAAS,GAAI,CAAC,QAAS,QAAS,OAAQ,IAAK,QAAQ,CAAC,EAE3F,IAAI4G,GAAoB,KACxB,MAAMC,GAA+B,CAAC,wBAAyB,WAAW,EACpEC,GAA4B,YAClC,IAAI7G,GAAoB,KAEpB8G,GAAS,KAGb,MAAMC,GAAcrE,EAAS,cAAc,MAAM,EAC3CsE,GAAoB,SAA2BC,GAAW,CAC9D,OAAOA,cAAqB,QAAUA,cAAqB,QAC5D,EAOKC,GAAe,UAAwB,CAC3C,IAAIC,GAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChF,GAAI,EAAAL,IAAUA,KAAWK,IAsHzB,KAlHI,CAACA,IAAO,OAAOA,IAAQ,YACzBA,GAAM,CAAE,GAGVA,GAAM1nD,GAAM0nD,EAAG,EACfR,GAEAC,GAA6B,QAAQO,GAAI,iBAAiB,IAAM,GAAKN,GAA4BM,GAAI,kBAErGnH,GAAoB2G,KAAsB,wBAA0BxH,GAAiBD,GAErFgF,EAAe1E,GAAqB2H,GAAK,cAAc,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,aAAcnH,EAAiB,EAAImE,EAC/GC,EAAe5E,GAAqB2H,GAAK,cAAc,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,aAAcnH,EAAiB,EAAIqE,EAC/GiC,GAAqB9G,GAAqB2H,GAAK,oBAAoB,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,mBAAoBhI,EAAc,EAAIoH,GAC9HR,GAAsBvG,GAAqB2H,GAAK,mBAAmB,EAAIpH,GAAStgD,GAAMumD,EAA2B,EAAGmB,GAAI,kBAAmBnH,EAAiB,EAAIgG,GAChKH,GAAgBrG,GAAqB2H,GAAK,mBAAmB,EAAIpH,GAAStgD,GAAMqmD,EAAqB,EAAGqB,GAAI,kBAAmBnH,EAAiB,EAAI8F,GACpJH,GAAkBnG,GAAqB2H,GAAK,iBAAiB,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,gBAAiBnH,EAAiB,EAAI4F,GACxHrB,EAAc/E,GAAqB2H,GAAK,aAAa,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,YAAanH,EAAiB,EAAI,CAAE,EAC9GwE,EAAchF,GAAqB2H,GAAK,aAAa,EAAIpH,GAAS,CAAE,EAAEoH,GAAI,YAAanH,EAAiB,EAAI,CAAE,EAC9G0F,GAAelG,GAAqB2H,GAAK,cAAc,EAAIA,GAAI,aAAe,GAC9E1C,GAAkB0C,GAAI,kBAAoB,GAC1CzC,GAAkByC,GAAI,kBAAoB,GAC1CxC,GAA0BwC,GAAI,yBAA2B,GACzDvC,GAA2BuC,GAAI,2BAA6B,GAC5DtC,GAAqBsC,GAAI,oBAAsB,GAC/CrC,GAAeqC,GAAI,eAAiB,GACpCpC,GAAiBoC,GAAI,gBAAkB,GACvCjC,GAAaiC,GAAI,YAAc,GAC/BhC,GAAsBgC,GAAI,qBAAuB,GACjD/B,GAAsB+B,GAAI,qBAAuB,GACjDlC,GAAakC,GAAI,YAAc,GAC/B9B,GAAe8B,GAAI,eAAiB,GACpC7B,GAAuB6B,GAAI,sBAAwB,GACnD3B,GAAe2B,GAAI,eAAiB,GACpC1B,GAAW0B,GAAI,UAAY,GAC3BlD,EAAmBkD,GAAI,oBAAsB5F,GAC7C6E,GAAYe,GAAI,WAAahB,GAC7BK,GAAiCW,GAAI,gCAAkCX,GACvEC,GAA0BU,GAAI,yBAA2BV,GACzDnC,EAA0B6C,GAAI,yBAA2B,CAAE,EACvDA,GAAI,yBAA2BH,GAAkBG,GAAI,wBAAwB,YAAY,IAC3F7C,EAAwB,aAAe6C,GAAI,wBAAwB,cAEjEA,GAAI,yBAA2BH,GAAkBG,GAAI,wBAAwB,kBAAkB,IACjG7C,EAAwB,mBAAqB6C,GAAI,wBAAwB,oBAEvEA,GAAI,yBAA2B,OAAOA,GAAI,wBAAwB,gCAAmC,YACvG7C,EAAwB,+BAAiC6C,GAAI,wBAAwB,gCAEnFtC,KACFH,GAAkB,IAEhBS,KACFD,GAAa,IAGXQ,KACFxB,EAAenE,GAAS,CAAE,EAAErrD,EAAI,EAChC0vD,EAAe,CAAE,EACbsB,GAAa,OAAS,KACxB3F,GAASmE,EAAc1D,EAAM,EAC7BT,GAASqE,EAActD,EAAI,GAEzB4E,GAAa,MAAQ,KACvB3F,GAASmE,EAAczD,EAAK,EAC5BV,GAASqE,EAAcrD,EAAG,EAC1BhB,GAASqE,EAAcnD,EAAG,GAExByE,GAAa,aAAe,KAC9B3F,GAASmE,EAAcxD,EAAU,EACjCX,GAASqE,EAAcrD,EAAG,EAC1BhB,GAASqE,EAAcnD,EAAG,GAExByE,GAAa,SAAW,KAC1B3F,GAASmE,EAActD,EAAQ,EAC/Bb,GAASqE,EAAcpD,EAAM,EAC7BjB,GAASqE,EAAcnD,EAAG,IAI1BkG,GAAI,WACFjD,IAAiBC,IACnBD,EAAezkD,GAAMykD,CAAY,GAEnCnE,GAASmE,EAAciD,GAAI,SAAUnH,EAAiB,GAEpDmH,GAAI,WACF/C,IAAiBC,IACnBD,EAAe3kD,GAAM2kD,CAAY,GAEnCrE,GAASqE,EAAc+C,GAAI,SAAUnH,EAAiB,GAEpDmH,GAAI,mBACNpH,GAASgG,GAAqBoB,GAAI,kBAAmBnH,EAAiB,EAEpEmH,GAAI,kBACFxB,KAAoBC,KACtBD,GAAkBlmD,GAAMkmD,EAAe,GAEzC5F,GAAS4F,GAAiBwB,GAAI,gBAAiBnH,EAAiB,GAG9DwF,KACFtB,EAAa,OAAO,EAAI,IAGtBa,IACFhF,GAASmE,EAAc,CAAC,OAAQ,OAAQ,MAAM,CAAC,EAG7CA,EAAa,QACfnE,GAASmE,EAAc,CAAC,OAAO,CAAC,EAChC,OAAOK,EAAY,OAEjB4C,GAAI,qBAAsB,CAC5B,GAAI,OAAOA,GAAI,qBAAqB,YAAe,WACjD,MAAMzH,GAAgB,6EAA6E,EAErG,GAAI,OAAOyH,GAAI,qBAAqB,iBAAoB,WACtD,MAAMzH,GAAgB,kFAAkF,EAG1GgE,EAAqByD,GAAI,qBAEzBxD,EAAYD,EAAmB,WAAW,EAAE,CAClD,MAEUA,IAAuB,SACzBA,EAAqB3B,IAA0BC,EAAcY,CAAa,GAGxEc,IAAuB,MAAQ,OAAOC,GAAc,WACtDA,EAAYD,EAAmB,WAAW,EAAE,GAK5CrF,IACFA,GAAO8I,EAAG,EAEZL,GAASK,GACV,EAIKC,GAAerH,GAAS,GAAI,CAAC,GAAGU,GAAO,GAAGC,GAAY,GAAGC,GAAa,CAAC,EACvE0G,GAAkBtH,GAAS,CAAE,EAAE,CAAC,GAAGa,GAAU,GAAGC,GAAgB,CAAC,EAOjEyG,GAAuB,SAA8BrH,GAAS,CAClE,IAAIv0D,GAAS+3D,EAAcxD,EAAO,GAG9B,CAACv0D,IAAU,CAACA,GAAO,WACrBA,GAAS,CACP,aAAc06D,GACd,QAAS,UACV,GAEH,MAAMmB,GAAUrI,GAAkBe,GAAQ,OAAO,EAC3CuH,GAAgBtI,GAAkBxzD,GAAO,OAAO,EACtD,OAAK46D,GAAmBrG,GAAQ,YAAY,EAGxCA,GAAQ,eAAiBiG,GAIvBx6D,GAAO,eAAiBy6D,GACnBoB,KAAY,MAKjB77D,GAAO,eAAiBu6D,GACnBsB,KAAY,QAAUC,KAAkB,kBAAoBhB,GAA+BgB,EAAa,GAI1G,EAAQJ,GAAaG,EAAO,EAEjCtH,GAAQ,eAAiBgG,GAIvBv6D,GAAO,eAAiBy6D,GACnBoB,KAAY,OAIjB77D,GAAO,eAAiBw6D,GACnBqB,KAAY,QAAUd,GAAwBe,EAAa,EAI7D,EAAQH,GAAgBE,EAAO,EAEpCtH,GAAQ,eAAiBkG,GAIvBz6D,GAAO,eAAiBw6D,IAAiB,CAACO,GAAwBe,EAAa,GAG/E97D,GAAO,eAAiBu6D,IAAoB,CAACO,GAA+BgB,EAAa,EACpF,GAIF,CAACH,GAAgBE,EAAO,IAAMb,GAA6Ba,EAAO,GAAK,CAACH,GAAaG,EAAO,GAGjG,GAAAZ,KAAsB,yBAA2BL,GAAmBrG,GAAQ,YAAY,GAlDnF,EA0DV,EAMKwH,GAAe,SAAsBpzE,GAAM,CAC/C2qE,GAAUyD,EAAU,QAAS,CAC3B,QAASpuE,EACf,CAAK,EACD,GAAI,CAEFovE,EAAcpvE,EAAI,EAAE,YAAYA,EAAI,CACrC,MAAW,CACVhb,EAAOgb,EAAI,CACjB,CACG,EAOKqzE,GAAmB,SAA0B5qF,GAAMmjF,GAAS,CAChE,GAAI,CACFjB,GAAUyD,EAAU,QAAS,CAC3B,UAAWxC,GAAQ,iBAAiBnjF,EAAI,EACxC,KAAMmjF,EACd,CAAO,CACF,MAAW,CACVjB,GAAUyD,EAAU,QAAS,CAC3B,UAAW,KACX,KAAMxC,EACd,CAAO,CACP,CAGI,GAFAA,GAAQ,gBAAgBnjF,EAAI,EAExBA,KAAS,KACX,GAAIooF,IAAcC,GAChB,GAAI,CACFsC,GAAaxH,EAAO,CACrB,MAAW,MAEZ,IAAI,CACFA,GAAQ,aAAanjF,GAAM,EAAE,CAC9B,MAAW,EAGjB,EAOK6qF,GAAgB,SAAuB9P,GAAO,CAElD,IAAI3gD,GAAM,KACN0wD,GAAoB,KACxB,GAAI3C,GACFpN,GAAQ,oBAAsBA,OACzB,CAEL,MAAMxsB,GAAU+zB,GAAYvH,GAAO,aAAa,EAChD+P,GAAoBv8B,IAAWA,GAAQ,CAAC,CAC9C,CACQs7B,KAAsB,yBAA2BP,KAAcD,KAEjEtO,GAAQ,iEAAmEA,GAAQ,kBAErF,MAAMgQ,GAAenE,EAAqBA,EAAmB,WAAW7L,EAAK,EAAIA,GAKjF,GAAIuO,KAAcD,GAChB,GAAI,CACFjvD,GAAM,IAAIksD,EAAS,EAAG,gBAAgByE,GAAclB,EAAiB,CACtE,MAAW,EAGd,GAAI,CAACzvD,IAAO,CAACA,GAAI,gBAAiB,CAChCA,GAAM0sD,EAAe,eAAewC,GAAW,WAAY,IAAI,EAC/D,GAAI,CACFlvD,GAAI,gBAAgB,UAAYmvD,GAAiB1C,EAAYkE,EAC9D,MAAW,CAElB,CACA,CACI,MAAM1f,GAAOjxC,GAAI,MAAQA,GAAI,gBAK7B,OAJI2gD,IAAS+P,IACXzf,GAAK,aAAaua,EAAS,eAAekF,EAAiB,EAAGzf,GAAK,WAAW,CAAC,GAAK,IAAI,EAGtFie,KAAcD,GACTpC,EAAqB,KAAK7sD,GAAK6tD,GAAiB,OAAS,MAAM,EAAE,CAAC,EAEpEA,GAAiB7tD,GAAI,gBAAkBixC,EAC/C,EAOK2f,GAAsB,SAA6B37D,GAAM,CAC7D,OAAO03D,EAAmB,KAAK13D,GAAK,eAAiBA,GAAMA,GAE3D82D,EAAW,aAAeA,EAAW,aAAeA,EAAW,UAAYA,EAAW,4BAA8BA,EAAW,mBAAoB,IAAI,CACxJ,EAOK8E,GAAe,SAAsB9H,GAAS,CAClD,OAAOA,cAAmBkD,IAAoB,OAAOlD,GAAQ,UAAa,UAAY,OAAOA,GAAQ,aAAgB,UAAY,OAAOA,GAAQ,aAAgB,YAAc,EAAEA,GAAQ,sBAAsBiD,IAAiB,OAAOjD,GAAQ,iBAAoB,YAAc,OAAOA,GAAQ,cAAiB,YAAc,OAAOA,GAAQ,cAAiB,UAAY,OAAOA,GAAQ,cAAiB,YAAc,OAAOA,GAAQ,eAAkB,WAC1b,EAOK+H,GAAU,SAAiB3tF,GAAO,CACtC,OAAO,OAAO0oF,GAAS,YAAc1oF,cAAiB0oF,CACvD,EACD,SAASkF,GAAc/xE,GAAOgyE,GAAalqE,GAAM,CAC/C4gE,GAAa1oE,GAAOxF,IAAQ,CAC1BA,GAAK,KAAK+xE,EAAWyF,GAAalqE,GAAM8oE,EAAM,CACpD,CAAK,CACL,CAUE,MAAMqB,GAAoB,SAA2BD,GAAa,CAChE,IAAI1wD,GAAU,KAId,GAFAywD,GAAc/xE,EAAM,uBAAwBgyE,GAAa,IAAI,EAEzDH,GAAaG,EAAW,EAC1B,OAAAT,GAAaS,EAAW,EACjB,GAGT,MAAMX,GAAUvH,GAAkBkI,GAAY,QAAQ,EAiBtD,GAfAD,GAAc/xE,EAAM,oBAAqBgyE,GAAa,CACpD,QAAAX,GACA,YAAarD,CACnB,CAAK,EAEGgE,GAAY,cAAe,GAAI,CAACF,GAAQE,GAAY,iBAAiB,GAAKzI,GAAW,UAAWyI,GAAY,SAAS,GAAKzI,GAAW,UAAWyI,GAAY,WAAW,GAKvKA,GAAY,WAAarG,GAAU,wBAKnCiD,IAAgBoD,GAAY,WAAarG,GAAU,SAAWpC,GAAW,UAAWyI,GAAY,IAAI,EACtG,OAAAT,GAAaS,EAAW,EACjB,GAGT,GAAI,CAAChE,EAAaqD,EAAO,GAAKhD,EAAYgD,EAAO,EAAG,CAElD,GAAI,CAAChD,EAAYgD,EAAO,GAAKa,GAAsBb,EAAO,IACpDjD,EAAwB,wBAAwB,QAAU7E,GAAW6E,EAAwB,aAAciD,EAAO,GAGlHjD,EAAwB,wBAAwB,UAAYA,EAAwB,aAAaiD,EAAO,GAC1G,MAAO,GAIX,GAAI/B,IAAgB,CAACG,GAAgB4B,EAAO,EAAG,CAC7C,MAAMhzE,GAAakvE,EAAcyE,EAAW,GAAKA,GAAY,WACvDG,GAAa7E,EAAc0E,EAAW,GAAKA,GAAY,WAC7D,GAAIG,IAAc9zE,GAAY,CAC5B,MAAM+zE,GAAaD,GAAW,OAC9B,QAAS7uF,GAAI8uF,GAAa,EAAG9uF,IAAK,EAAG,EAAEA,GAAG,CACxC,MAAM+uF,GAAajF,EAAU+E,GAAW7uF,EAAC,EAAG,EAAI,EAChD+uF,GAAW,gBAAkBL,GAAY,gBAAkB,GAAK,EAChE3zE,GAAW,aAAag0E,GAAYhF,EAAe2E,EAAW,CAAC,CAC3E,CACA,CACA,CACM,OAAAT,GAAaS,EAAW,EACjB,EACb,CAOI,OALIA,cAAuBlF,GAAW,CAACsE,GAAqBY,EAAW,IAKlEX,KAAY,YAAcA,KAAY,WAAaA,KAAY,aAAe9H,GAAW,8BAA+ByI,GAAY,SAAS,GAChJT,GAAaS,EAAW,EACjB,KAGLrD,IAAsBqD,GAAY,WAAarG,GAAU,OAE3DrqD,GAAU0wD,GAAY,YACtBtJ,GAAa,CAACsC,EAAeC,EAAUC,CAAW,EAAGoH,IAAQ,CAC3DhxD,GAAU6nD,GAAc7nD,GAASgxD,GAAM,GAAG,CAClD,CAAO,EACGN,GAAY,cAAgB1wD,KAC9BwnD,GAAUyD,EAAU,QAAS,CAC3B,QAASyF,GAAY,UAAS,CACxC,CAAS,EACDA,GAAY,YAAc1wD,KAI9BywD,GAAc/xE,EAAM,sBAAuBgyE,GAAa,IAAI,EACrD,GACR,EAUKO,GAAoB,SAA2BC,GAAOC,GAAQtuF,GAAO,CAEzE,GAAIgrF,KAAiBsD,KAAW,MAAQA,KAAW,UAAYtuF,MAASqoF,GAAYroF,MAAS0sF,IAC3F,MAAO,GAMT,GAAI,EAAArC,IAAmB,CAACF,EAAYmE,EAAM,GAAKlJ,GAAW4B,EAAWsH,EAAM,IAAU,GAAI,EAAAlE,IAAmBhF,GAAW6B,EAAWqH,EAAM,IAAU,GAAI,CAACvE,EAAauE,EAAM,GAAKnE,EAAYmE,EAAM,GAC/L,GAIA,EAAAP,GAAsBM,EAAK,IAAMpE,EAAwB,wBAAwB,QAAU7E,GAAW6E,EAAwB,aAAcoE,EAAK,GAAKpE,EAAwB,wBAAwB,UAAYA,EAAwB,aAAaoE,EAAK,KAAOpE,EAAwB,8BAA8B,QAAU7E,GAAW6E,EAAwB,mBAAoBqE,EAAM,GAAKrE,EAAwB,8BAA8B,UAAYA,EAAwB,mBAAmBqE,EAAM,IAGxfA,KAAW,MAAQrE,EAAwB,iCAAmCA,EAAwB,wBAAwB,QAAU7E,GAAW6E,EAAwB,aAAcjqF,EAAK,GAAKiqF,EAAwB,wBAAwB,UAAYA,EAAwB,aAAajqF,EAAK,IACvS,MAAO,WAGA,CAAA0rF,GAAoB4C,EAAM,GAAU,GAAIlJ,IAAWwE,EAAkB5E,GAAchlF,GAAOonF,GAAiB,EAAE,CAAC,GAAU,GAAK,GAAAkH,KAAW,OAASA,KAAW,cAAgBA,KAAW,SAAWD,KAAU,UAAYpJ,IAAcjlF,GAAO,OAAO,IAAM,GAAKwrF,GAAc6C,EAAK,IAAU,GAAI,EAAA/D,IAA2B,CAAClF,GAAW+B,EAAmBnC,GAAchlF,GAAOonF,GAAiB,EAAE,CAAC,IAAU,GAAIpnF,GAC1Z,MAAO,QAET,MAAO,EACR,EASK+tF,GAAwB,SAA+Bb,GAAS,CACpE,OAAOA,KAAY,kBAAoBnI,GAAYmI,GAAS5F,EAAc,CAC3E,EAWKiH,GAAsB,SAA6BV,GAAa,CAEpED,GAAc/xE,EAAM,yBAA0BgyE,GAAa,IAAI,EAC/D,KAAM,CACJ,WAAAW,EACN,EAAQX,GAEJ,GAAI,CAACW,IAAcd,GAAaG,EAAW,EACzC,OAEF,MAAMY,GAAY,CAChB,SAAU,GACV,UAAW,GACX,SAAU,GACV,kBAAmB1E,EACnB,cAAe,MAChB,EACD,IAAIlmF,GAAI2qF,GAAW,OAEnB,KAAO3qF,MAAK,CACV,MAAM6qF,GAAOF,GAAW3qF,EAAC,EACnB,CACJ,KAAApB,GACA,aAAAksF,GACA,MAAOC,EACf,EAAUF,GACEJ,GAAS3I,GAAkBljF,EAAI,EACrC,IAAIzC,GAAQyC,KAAS,QAAUmsF,GAAY1J,IAAW0J,EAAS,EAkB/D,GAhBAH,GAAU,SAAWH,GACrBG,GAAU,UAAYzuF,GACtByuF,GAAU,SAAW,GACrBA,GAAU,cAAgB,OAC1Bb,GAAc/xE,EAAM,sBAAuBgyE,GAAaY,EAAS,EACjEzuF,GAAQyuF,GAAU,UAIdxD,KAAyBqD,KAAW,MAAQA,KAAW,UAEzDjB,GAAiB5qF,GAAMorF,EAAW,EAElC7tF,GAAQkrF,GAA8BlrF,IAGpCyqF,IAAgBrF,GAAW,gCAAiCplF,EAAK,EAAG,CACtEqtF,GAAiB5qF,GAAMorF,EAAW,EAClC,QACR,CAQM,GANIY,GAAU,gBAIdpB,GAAiB5qF,GAAMorF,EAAW,EAE9B,CAACY,GAAU,UACb,SAGF,GAAI,CAAClE,IAA4BnF,GAAW,OAAQplF,EAAK,EAAG,CAC1DqtF,GAAiB5qF,GAAMorF,EAAW,EAClC,QACR,CAEUrD,IACFjG,GAAa,CAACsC,EAAeC,EAAUC,CAAW,EAAGoH,IAAQ,CAC3DnuF,GAAQglF,GAAchlF,GAAOmuF,GAAM,GAAG,CAChD,CAAS,EAGH,MAAME,GAAQ1I,GAAkBkI,GAAY,QAAQ,EACpD,GAAKO,GAAkBC,GAAOC,GAAQtuF,EAAK,EAI3C,IAAIqpF,GAAsB,OAAO1B,GAAiB,UAAY,OAAOA,EAAa,kBAAqB,YACjG,CAAAgH,GACF,OAAQhH,EAAa,iBAAiB0G,GAAOC,EAAM,EAAC,CAClD,IAAK,cACH,CACEtuF,GAAQqpF,EAAmB,WAAWrpF,EAAK,EAC3C,KAChB,CACY,IAAK,mBACH,CACEA,GAAQqpF,EAAmB,gBAAgBrpF,EAAK,EAChD,KAChB,CACA,CAIM,GAAI,CACE2uF,GACFd,GAAY,eAAec,GAAclsF,GAAMzC,EAAK,EAGpD6tF,GAAY,aAAaprF,GAAMzC,EAAK,EAElC0tF,GAAaG,EAAW,EAC1BT,GAAaS,EAAW,EAExBnJ,GAAS0D,EAAU,OAAO,CAE7B,MAAW,GAClB,CAEIwF,GAAc/xE,EAAM,wBAAyBgyE,GAAa,IAAI,CAC/D,EAMKgB,GAAqB,SAASA,GAAmBC,GAAU,CAC/D,IAAIC,GAAa,KACjB,MAAMC,GAAiBvB,GAAoBqB,EAAQ,EAGnD,IADAlB,GAAc/xE,EAAM,wBAAyBizE,GAAU,IAAI,EACpDC,GAAaC,GAAe,YAEjCpB,GAAc/xE,EAAM,uBAAwBkzE,GAAY,IAAI,EAE5DjB,GAAkBiB,EAAU,EAE5BR,GAAoBQ,EAAU,EAE1BA,GAAW,mBAAmBvG,GAChCqG,GAAmBE,GAAW,OAAO,EAIzCnB,GAAc/xE,EAAM,uBAAwBizE,GAAU,IAAI,CAC3D,EAED,OAAA1G,EAAU,SAAW,SAAU5K,GAAO,CACpC,IAAIsP,GAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAC5Ehf,GAAO,KACPmhB,GAAe,KACfpB,GAAc,KACdqB,GAAa,KASjB,GALAlD,GAAiB,CAACxO,GACdwO,KACFxO,GAAQ,SAGN,OAAOA,IAAU,UAAY,CAACmQ,GAAQnQ,EAAK,EAC7C,GAAI,OAAOA,GAAM,UAAa,YAE5B,GADAA,GAAQA,GAAM,SAAU,EACpB,OAAOA,IAAU,SACnB,MAAM6H,GAAgB,iCAAiC,MAGzD,OAAMA,GAAgB,4BAA4B,EAItD,GAAI,CAAC+C,EAAU,YACb,OAAO5K,GAYT,GATKmN,IACHkC,GAAaC,EAAG,EAGlB1E,EAAU,QAAU,CAAE,EAElB,OAAO5K,IAAU,WACnB4N,GAAW,IAETA,IAEF,GAAI5N,GAAM,SAAU,CAClB,MAAM0P,GAAUvH,GAAkBnI,GAAM,QAAQ,EAChD,GAAI,CAACqM,EAAaqD,EAAO,GAAKhD,EAAYgD,EAAO,EAC/C,MAAM7H,GAAgB,yDAAyD,CAEzF,UACe7H,cAAiBkL,EAG1B5a,GAAOwf,GAAc,SAAS,EAC9B2B,GAAenhB,GAAK,cAAc,WAAW0P,GAAO,EAAI,EACpDyR,GAAa,WAAazH,GAAU,SAAWyH,GAAa,WAAa,QAGlEA,GAAa,WAAa,OADnCnhB,GAAOmhB,GAKPnhB,GAAK,YAAYmhB,EAAY,MAE1B,CAEL,GAAI,CAACpE,IAAc,CAACL,IAAsB,CAACE,IAE3ClN,GAAM,QAAQ,GAAG,IAAM,GACrB,OAAO6L,GAAsB0B,GAAsB1B,EAAmB,WAAW7L,EAAK,EAAIA,GAK5F,GAFA1P,GAAOwf,GAAc9P,EAAK,EAEtB,CAAC1P,GACH,OAAO+c,GAAa,KAAOE,GAAsBzB,EAAY,EAErE,CAEQxb,IAAQ8c,IACVwC,GAAatf,GAAK,UAAU,EAG9B,MAAMqhB,GAAe1B,GAAoBrC,GAAW5N,GAAQ1P,EAAI,EAEhE,KAAO+f,GAAcsB,GAAa,YAEhCrB,GAAkBD,EAAW,EAE7BU,GAAoBV,EAAW,EAE3BA,GAAY,mBAAmBrF,GACjCqG,GAAmBhB,GAAY,OAAO,EAI1C,GAAIzC,GACF,OAAO5N,GAGT,GAAIqN,GAAY,CACd,GAAIC,GAEF,IADAoE,GAAazF,EAAuB,KAAK3b,GAAK,aAAa,EACpDA,GAAK,YAEVohB,GAAW,YAAYphB,GAAK,UAAU,OAGxCohB,GAAaphB,GAEf,OAAIic,EAAa,YAAcA,EAAa,kBAQ1CmF,GAAavF,EAAW,KAAKrB,EAAkB4G,GAAY,EAAI,GAE1DA,EACb,CACI,IAAIE,GAAiB1E,GAAiB5c,GAAK,UAAYA,GAAK,UAE5D,OAAI4c,IAAkBb,EAAa,UAAU,GAAK/b,GAAK,eAAiBA,GAAK,cAAc,SAAWA,GAAK,cAAc,QAAQ,MAAQsX,GAAWiC,GAAcvZ,GAAK,cAAc,QAAQ,IAAI,IAC/LshB,GAAiB,aAAethB,GAAK,cAAc,QAAQ,KAAO;AAAA,EAAQshB,IAGxE5E,IACFjG,GAAa,CAACsC,EAAeC,EAAUC,CAAW,EAAGoH,IAAQ,CAC3DiB,GAAiBpK,GAAcoK,GAAgBjB,GAAM,GAAG,CAChE,CAAO,EAEI9E,GAAsB0B,GAAsB1B,EAAmB,WAAW+F,EAAc,EAAIA,EACpG,EACDhH,EAAU,UAAY,UAAY,CAChC,IAAI0E,GAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFD,GAAaC,EAAG,EAChBnC,GAAa,EACd,EACDvC,EAAU,YAAc,UAAY,CAClCqE,GAAS,KACT9B,GAAa,EACd,EACDvC,EAAU,iBAAmB,SAAUprD,GAAK0xD,GAAM1uF,GAAO,CAElDysF,IACHI,GAAa,EAAE,EAEjB,MAAMwB,GAAQ1I,GAAkB3oD,EAAG,EAC7BsxD,GAAS3I,GAAkB+I,EAAI,EACrC,OAAON,GAAkBC,GAAOC,GAAQtuF,EAAK,CAC9C,EACDooF,EAAU,QAAU,SAAUiH,GAAYC,GAAc,CAClD,OAAOA,IAAiB,YAG5B3K,GAAU9oE,EAAMwzE,EAAU,EAAGC,EAAY,CAC1C,EACDlH,EAAU,WAAa,SAAUiH,GAAYC,GAAc,CACzD,GAAIA,KAAiB,OAAW,CAC9B,MAAMnlF,GAAQs6E,IAAiB5oE,EAAMwzE,EAAU,EAAGC,EAAY,EAC9D,OAAOnlF,KAAU,GAAK,OAAYy6E,IAAY/oE,EAAMwzE,EAAU,EAAGllF,GAAO,CAAC,EAAE,CAAC,CAClF,CACI,OAAOu6E,GAAS7oE,EAAMwzE,EAAU,CAAC,CAClC,EACDjH,EAAU,YAAc,SAAUiH,GAAY,CAC5CxzE,EAAMwzE,EAAU,EAAI,CAAE,CACvB,EACDjH,EAAU,eAAiB,UAAY,CACrCvsE,EAAQosE,GAAiB,CAC1B,EACMG,CACT,CACG,IAACmH,IAASrH,GAAe,ECtzC5B,SAASsH,GAAQjyC,EAAG,CAClB,0BAEA,OAAOiyC,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAUjyC,EAAG,CAChG,OAAO,OAAOA,CACf,EAAG,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACtH,EAAKiyC,GAAQjyC,CAAC,CACd,CCRe,SAAS+6B,GAAUj1B,EAAa,CAC7C,GAAIA,IAAgB,MAAQA,IAAgB,IAAQA,IAAgB,GAClE,MAAO,KAET,IAAIzd,EAAS,OAAOyd,CAAW,EAC/B,OAAI,MAAMzd,CAAM,EACPA,EAEFA,EAAS,EAAI,KAAK,KAAKA,CAAM,EAAI,KAAK,MAAMA,CAAM,CAC3D,CCTe,SAAS6pD,GAAaC,EAAU3mF,EAAM,CACnD,GAAIA,EAAK,OAAS2mF,EAChB,MAAM,IAAI,UAAUA,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyB3mF,EAAK,OAAS,UAAU,CAE9H,CC4Be,SAASy0C,GAAOC,EAAU,CACvCgyC,GAAa,EAAG,SAAS,EACzB,IAAI/xC,EAAS,OAAO,UAAU,SAAS,KAAKD,CAAQ,EAGpD,OAAIA,aAAoB,MAAQ+xC,GAAQ/xC,CAAQ,IAAM,UAAYC,IAAW,gBAEpE,IAAI,KAAKD,EAAS,SAAS,EACzB,OAAOA,GAAa,UAAYC,IAAW,kBAC7C,IAAI,KAAKD,CAAQ,IAEnB,OAAOA,GAAa,UAAYC,IAAW,oBAAsB,OAAO,QAAY,MAEvF,QAAQ,KAAK,oNAAoN,EAEjO,QAAQ,KAAK,IAAI,MAAK,EAAG,KAAK,GAEzB,IAAI,KAAK,GAAG,EAEvB,CC9Be,SAASiyC,GAAgBC,EAAWC,EAAa,CAC9DJ,GAAa,EAAG,SAAS,EACzB,IAAIloC,EAAY/J,GAAOoyC,CAAS,EAAE,QAAS,EACvC9xC,EAASw6B,GAAUuX,CAAW,EAClC,OAAO,IAAI,KAAKtoC,EAAYzJ,CAAM,CACpC,CC1BA,IAAIa,IAAiB,CAAE,EAChB,SAASC,IAAoB,CAClC,OAAOD,GACT,CCQe,SAASgB,GAAgC/B,EAAM,CAC5D,IAAIgC,EAAU,IAAI,KAAK,KAAK,IAAIhC,EAAK,cAAeA,EAAK,SAAQ,EAAIA,EAAK,QAAS,EAAEA,EAAK,WAAYA,EAAK,WAAU,EAAIA,EAAK,WAAY,EAAEA,EAAK,gBAAiB,EAAC,EACnK,OAAAgC,EAAQ,eAAehC,EAAK,aAAa,EAClCA,EAAK,UAAYgC,EAAQ,QAAS,CAC3C,CCKe,SAASF,IAAWkwC,EAAW,CAC5CH,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EAC3B,OAAAhyC,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CCtBA,IAAI+U,IAAyB,IAoBd,SAASm9B,IAAWF,EAAWC,EAAa,CACzDJ,GAAa,EAAG,SAAS,EACzB,IAAI3xC,EAASw6B,GAAUuX,CAAW,EAClC,OAAOF,GAAgBC,EAAW9xC,EAAS6U,GAAsB,CACnE,CCeO,IAAIrU,GAAuB,IAUvBC,IAAqB,KAUrBC,IAAuB,IC5BnB,SAASmC,IAAO3gD,EAAO,CACpC,OAAAyvF,GAAa,EAAG,SAAS,EAClBzvF,aAAiB,MAAQwvF,GAAQxvF,CAAK,IAAM,UAAY,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAC3G,CCHe,SAAS4gD,GAAQgvC,EAAW,CAEzC,GADAH,GAAa,EAAG,SAAS,EACrB,CAAC9uC,IAAOivC,CAAS,GAAK,OAAOA,GAAc,SAC7C,MAAO,GAET,IAAIhyC,EAAOJ,GAAOoyC,CAAS,EAC3B,MAAO,CAAC,MAAM,OAAOhyC,CAAI,CAAC,CAC5B,CCjBe,SAASqD,IAAyBnB,EAAUC,EAAW,CACpE,OAAA0vC,GAAa,EAAG,SAAS,EAClBjyC,GAAOsC,CAAQ,EAAE,QAAS,EAAGtC,GAAOuC,CAAS,EAAE,QAAS,CACjE,CC3BA,IAAIgwC,GAAc,CAChB,KAAM,KAAK,KACX,MAAO,KAAK,MACZ,MAAO,KAAK,MACZ,MAAO,SAAe/vF,EAAO,CAC3B,OAAOA,EAAQ,EAAI,KAAK,KAAKA,CAAK,EAAI,KAAK,MAAMA,CAAK,CACvD,CACH,EAEIgwF,IAAwB,QACrB,SAAShvC,IAAkBv3C,EAAQ,CACxC,OAAOA,EAASsmF,GAAYtmF,CAAM,EAAIsmF,GAAYC,GAAqB,CACzE,CCuBe,SAASC,IAAoBnwC,EAAUC,EAAWnvC,EAAS,CACxE6+E,GAAa,EAAG,SAAS,EACzB,IAAIv/C,EAAO+Q,IAAyBnB,EAAUC,CAAS,EAAIzB,GAC3D,OAAO0C,IAA2D,MAA+B,EAAE9Q,CAAI,CACzG,CClBe,SAASggD,GAAgBN,EAAWC,EAAa,CAC9DJ,GAAa,EAAG,SAAS,EACzB,IAAI3xC,EAASw6B,GAAUuX,CAAW,EAClC,OAAOF,GAAgBC,EAAW,CAAC9xC,CAAM,CAC3C,CCvBA,IAAIqyC,IAAsB,MACX,SAASC,IAAgBR,EAAW,CACjDH,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvBroC,EAAY3J,EAAK,QAAS,EAC9BA,EAAK,YAAY,EAAG,CAAC,EACrBA,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EAC3B,IAAIyyC,EAAuBzyC,EAAK,QAAS,EACrC4D,EAAa+F,EAAY8oC,EAC7B,OAAO,KAAK,MAAM7uC,EAAa2uC,GAAmB,EAAI,CACxD,CCVe,SAASG,GAAkBV,EAAW,CACnDH,GAAa,EAAG,SAAS,EACzB,IAAI3wC,EAAe,EACflB,EAAOJ,GAAOoyC,CAAS,EACvB1wC,EAAMtB,EAAK,UAAW,EACtB1N,GAAQgP,EAAMJ,EAAe,EAAI,GAAKI,EAAMJ,EAChD,OAAAlB,EAAK,WAAWA,EAAK,WAAU,EAAK1N,CAAI,EACxC0N,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACT,CCRe,SAAS2yC,GAAkBX,EAAW,CACnDH,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvBvwC,EAAOzB,EAAK,eAAgB,EAC5B0B,EAA4B,IAAI,KAAK,CAAC,EAC1CA,EAA0B,eAAeD,EAAO,EAAG,EAAG,CAAC,EACvDC,EAA0B,YAAY,EAAG,EAAG,EAAG,CAAC,EAChD,IAAIC,EAAkB+wC,GAAkBhxC,CAAyB,EAC7DE,EAA4B,IAAI,KAAK,CAAC,EAC1CA,EAA0B,eAAeH,EAAM,EAAG,CAAC,EACnDG,EAA0B,YAAY,EAAG,EAAG,EAAG,CAAC,EAChD,IAAIC,EAAkB6wC,GAAkB9wC,CAAyB,EACjE,OAAI5B,EAAK,QAAO,GAAM2B,EAAgB,QAAO,EACpCF,EAAO,EACLzB,EAAK,QAAS,GAAI6B,EAAgB,QAAO,EAC3CJ,EAEAA,EAAO,CAElB,CCnBe,SAASmxC,IAAsBZ,EAAW,CACvDH,GAAa,EAAG,SAAS,EACzB,IAAIpwC,EAAOkxC,GAAkBX,CAAS,EAClCvvC,EAAkB,IAAI,KAAK,CAAC,EAChCA,EAAgB,eAAehB,EAAM,EAAG,CAAC,EACzCgB,EAAgB,YAAY,EAAG,EAAG,EAAG,CAAC,EACtC,IAAIzC,EAAO0yC,GAAkBjwC,CAAe,EAC5C,OAAOzC,CACT,CCPA,IAAI6yC,IAAuB,OACZ,SAASC,GAAcd,EAAW,CAC/CH,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvB1/C,EAAOogD,GAAkB1yC,CAAI,EAAE,QAAO,EAAK4yC,IAAsB5yC,CAAI,EAAE,QAAS,EAKpF,OAAO,KAAK,MAAM1N,EAAOugD,GAAoB,EAAI,CACnD,CCVe,SAASE,GAAef,EAAWh/E,EAAS,CACzD,IAAIggF,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,EAC9G1B,GAAa,EAAG,SAAS,EACzB,IAAI9wC,EAAiBC,GAAmB,EACpCE,EAAew5B,IAAWsY,GAAQC,GAASC,GAASC,EAAwBngF,GAAY,KAA6B,OAASA,EAAQ,gBAAkB,MAAQmgF,IAA0B,OAASA,EAAwBngF,GAAY,OAAuCogF,EAAkBpgF,EAAQ,UAAY,MAAQogF,IAAoB,SAAmBC,EAAwBD,EAAgB,WAAa,MAAQC,IAA0B,OAAtL,OAAwMA,EAAsB,gBAAkB,MAAQH,IAAU,OAASA,EAAQnyC,EAAe,gBAAkB,MAAQkyC,IAAU,OAASA,GAASK,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,gBAAkB,MAAQP,IAAS,OAASA,EAAO,CAAC,EAGp4B,GAAI,EAAE9xC,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI,WAAW,kDAAkD,EAEzE,IAAIlB,EAAOJ,GAAOoyC,CAAS,EACvB1wC,EAAMtB,EAAK,UAAW,EACtB1N,GAAQgP,EAAMJ,EAAe,EAAI,GAAKI,EAAMJ,EAChD,OAAAlB,EAAK,WAAWA,EAAK,WAAU,EAAK1N,CAAI,EACxC0N,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACT,CCfe,SAASwzC,GAAexB,EAAWh/E,EAAS,CACzD,IAAIggF,EAAMC,EAAOC,EAAOO,EAAuBL,EAAiBC,EAAuBC,EAAuBC,EAC9G1B,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvBvwC,EAAOzB,EAAK,eAAgB,EAC5Be,EAAiBC,GAAmB,EACpCyG,EAAwBizB,IAAWsY,GAAQC,GAASC,GAASO,EAAwBzgF,GAAY,KAA6B,OAASA,EAAQ,yBAA2B,MAAQygF,IAA0B,OAASA,EAAwBzgF,GAAY,OAAuCogF,EAAkBpgF,EAAQ,UAAY,MAAQogF,IAAoB,SAAmBC,EAAwBD,EAAgB,WAAa,MAAQC,IAA0B,OAAtL,OAAwMA,EAAsB,yBAA2B,MAAQH,IAAU,OAASA,EAAQnyC,EAAe,yBAA2B,MAAQkyC,IAAU,OAASA,GAASK,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,yBAA2B,MAAQP,IAAS,OAASA,EAAO,CAAC,EAGj7B,GAAI,EAAEvrC,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAI,WAAW,2DAA2D,EAElF,IAAIC,EAAsB,IAAI,KAAK,CAAC,EACpCA,EAAoB,eAAejG,EAAO,EAAG,EAAGgG,CAAqB,EACrEC,EAAoB,YAAY,EAAG,EAAG,EAAG,CAAC,EAC1C,IAAI/F,EAAkBoxC,GAAerrC,EAAqB10C,CAAO,EAC7D20C,EAAsB,IAAI,KAAK,CAAC,EACpCA,EAAoB,eAAelG,EAAM,EAAGgG,CAAqB,EACjEE,EAAoB,YAAY,EAAG,EAAG,EAAG,CAAC,EAC1C,IAAI9F,EAAkBkxC,GAAeprC,EAAqB30C,CAAO,EACjE,OAAIgtC,EAAK,QAAO,GAAM2B,EAAgB,QAAO,EACpCF,EAAO,EACLzB,EAAK,QAAS,GAAI6B,EAAgB,QAAO,EAC3CJ,EAEAA,EAAO,CAElB,CC3Be,SAASiyC,IAAmB1B,EAAWh/E,EAAS,CAC7D,IAAIggF,EAAMC,EAAOC,EAAOO,EAAuBL,EAAiBC,EAAuBC,EAAuBC,EAC9G1B,GAAa,EAAG,SAAS,EACzB,IAAI9wC,EAAiBC,GAAmB,EACpCyG,EAAwBizB,IAAWsY,GAAQC,GAASC,GAASO,EAAwBzgF,GAAY,KAA6B,OAASA,EAAQ,yBAA2B,MAAQygF,IAA0B,OAASA,EAAwBzgF,GAAY,OAAuCogF,EAAkBpgF,EAAQ,UAAY,MAAQogF,IAAoB,SAAmBC,EAAwBD,EAAgB,WAAa,MAAQC,IAA0B,OAAtL,OAAwMA,EAAsB,yBAA2B,MAAQH,IAAU,OAASA,EAAQnyC,EAAe,yBAA2B,MAAQkyC,IAAU,OAASA,GAASK,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,yBAA2B,MAAQP,IAAS,OAASA,EAAO,CAAC,EAC76BvxC,EAAO+xC,GAAexB,EAAWh/E,CAAO,EACxC60C,EAAY,IAAI,KAAK,CAAC,EAC1BA,EAAU,eAAepG,EAAM,EAAGgG,CAAqB,EACvDI,EAAU,YAAY,EAAG,EAAG,EAAG,CAAC,EAChC,IAAI7H,EAAO+yC,GAAelrC,EAAW70C,CAAO,EAC5C,OAAOgtC,CACT,CCZA,IAAI6yC,IAAuB,OACZ,SAASc,GAAW3B,EAAWh/E,EAAS,CACrD6+E,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvB1/C,EAAOygD,GAAe/yC,EAAMhtC,CAAO,EAAE,QAAS,EAAG0gF,IAAmB1zC,EAAMhtC,CAAO,EAAE,QAAS,EAKhG,OAAO,KAAK,MAAMs/B,EAAOugD,GAAoB,EAAI,CACnD,CCde,SAAS9qC,GAAgB/f,EAAQggB,EAAc,CAG5D,QAFIrE,EAAO3b,EAAS,EAAI,IAAM,GAC1BigB,EAAS,KAAK,IAAIjgB,CAAM,EAAE,SAAU,EACjCigB,EAAO,OAASD,GACrBC,EAAS,IAAMA,EAEjB,OAAOtE,EAAOsE,CAChB,CCMA,IAAIQ,GAAa,CAEf,EAAG,SAAWzI,EAAMvO,EAAO,CAUzB,IAAI0W,EAAanI,EAAK,eAAgB,EAElCyB,EAAO0G,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOJ,GAAgBtW,IAAU,KAAOgQ,EAAO,IAAMA,EAAMhQ,EAAM,MAAM,CACxE,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,IAAI+R,EAAQxD,EAAK,YAAa,EAC9B,OAAOvO,IAAU,IAAM,OAAO+R,EAAQ,CAAC,EAAIuE,GAAgBvE,EAAQ,EAAG,CAAC,CACxE,EAED,EAAG,SAAWxD,EAAMvO,EAAO,CACzB,OAAOsW,GAAgB/H,EAAK,WAAU,EAAIvO,EAAM,MAAM,CACvD,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,IAAI2W,EAAqBpI,EAAK,YAAW,EAAK,IAAM,EAAI,KAAO,KAC/D,OAAQvO,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO2W,EAAmB,YAAa,EACzC,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAC7B,IAAK,OACL,QACE,OAAOA,IAAuB,KAAO,OAAS,MACtD,CACG,EAED,EAAG,SAAWpI,EAAMvO,EAAO,CACzB,OAAOsW,GAAgB/H,EAAK,YAAW,EAAK,IAAM,GAAIvO,EAAM,MAAM,CACnE,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,OAAOsW,GAAgB/H,EAAK,YAAW,EAAIvO,EAAM,MAAM,CACxD,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,OAAOsW,GAAgB/H,EAAK,cAAa,EAAIvO,EAAM,MAAM,CAC1D,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,OAAOsW,GAAgB/H,EAAK,cAAa,EAAIvO,EAAM,MAAM,CAC1D,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,IAAI4W,EAAiB5W,EAAM,OACvB6W,EAAetI,EAAK,mBAAoB,EACxCuI,EAAoB,KAAK,MAAMD,EAAe,KAAK,IAAI,GAAID,EAAiB,CAAC,CAAC,EAClF,OAAON,GAAgBQ,EAAmB9W,EAAM,MAAM,CAC1D,CACA,ECvEI+W,GAAgB,CAClB,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EA+CIC,IAAa,CAEf,EAAG,SAAWzI,EAAMvO,EAAOkU,EAAU,CACnC,IAAI+C,EAAM1I,EAAK,eAAgB,EAAG,EAAI,EAAI,EAC1C,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,IAAI+C,EAAK,CACvB,MAAO,aACjB,CAAS,EAEH,IAAK,QACH,OAAO/C,EAAS,IAAI+C,EAAK,CACvB,MAAO,QACjB,CAAS,EAEH,IAAK,OACL,QACE,OAAO/C,EAAS,IAAI+C,EAAK,CACvB,MAAO,MACjB,CAAS,CACT,CACG,EAED,EAAG,SAAW1I,EAAMvO,EAAOkU,EAAU,CAEnC,GAAIlU,IAAU,KAAM,CAClB,IAAI0W,EAAanI,EAAK,eAAgB,EAElCyB,EAAO0G,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOxC,EAAS,cAAclE,EAAM,CAClC,KAAM,MACd,CAAO,CACP,CACI,OAAOyG,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC5C,IAAI21C,EAAiB6qC,GAAexzC,EAAMhtC,CAAO,EAE7C41C,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,GAAIlX,IAAU,KAAM,CAClB,IAAIoX,EAAeD,EAAW,IAC9B,OAAOb,GAAgBc,EAAc,CAAC,CAC5C,CAGI,OAAIpX,IAAU,KACLkU,EAAS,cAAciD,EAAU,CACtC,KAAM,MACd,CAAO,EAIIb,GAAgBa,EAAUnX,EAAM,MAAM,CAC9C,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,IAAIqX,EAAc6pC,GAAkB3yC,CAAI,EAGxC,OAAO+H,GAAgBe,EAAarX,EAAM,MAAM,CACjD,EAUD,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,IAAIgQ,EAAOzB,EAAK,eAAgB,EAChC,OAAO+H,GAAgBtG,EAAMhQ,EAAM,MAAM,CAC1C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAIC,EAAU,KAAK,MAAM5F,EAAK,YAAa,EAAG,GAAK,CAAC,EACpD,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAOmU,CAAO,EAEvB,IAAK,KACH,OAAOmC,GAAgBnC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CACrC,KAAM,SAChB,CAAS,EAEH,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAW5F,EAAMvO,EAAOkU,EAAU,CACnC,IAAIC,EAAU,KAAK,MAAM5F,EAAK,YAAa,EAAG,GAAK,CAAC,EACpD,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAOmU,CAAO,EAEvB,IAAK,KACH,OAAOmC,GAAgBnC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CACrC,KAAM,SAChB,CAAS,EAEH,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAW5F,EAAMvO,EAAOkU,EAAU,CACnC,IAAInC,EAAQxD,EAAK,YAAa,EAC9B,OAAQvO,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOyW,GAAgB,EAAElI,EAAMvO,CAAK,EAEtC,IAAK,KACH,OAAOkU,EAAS,cAAcnC,EAAQ,EAAG,CACvC,KAAM,OAChB,CAAS,EAEH,IAAK,MACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWxD,EAAMvO,EAAOkU,EAAU,CACnC,IAAInC,EAAQxD,EAAK,YAAa,EAC9B,OAAQvO,EAAK,CAEX,IAAK,IACH,OAAO,OAAO+R,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAOuE,GAAgBvE,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOmC,EAAS,cAAcnC,EAAQ,EAAG,CACvC,KAAM,OAChB,CAAS,EAEH,IAAK,MACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmC,EAAS,MAAMnC,EAAO,CAC3B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWxD,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC5C,IAAI+1C,EAAO4qC,GAAW3zC,EAAMhtC,CAAO,EACnC,OAAIy+B,IAAU,KACLkU,EAAS,cAAcoD,EAAM,CAClC,KAAM,MACd,CAAO,EAEIhB,GAAgBgB,EAAMtX,EAAM,MAAM,CAC1C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAIqD,EAAU8pC,GAAc9yC,CAAI,EAChC,OAAIvO,IAAU,KACLkU,EAAS,cAAcqD,EAAS,CACrC,KAAM,MACd,CAAO,EAEIjB,GAAgBiB,EAASvX,EAAM,MAAM,CAC7C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,WAAU,EAAI,CAC/C,KAAM,MACd,CAAO,EAEIkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAIsD,EAAYupC,IAAgBxyC,CAAI,EACpC,OAAIvO,IAAU,KACLkU,EAAS,cAAcsD,EAAW,CACvC,KAAM,WACd,CAAO,EAEIlB,GAAgBkB,EAAWxX,EAAM,MAAM,CAC/C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAIuD,EAAYlJ,EAAK,UAAW,EAChC,OAAQvO,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWlJ,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC5C,IAAIk2C,EAAYlJ,EAAK,UAAW,EAC5BmJ,GAAkBD,EAAYl2C,EAAQ,aAAe,GAAK,GAAK,EACnE,OAAQy+B,EAAK,CAEX,IAAK,IACH,OAAO,OAAO0X,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAOxD,EAAS,cAAcwD,EAAgB,CAC5C,KAAM,KAChB,CAAS,EACH,IAAK,MACH,OAAOxD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWlJ,EAAMvO,EAAOkU,EAAU3yC,EAAS,CAC5C,IAAIk2C,EAAYlJ,EAAK,UAAW,EAC5BmJ,GAAkBD,EAAYl2C,EAAQ,aAAe,GAAK,GAAK,EACnE,OAAQy+B,EAAK,CAEX,IAAK,IACH,OAAO,OAAO0X,CAAc,EAE9B,IAAK,KACH,OAAOpB,GAAgBoB,EAAgB1X,EAAM,MAAM,EAErD,IAAK,KACH,OAAOkU,EAAS,cAAcwD,EAAgB,CAC5C,KAAM,KAChB,CAAS,EACH,IAAK,MACH,OAAOxD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWlJ,EAAMvO,EAAOkU,EAAU,CACnC,IAAIuD,EAAYlJ,EAAK,UAAW,EAC5BoJ,EAAeF,IAAc,EAAI,EAAIA,EACzC,OAAQzX,EAAK,CAEX,IAAK,IACH,OAAO,OAAO2X,CAAY,EAE5B,IAAK,KACH,OAAOrB,GAAgBqB,EAAc3X,EAAM,MAAM,EAEnD,IAAK,KACH,OAAOkU,EAAS,cAAcyD,EAAc,CAC1C,KAAM,KAChB,CAAS,EAEH,IAAK,MACH,OAAOzD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOvD,EAAS,IAAIuD,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWlJ,EAAMvO,EAAOkU,EAAU,CACnC,IAAI0D,EAAQrJ,EAAK,YAAa,EAC1BoI,EAAqBiB,EAAQ,IAAM,EAAI,KAAO,KAClD,OAAQ5X,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACV,GAAE,YAAa,EAClB,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWpI,EAAMvO,EAAOkU,EAAU,CACnC,IAAI0D,EAAQrJ,EAAK,YAAa,EAC1BoI,EAQJ,OAPIiB,IAAU,GACZjB,EAAqBI,GAAc,KAC1Ba,IAAU,EACnBjB,EAAqBI,GAAc,SAEnCJ,EAAqBiB,EAAQ,IAAM,EAAI,KAAO,KAExC5X,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACV,GAAE,YAAa,EAClB,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWpI,EAAMvO,EAAOkU,EAAU,CACnC,IAAI0D,EAAQrJ,EAAK,YAAa,EAC1BoI,EAUJ,OATIiB,GAAS,GACXjB,EAAqBI,GAAc,QAC1Ba,GAAS,GAClBjB,EAAqBI,GAAc,UAC1Ba,GAAS,EAClBjB,EAAqBI,GAAc,QAEnCJ,EAAqBI,GAAc,MAE7B/W,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOkU,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,QACH,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOzC,EAAS,UAAUyC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACG,EAED,EAAG,SAAWpI,EAAMvO,EAAOkU,EAAU,CACnC,GAAIlU,IAAU,KAAM,CAClB,IAAI4X,EAAQrJ,EAAK,YAAW,EAAK,GACjC,OAAIqJ,IAAU,IAAGA,EAAQ,IAClB1D,EAAS,cAAc0D,EAAO,CACnC,KAAM,MACd,CAAO,CACP,CACI,OAAOnB,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,YAAW,EAAI,CAChD,KAAM,MACd,CAAO,EAEIkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAI0D,EAAQrJ,EAAK,YAAW,EAAK,GACjC,OAAIvO,IAAU,KACLkU,EAAS,cAAc0D,EAAO,CACnC,KAAM,MACd,CAAO,EAEItB,GAAgBsB,EAAO5X,EAAM,MAAM,CAC3C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,IAAI0D,EAAQrJ,EAAK,YAAa,EAE9B,OADIqJ,IAAU,IAAGA,EAAQ,IACrB5X,IAAU,KACLkU,EAAS,cAAc0D,EAAO,CACnC,KAAM,MACd,CAAO,EAEItB,GAAgBsB,EAAO5X,EAAM,MAAM,CAC3C,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,cAAa,EAAI,CAClD,KAAM,QACd,CAAO,EAEIkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAOkU,EAAU,CACnC,OAAIlU,IAAU,KACLkU,EAAS,cAAc3F,EAAK,cAAa,EAAI,CAClD,KAAM,QACd,CAAO,EAEIkI,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAO,CACzB,OAAOyW,GAAgB,EAAElI,EAAMvO,CAAK,CACrC,EAED,EAAG,SAAWuO,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxCuJ,EAAiBqC,EAAa,kBAAmB,EACrD,GAAIrC,IAAmB,EACrB,MAAO,IAET,OAAQ9X,EAAK,CAEX,IAAK,IACH,OAAO+X,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KAEH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACG,EAED,EAAG,SAAWvJ,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxCuJ,EAAiBqC,EAAa,kBAAmB,EACrD,OAAQna,EAAK,CAEX,IAAK,IACH,OAAO+X,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KAEH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACG,EAED,EAAG,SAAWvJ,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxCuJ,EAAiBqC,EAAa,kBAAmB,EACrD,OAAQna,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACG,EAED,EAAG,SAAWvJ,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxCuJ,EAAiBqC,EAAa,kBAAmB,EACrD,OAAQna,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQiY,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACG,EAED,EAAG,SAAWvJ,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxC2J,EAAY,KAAK,MAAMiC,EAAa,QAAS,EAAG,GAAI,EACxD,OAAO7D,GAAgB4B,EAAWlY,EAAM,MAAM,CAC/C,EAED,EAAG,SAAWuO,EAAMvO,EAAO6X,EAAWt2C,EAAS,CAC7C,IAAI44C,EAAe54C,EAAQ,eAAiBgtC,EACxC2J,EAAYiC,EAAa,QAAS,EACtC,OAAO7D,GAAgB4B,EAAWlY,EAAM,MAAM,CAClD,CACA,EACA,SAASiY,GAAoBpc,EAAQsmD,EAAgB,CACnD,IAAIjwC,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQ,KAAK,MAAMQ,EAAY,EAAE,EACjCC,EAAUD,EAAY,GAC1B,GAAIC,IAAY,EACd,OAAOnG,EAAO,OAAO0F,CAAK,EAE5B,IAAIO,EAAYgqC,EAChB,OAAOjwC,EAAO,OAAO0F,CAAK,EAAIO,EAAY7B,GAAgB+B,EAAS,CAAC,CACtE,CACA,SAASN,GAAkClc,EAAQsmD,EAAgB,CACjE,GAAItmD,EAAS,KAAO,EAAG,CACrB,IAAIqW,EAAOrW,EAAS,EAAI,IAAM,IAC9B,OAAOqW,EAAOoE,GAAgB,KAAK,IAAIza,CAAM,EAAI,GAAI,CAAC,CAC1D,CACE,OAAOmc,GAAenc,EAAQsmD,CAAc,CAC9C,CACA,SAASnqC,GAAenc,EAAQsmD,EAAgB,CAC9C,IAAIhqC,EAAYgqC,GAAkB,GAC9BjwC,EAAOrW,EAAS,EAAI,IAAM,IAC1Buc,EAAY,KAAK,IAAIvc,CAAM,EAC3B+b,EAAQtB,GAAgB,KAAK,MAAM8B,EAAY,EAAE,EAAG,CAAC,EACrDC,EAAU/B,GAAgB8B,EAAY,GAAI,CAAC,EAC/C,OAAOlG,EAAO0F,EAAQO,EAAYE,CACpC,CClwBA,IAAIC,GAAoB,SAA2BzY,EAASoT,EAAY,CACtE,OAAQpT,EAAO,CACb,IAAK,IACH,OAAOoT,EAAW,KAAK,CACrB,MAAO,OACf,CAAO,EACH,IAAK,KACH,OAAOA,EAAW,KAAK,CACrB,MAAO,QACf,CAAO,EACH,IAAK,MACH,OAAOA,EAAW,KAAK,CACrB,MAAO,MACf,CAAO,EACH,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CACrB,MAAO,MACf,CAAO,CACP,CACA,EACIsF,GAAoB,SAA2B1Y,EAASoT,EAAY,CACtE,OAAQpT,EAAO,CACb,IAAK,IACH,OAAOoT,EAAW,KAAK,CACrB,MAAO,OACf,CAAO,EACH,IAAK,KACH,OAAOA,EAAW,KAAK,CACrB,MAAO,QACf,CAAO,EACH,IAAK,MACH,OAAOA,EAAW,KAAK,CACrB,MAAO,MACf,CAAO,EACH,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CACrB,MAAO,MACf,CAAO,CACP,CACA,EACIuF,IAAwB,SAA+B3Y,EAASoT,EAAY,CAC9E,IAAIsB,EAAc1U,EAAQ,MAAM,WAAW,GAAK,CAAE,EAC9C4Y,EAAclE,EAAY,CAAC,EAC3BmE,EAAcnE,EAAY,CAAC,EAC/B,GAAI,CAACmE,EACH,OAAOJ,GAAkBzY,EAASoT,CAAU,EAE9C,IAAI0F,EACJ,OAAQF,EAAW,CACjB,IAAK,IACHE,EAAiB1F,EAAW,SAAS,CACnC,MAAO,OACf,CAAO,EACD,MACF,IAAK,KACH0F,EAAiB1F,EAAW,SAAS,CACnC,MAAO,QACf,CAAO,EACD,MACF,IAAK,MACH0F,EAAiB1F,EAAW,SAAS,CACnC,MAAO,MACf,CAAO,EACD,MACF,IAAK,OACL,QACE0F,EAAiB1F,EAAW,SAAS,CACnC,MAAO,MACf,CAAO,EACD,KACN,CACE,OAAO0F,EAAe,QAAQ,WAAYL,GAAkBG,EAAaxF,CAAU,CAAC,EAAE,QAAQ,WAAYsF,GAAkBG,EAAazF,CAAU,CAAC,CACtJ,EACI2F,GAAiB,CACnB,EAAGL,GACH,EAAGC,GACL,EC9EI4pC,IAA2B,CAAC,IAAK,IAAI,EACrCC,IAA0B,CAAC,KAAM,MAAM,EACpC,SAASrpC,GAA0BhZ,EAAO,CAC/C,OAAOoiD,IAAyB,QAAQpiD,CAAK,IAAM,EACrD,CACO,SAASiZ,GAAyBjZ,EAAO,CAC9C,OAAOqiD,IAAwB,QAAQriD,CAAK,IAAM,EACpD,CACO,SAASsiD,GAAoBtiD,EAAOmZ,EAAQC,EAAO,CACxD,GAAIpZ,IAAU,OACZ,MAAM,IAAI,WAAW,qCAAqC,OAAOmZ,EAAQ,wCAAwC,EAAE,OAAOC,EAAO,gFAAgF,CAAC,EAC7M,GAAIpZ,IAAU,KACnB,MAAM,IAAI,WAAW,iCAAiC,OAAOmZ,EAAQ,wCAAwC,EAAE,OAAOC,EAAO,gFAAgF,CAAC,EACzM,GAAIpZ,IAAU,IACnB,MAAM,IAAI,WAAW,+BAA+B,OAAOmZ,EAAQ,oDAAoD,EAAE,OAAOC,EAAO,gFAAgF,CAAC,EACnN,GAAIpZ,IAAU,KACnB,MAAM,IAAI,WAAW,iCAAiC,OAAOmZ,EAAQ,oDAAoD,EAAE,OAAOC,EAAO,gFAAgF,CAAC,CAE9N,CClBA,IAAI5G,IAAuB,CACzB,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EACD,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EACD,YAAa,gBACb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACR,EACD,SAAU,CACR,IAAK,WACL,MAAO,mBACR,EACD,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EACD,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EACD,MAAO,CACL,IAAK,QACL,MAAO,gBACR,EACD,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EACD,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EACD,aAAc,CACZ,IAAK,gBACL,MAAO,wBACR,EACD,QAAS,CACP,IAAK,UACL,MAAO,kBACR,EACD,YAAa,CACX,IAAK,eACL,MAAO,uBACR,EACD,OAAQ,CACN,IAAK,SACL,MAAO,iBACR,EACD,WAAY,CACV,IAAK,cACL,MAAO,sBACR,EACD,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,CACA,EACIC,IAAiB,SAAwBzS,EAAO0S,EAAOnxC,EAAS,CAClE,IAAIhH,EACAo4C,EAAaH,IAAqBxS,CAAK,EAQ3C,OAPI,OAAO2S,GAAe,SACxBp4C,EAASo4C,EACAD,IAAU,EACnBn4C,EAASo4C,EAAW,IAEpBp4C,EAASo4C,EAAW,MAAM,QAAQ,YAAaD,EAAM,UAAU,EAE7DnxC,GAAY,MAA8BA,EAAQ,UAChDA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQhH,EAERA,EAAS,OAGbA,CACT,ECjFe,SAASq4C,GAAkBl5C,EAAM,CAC9C,OAAO,UAAY,CACjB,IAAI6H,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAEhFsxC,EAAQtxC,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAI7H,EAAK,aACrDy/C,EAASz/C,EAAK,QAAQm5C,CAAK,GAAKn5C,EAAK,QAAQA,EAAK,YAAY,EAClE,OAAOy/C,CACR,CACH,CCPA,IAAIrG,IAAc,CAChB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EACIC,IAAc,CAChB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EACIC,IAAkB,CACpB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EACIC,IAAa,CACf,KAAML,GAAkB,CACtB,QAASE,IACT,aAAc,MAClB,CAAG,EACD,KAAMF,GAAkB,CACtB,QAASG,IACT,aAAc,MAClB,CAAG,EACD,SAAUH,GAAkB,CAC1B,QAASI,IACT,aAAc,MACf,EACH,EChCIE,IAAuB,CACzB,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EACIC,IAAiB,SAAwBnT,EAAO0O,EAAO0E,EAAWC,EAAU,CAC9E,OAAOH,IAAqBlT,CAAK,CACnC,ECVe,SAASsT,GAAgB55C,EAAM,CAC5C,OAAO,SAAU6oF,EAAYhhF,EAAS,CACpC,IAAIwY,EAAUxY,GAAY,MAA8BA,EAAQ,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAChGgyC,EACJ,GAAIx5B,IAAY,cAAgBrgB,EAAK,iBAAkB,CACrD,IAAI85C,EAAe95C,EAAK,wBAA0BA,EAAK,aACnDm5C,EAAQtxC,GAAY,MAA8BA,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAIiyC,EAC9FD,EAAc75C,EAAK,iBAAiBm5C,CAAK,GAAKn5C,EAAK,iBAAiB85C,CAAY,CACtF,KAAW,CACL,IAAIgvC,EAAgB9oF,EAAK,aACrB+oF,EAASlhF,GAAY,MAA8BA,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAI7H,EAAK,aACpG65C,EAAc75C,EAAK,OAAO+oF,CAAM,GAAK/oF,EAAK,OAAO8oF,CAAa,CACpE,CACI,IAAI1nF,EAAQpB,EAAK,iBAAmBA,EAAK,iBAAiB6oF,CAAU,EAAIA,EAExE,OAAOhvC,EAAYz4C,CAAK,CACzB,CACH,CChBA,IAAI24C,IAAY,CACd,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EACIC,IAAgB,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMIC,IAAc,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAChG,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,UAAU,CACjI,EACIC,IAAY,CACd,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,UAAU,CACrF,EACIC,IAAkB,CACpB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,CACA,EACIC,IAA4B,CAC9B,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACR,EACD,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,CACA,EACIC,IAAgB,SAAuBC,EAAaX,EAAU,CAChE,IAAI9c,EAAS,OAAOyd,CAAW,EAS3BC,EAAS1d,EAAS,IACtB,GAAI0d,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAE,CACjB,IAAK,GACH,OAAO1d,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,IACxB,CAEE,OAAOA,EAAS,IAClB,EACI2d,IAAW,CACb,cAAeH,IACf,IAAKT,GAAgB,CACnB,OAAQG,IACR,aAAc,MAClB,CAAG,EACD,QAASH,GAAgB,CACvB,OAAQI,IACR,aAAc,OACd,iBAAkB,SAA0BS,EAAS,CACnD,OAAOA,EAAU,CACvB,CACA,CAAG,EACD,MAAOb,GAAgB,CACrB,OAAQK,IACR,aAAc,MAClB,CAAG,EACD,IAAKL,GAAgB,CACnB,OAAQM,IACR,aAAc,MAClB,CAAG,EACD,UAAWN,GAAgB,CACzB,OAAQO,IACR,aAAc,OACd,iBAAkBC,IAClB,uBAAwB,MACzB,EACH,EC7Ie,SAASM,GAAa16C,EAAM,CACzC,OAAO,SAAU26C,EAAQ,CACvB,IAAI9yC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFsxC,EAAQtxC,EAAQ,MAChB+yC,EAAezB,GAASn5C,EAAK,cAAcm5C,CAAK,GAAKn5C,EAAK,cAAcA,EAAK,iBAAiB,EAC9F66C,EAAcF,EAAO,MAAMC,CAAY,EAC3C,GAAI,CAACC,EACH,OAAO,KAET,IAAIC,EAAgBD,EAAY,CAAC,EAC7BE,EAAgB5B,GAASn5C,EAAK,cAAcm5C,CAAK,GAAKn5C,EAAK,cAAcA,EAAK,iBAAiB,EAC/FxK,EAAM,MAAM,QAAQulD,CAAa,EAAIC,IAAUD,EAAe,SAAU5U,EAAS,CACnF,OAAOA,EAAQ,KAAK2U,CAAa,CAClC,GAAIG,IAAQF,EAAe,SAAU5U,EAAS,CAC7C,OAAOA,EAAQ,KAAK2U,CAAa,CACvC,CAAK,EACG7jD,EACJA,EAAQ+I,EAAK,cAAgBA,EAAK,cAAcxK,CAAG,EAAIA,EACvDyB,EAAQ4Q,EAAQ,cAAgBA,EAAQ,cAAc5Q,CAAK,EAAIA,EAC/D,IAAIikD,EAAOP,EAAO,MAAMG,EAAc,MAAM,EAC5C,MAAO,CACL,MAAO7jD,EACP,KAAMikD,CACP,CACF,CACH,CACA,SAASD,IAAQ57C,EAAQ87C,EAAW,CAClC,QAAS3lD,KAAO6J,EACd,GAAIA,EAAO,eAAe7J,CAAG,GAAK2lD,EAAU97C,EAAO7J,CAAG,CAAC,EACrD,OAAOA,CAIb,CACA,SAASwlD,IAAUx7C,EAAO27C,EAAW,CACnC,QAAS3lD,EAAM,EAAGA,EAAMgK,EAAM,OAAQhK,IACpC,GAAI2lD,EAAU37C,EAAMhK,CAAG,CAAC,EACtB,OAAOA,CAIb,CCzCe,SAAS4lD,IAAoBp7C,EAAM,CAChD,OAAO,SAAU26C,EAAQ,CACvB,IAAI9yC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAE,EAChFgzC,EAAcF,EAAO,MAAM36C,EAAK,YAAY,EAChD,GAAI,CAAC66C,EAAa,OAAO,KACzB,IAAIC,EAAgBD,EAAY,CAAC,EAC7BQ,EAAcV,EAAO,MAAM36C,EAAK,YAAY,EAChD,GAAI,CAACq7C,EAAa,OAAO,KACzB,IAAIpkD,EAAQ+I,EAAK,cAAgBA,EAAK,cAAcq7C,EAAY,CAAC,CAAC,EAAIA,EAAY,CAAC,EACnFpkD,EAAQ4Q,EAAQ,cAAgBA,EAAQ,cAAc5Q,CAAK,EAAIA,EAC/D,IAAIikD,EAAOP,EAAO,MAAMG,EAAc,MAAM,EAC5C,MAAO,CACL,MAAO7jD,EACP,KAAMikD,CACP,CACF,CACH,CCdA,IAAII,IAA4B,wBAC5BC,IAA4B,OAC5BC,IAAmB,CACrB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACIC,IAAmB,CACrB,IAAK,CAAC,MAAO,SAAS,CACxB,EACIC,IAAuB,CACzB,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACIC,IAAuB,CACzB,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EACIC,IAAqB,CACvB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACIC,IAAqB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3F,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,KAAK,CACrG,EACIC,IAAmB,CACrB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACIC,IAAmB,CACrB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EACIC,IAAyB,CAC3B,OAAQ,6DACR,IAAK,gFACP,EACIC,IAAyB,CAC3B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACX,CACA,EACInV,IAAQ,CACV,cAAesU,IAAoB,CACjC,aAAcE,IACd,aAAcC,IACd,cAAe,SAAuBtkD,EAAO,CAC3C,OAAO,SAASA,EAAO,EAAE,CAC/B,CACA,CAAG,EACD,IAAKyjD,GAAa,CAChB,cAAec,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EACD,QAASf,GAAa,CACpB,cAAegB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,MACnB,cAAe,SAAuBv6C,EAAO,CAC3C,OAAOA,EAAQ,CACrB,CACA,CAAG,EACD,MAAOs5C,GAAa,CAClB,cAAekB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EACD,IAAKnB,GAAa,CAChB,cAAeoB,IACf,kBAAmB,OACnB,cAAeC,IACf,kBAAmB,KACvB,CAAG,EACD,UAAWrB,GAAa,CACtB,cAAesB,IACf,kBAAmB,MACnB,cAAeC,IACf,kBAAmB,KACpB,EACH,EClFIkE,GAAS,CACX,KAAM,QACN,eAAgBpH,IAChB,WAAYQ,IACZ,eAAgBE,IAChB,SAAUe,IACV,MAAO1T,IACP,QAAS,CACP,aAAc,EACd,sBAAuB,CAC3B,CACA,ECJI+Y,IAAyB,wDAIzBC,IAA6B,oCAC7BC,IAAsB,eACtBC,IAAoB,MACpBC,IAAgC,WAsSrB,SAASR,IAAOonC,EAAWmC,EAAgBnhF,EAAS,CACjE,IAAIggF,EAAMI,EAAiBH,EAAOC,EAAOkB,EAAOX,EAAuBY,EAAkBC,EAAuBhB,EAAuBC,EAAwBgB,EAAOC,EAAOC,EAAOtB,EAAuBuB,EAAkBC,EAAuBC,EAAwBC,EAC5QhD,GAAa,EAAG,SAAS,EACzB,IAAIxmC,EAAY,OAAO8oC,CAAc,EACjCpzC,EAAiBC,GAAmB,EACpCsK,GAAU0nC,GAAQI,EAAkBpgF,GAAY,KAA6B,OAASA,EAAQ,UAAY,MAAQogF,IAAoB,OAASA,EAAkBryC,EAAe,UAAY,MAAQiyC,IAAS,OAASA,EAAOznC,GAC7N9D,EAAwBizB,IAAWuY,GAASC,GAASkB,GAASX,EAAwBzgF,GAAY,KAA6B,OAASA,EAAQ,yBAA2B,MAAQygF,IAA0B,OAASA,EAAwBzgF,GAAY,OAAuCqhF,EAAmBrhF,EAAQ,UAAY,MAAQqhF,IAAqB,SAAmBC,EAAwBD,EAAiB,WAAa,MAAQC,IAA0B,OAAzL,OAA2MA,EAAsB,yBAA2B,MAAQF,IAAU,OAASA,EAAQrzC,EAAe,yBAA2B,MAAQmyC,IAAU,OAASA,GAASI,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,yBAA2B,MAAQN,IAAU,OAASA,EAAQ,CAAC,EAGv7B,GAAI,EAAExrC,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAI,WAAW,2DAA2D,EAElF,IAAIvG,EAAew5B,IAAW6Z,GAASC,GAASC,GAAStB,EAAwBngF,GAAY,KAA6B,OAASA,EAAQ,gBAAkB,MAAQmgF,IAA0B,OAASA,EAAwBngF,GAAY,OAAuC0hF,EAAmB1hF,EAAQ,UAAY,MAAQ0hF,IAAqB,SAAmBC,EAAwBD,EAAiB,WAAa,MAAQC,IAA0B,OAAzL,OAA2MA,EAAsB,gBAAkB,MAAQF,IAAU,OAASA,EAAQ1zC,EAAe,gBAAkB,MAAQyzC,IAAU,OAASA,GAASI,EAAyB7zC,EAAe,UAAY,MAAQ6zC,IAA2B,SAAmBC,EAAyBD,EAAuB,WAAa,MAAQC,IAA2B,OAA1G,OAA4HA,EAAuB,gBAAkB,MAAQN,IAAU,OAASA,EAAQ,CAAC,EAG74B,GAAI,EAAErzC,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI,WAAW,kDAAkD,EAEzE,GAAI,CAACoK,EAAO,SACV,MAAM,IAAI,WAAW,uCAAuC,EAE9D,GAAI,CAACA,EAAO,WACV,MAAM,IAAI,WAAW,yCAAyC,EAEhE,IAAIM,EAAehM,GAAOoyC,CAAS,EACnC,GAAI,CAAChvC,GAAQ4I,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAM3C,IAAIrC,EAAiBxH,GAAgC6J,CAAY,EAC7D5J,EAAUswC,GAAgB1mC,EAAcrC,CAAc,EACtD2C,EAAmB,CACrB,sBAAuBzE,EACvB,aAAcvG,EACd,OAAQoK,EACR,cAAeM,CAChB,EACG5/C,EAASq/C,EAAU,MAAMJ,GAA0B,EAAE,IAAI,SAAUa,EAAW,CAChF,IAAIC,EAAiBD,EAAU,CAAC,EAChC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,IAAIC,EAAgB3B,GAAe0B,CAAc,EACjD,OAAOC,EAAcF,EAAWR,EAAO,UAAU,CACvD,CACI,OAAOQ,CACX,CAAG,EAAE,KAAK,EAAE,EAAE,MAAMd,GAAsB,EAAE,IAAI,SAAUc,EAAW,CAEjE,GAAIA,IAAc,KAChB,MAAO,IAET,IAAIC,EAAiBD,EAAU,CAAC,EAChC,GAAIC,IAAmB,IACrB,OAAOE,IAAmBH,CAAS,EAErC,IAAIM,EAAY3D,IAAWsD,CAAc,EACzC,GAAIK,EACF,MAAI,EAAEp5C,GAAY,MAA8BA,EAAQ,8BAAgC03C,GAAyBoB,CAAS,GACxHioC,GAAoBjoC,EAAWqoC,EAAgB,OAAOnC,CAAS,CAAC,EAE9D,EAAEh/E,GAAY,MAA8BA,EAAQ,+BAAiCy3C,GAA0BqB,CAAS,GAC1HioC,GAAoBjoC,EAAWqoC,EAAgB,OAAOnC,CAAS,CAAC,EAE3D5lC,EAAUpK,EAAS8J,EAAWR,EAAO,SAAUY,CAAgB,EAExE,GAAIH,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WAAW,iEAAmEW,EAAiB,GAAG,EAE9G,OAAOD,CACX,CAAG,EAAE,KAAK,EAAE,EACV,OAAO9/C,CACT,CACA,SAASigD,IAAmBpB,EAAO,CACjC,IAAIxV,EAAUwV,EAAM,MAAMK,GAAmB,EAC7C,OAAK7V,EAGEA,EAAQ,CAAC,EAAE,QAAQ8V,IAAmB,GAAG,EAFvCN,CAGX,CCjZe,SAASthB,IAAO3/B,EAAQY,EAAQ,CAC7C,GAAIZ,GAAU,KACZ,MAAM,IAAI,UAAU,+DAA+D,EAErF,QAASw+E,KAAY59E,EACf,OAAO,UAAU,eAAe,KAAKA,EAAQ49E,CAAQ,IAEvDx+E,EAAOw+E,CAAQ,EAAI59E,EAAO49E,CAAQ,GAGtC,OAAOx+E,CACT,CCXA,SAASkrF,GAAkBxkF,EAAG6G,EAAG,EACtBA,GAAR,MAAaA,EAAI7G,EAAE,UAAY6G,EAAI7G,EAAE,QACtC,QAAStH,EAAI,EAAG,EAAI,MAAMmO,CAAC,EAAGnO,EAAImO,EAAGnO,IAAK,EAAEA,CAAC,EAAIsH,EAAEtH,CAAC,EACpD,OAAO,CACT,CCHA,SAAS+rF,IAA4BzkF,EAAG6G,EAAG,CACzC,GAAI7G,EAAG,CACL,GAAgB,OAAOA,GAAnB,SAAsB,OAAO0kF,GAAiB1kF,EAAG6G,CAAC,EACtD,IAAI89E,EAAI,GAAG,SAAS,KAAK3kF,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAoB2kF,IAAb,UAAkB3kF,EAAE,cAAgB2kF,EAAI3kF,EAAE,YAAY,MAAiB2kF,IAAV,OAAyBA,IAAV,MAAc,MAAM,KAAK3kF,CAAC,EAAoB2kF,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAID,GAAiB1kF,EAAG6G,CAAC,EAAI,MACxN,CACA,CCNA,SAAS+9E,GAA2B5kF,EAAG,EAAG,CACxC,IAAI2kF,EAAmB,OAAO,OAAtB,KAAgC3kF,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC5E,GAAI,CAAC2kF,EAAG,CACN,GAAI,MAAM,QAAQ3kF,CAAC,IAAM2kF,EAAIE,IAA2B7kF,CAAC,IAAM,EAAuC,CACpG2kF,IAAM3kF,EAAI2kF,GACV,IAAIG,EAAK,EACPC,EAAI,UAAa,CAAE,EACrB,MAAO,CACL,EAAGA,EACH,EAAG,UAAa,CACd,OAAOD,GAAM9kF,EAAE,OAAS,CACtB,KAAM,EAClB,EAAc,CACF,KAAM,GACN,MAAOA,EAAE8kF,GAAI,CACd,CACF,EACD,EAAG,SAAW9kF,EAAG,CACf,MAAMA,CACP,EACD,EAAG+kF,CACJ,CACP,CACI,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAC/J,CACE,IAAI11C,EACFxoC,EAAI,GACJqc,EAAI,GACN,MAAO,CACL,EAAG,UAAa,CACdyhE,EAAIA,EAAE,KAAK3kF,CAAC,CACb,EACD,EAAG,UAAa,CACd,IAAIA,EAAI2kF,EAAE,KAAM,EAChB,OAAO99E,EAAI7G,EAAE,KAAMA,CACpB,EACD,EAAG,SAAWA,EAAG,CACfkjB,EAAI,GAAImsB,EAAIrvC,CACb,EACD,EAAG,UAAa,CACd,GAAI,CACF6G,GAAa89E,EAAE,QAAV,MAAuBA,EAAE,OAAW,CACjD,QAAgB,CACR,GAAIzhE,EAAG,MAAMmsB,CACrB,CACA,CACG,CACH,CChDA,SAAS21C,GAAuBtsF,EAAG,CACjC,GAAeA,IAAX,OAAc,MAAM,IAAI,eAAe,2DAA2D,EACtG,OAAOA,CACT,CCHA,SAASusF,GAAgB,EAAG,EAAG,CAC7B,OAAOA,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAM,EAAG,SAAUN,EAAGjsF,EAAG,CAC9F,OAAOisF,EAAE,UAAYjsF,EAAGisF,CAC5B,EAAKM,GAAgB,EAAG,CAAC,CACzB,CCHA,SAASC,GAAU,EAAG,EAAG,CACvB,GAAkB,OAAO,GAArB,YAAmC,IAAT,KAAY,MAAM,IAAI,UAAU,oDAAoD,EAClH,EAAE,UAAY,OAAO,OAAO,GAAK,EAAE,UAAW,CAC5C,YAAa,CACX,MAAO,EACP,SAAU,GACV,aAAc,EACpB,CACG,GAAG,OAAO,eAAe,EAAG,YAAa,CACxC,SAAU,EACX,GAAG,GAAKvP,GAAe,EAAG,CAAC,CAC9B,CCZA,SAASwP,GAAgB,EAAG,CAC1B,OAAOA,GAAkB,OAAO,eAAiB,OAAO,eAAe,KAAI,EAAK,SAAUR,EAAG,CAC3F,OAAOA,EAAE,WAAa,OAAO,eAAeA,CAAC,CACjD,EAAKQ,GAAgB,CAAC,CACtB,CCJA,SAASC,IAA4B,CACnC,GAAI,CACF,IAAI,EAAI,CAAC,QAAQ,UAAU,QAAQ,KAAK,QAAQ,UAAU,QAAS,GAAI,UAAY,CAAE,EAAC,CACvF,MAAW,EACZ,OAAQA,GAA4B,UAAqC,CACvE,MAAO,CAAC,CAAC,CACb,GAAM,CACN,CCLA,SAASC,IAA2B,EAAG,EAAG,CACxC,GAAI,IAAkB/D,GAAQ,CAAC,GAArB,UAAwC,OAAO,GAArB,YAAyB,OAAO,EACpE,GAAe,IAAX,OAAc,MAAM,IAAI,UAAU,0DAA0D,EAChG,OAAOgE,GAAsB,CAAC,CAChC,CCHA,SAASC,GAAa,EAAG,CACvB,IAAIvlF,EAAIwlF,GAA0B,EAClC,OAAO,UAAY,CACjB,IAAI9sF,EACF22C,EAAIkd,GAAe,CAAC,EACtB,GAAIvsD,EAAG,CACL,IAAIwD,EAAI+oD,GAAe,IAAI,EAAE,YAC7B7zD,EAAI,QAAQ,UAAU22C,EAAG,UAAW7rC,CAAC,CACtC,MAAM9K,EAAI22C,EAAE,MAAM,KAAM,SAAS,EAClC,OAAOo2C,IAA0B,KAAM/sF,CAAC,CACzC,CACH,CCdA,SAASgtF,GAAgB7+E,EAAGtT,EAAG,CAC7B,GAAI,EAAEsT,aAAatT,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChF,CCDA,SAASoyF,IAAY,EAAG3lF,EAAG,CACzB,GAAgBshF,GAAQ,CAAC,GAArB,UAA0B,CAAC,EAAG,OAAO,EACzC,IAAI5oF,EAAI,EAAE,OAAO,WAAW,EAC5B,GAAeA,IAAX,OAAc,CAChB,IAAIzH,EAAIyH,EAAE,KAAK,EAAGsH,GAAK,SAAS,EAChC,GAAgBshF,GAAQrwF,CAAC,GAArB,SAAwB,OAAOA,EACnC,MAAM,IAAI,UAAU,8CAA8C,CACtE,CACE,OAAqB+O,IAAb,SAAiB,OAAS,QAAQ,CAAC,CAC7C,CCRA,SAAS4lF,GAAc,EAAG,CACxB,IAAI30F,EAAI00F,IAAY,EAAG,QAAQ,EAC/B,OAAmBrE,GAAQrwF,CAAC,GAArB,SAAyBA,EAAIA,EAAI,EAC1C,CCJA,SAAS40F,IAAkBntF,EAAGsH,EAAG,CAC/B,QAAS2kF,EAAI,EAAGA,EAAI3kF,EAAE,OAAQ2kF,IAAK,CACjC,IAAIt1C,EAAIrvC,EAAE2kF,CAAC,EACXt1C,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAe32C,EAAGktF,GAAcv2C,EAAE,GAAG,EAAGA,CAAC,CAC/I,CACA,CACA,SAASy2C,GAAaptF,EAAGsH,EAAG2kF,EAAG,CAC7B,OAAO3kF,GAAK6lF,IAAkBntF,EAAE,UAAWsH,CAAC,EAAiC,OAAO,eAAetH,EAAG,YAAa,CACjH,SAAU,EACX,GAAGA,CACN,CCVA,SAASqtF,GAAgBrtF,EAAGsH,EAAG2kF,EAAG,CAChC,OAAQ3kF,EAAI4lF,GAAc5lF,CAAC,KAAMtH,EAAI,OAAO,eAAeA,EAAGsH,EAAG,CAC/D,MAAO2kF,EACP,WAAY,GACZ,aAAc,GACd,SAAU,EACX,GAAIjsF,EAAEsH,CAAC,EAAI2kF,EAAGjsF,CACjB,CCFA,IAAIskD,IAAyB,GAClBI,GAAsB,UAAY,CAC3C,SAASA,GAAS,CAChBsoC,GAAgB,KAAMtoC,CAAM,EAC5B2oC,GAAgB,KAAM,WAAY,MAAM,EACxCA,GAAgB,KAAM,cAAe,CAAC,CAC1C,CACE,OAAAD,GAAa1oC,EAAQ,CAAC,CACpB,IAAK,WACL,MAAO,SAAkBD,EAAU3I,EAAU,CAC3C,MAAO,EACb,CACA,CAAG,CAAC,EACK4I,CACT,EAAG,EACQQ,IAA2B,SAAUooC,EAAS,CACvDd,GAAUtnC,EAAaooC,CAAO,EAC9B,IAAIC,EAASV,GAAa3nC,CAAW,EACrC,SAASA,EAAY9rD,EAAOurD,EAAeC,EAAUC,EAAUC,EAAa,CAC1E,IAAI0oC,EACJR,UAAgB,KAAM9nC,CAAW,EACjCsoC,EAAQD,EAAO,KAAK,IAAI,EACxBC,EAAM,MAAQp0F,EACdo0F,EAAM,cAAgB7oC,EACtB6oC,EAAM,SAAW5oC,EACjB4oC,EAAM,SAAW3oC,EACbC,IACF0oC,EAAM,YAAc1oC,GAEf0oC,CACX,CACE,OAAAJ,GAAaloC,EAAa,CAAC,CACzB,IAAK,WACL,MAAO,SAAkBlM,EAAShvC,EAAS,CACzC,OAAO,KAAK,cAAcgvC,EAAS,KAAK,MAAOhvC,CAAO,CAC5D,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAagvC,EAAS+L,EAAO/6C,EAAS,CAC3C,OAAO,KAAK,SAASgvC,EAAS+L,EAAO,KAAK,MAAO/6C,CAAO,CAC9D,CACA,CAAG,CAAC,EACKk7C,CACT,EAAER,EAAM,EACGkF,IAA0C,SAAU6jC,EAAU,CACvEjB,GAAU5iC,EAA4B6jC,CAAQ,EAC9C,IAAIC,EAAUb,GAAajjC,CAA0B,EACrD,SAASA,GAA6B,CACpC,IAAI+jC,EACJX,GAAgB,KAAMpjC,CAA0B,EAChD,QAAS+0B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAmxF,EAASD,EAAQ,KAAK,MAAMA,EAAS,CAAC,IAAI,EAAE,OAAOvrF,CAAI,CAAC,EACxDkrF,GAAgBf,GAAuBqB,CAAM,EAAG,WAAYrpC,GAAsB,EAClF+oC,GAAgBf,GAAuBqB,CAAM,EAAG,cAAe,EAAE,EAC1DA,CACX,CACE,OAAAP,GAAaxjC,EAA4B,CAAC,CACxC,IAAK,MACL,MAAO,SAAa5S,EAAM+N,EAAO,CAC/B,GAAIA,EAAM,eACR,OAAO/N,EAET,IAAI42C,EAAgB,IAAI,KAAK,CAAC,EAC9B,OAAAA,EAAc,YAAY52C,EAAK,eAAgB,EAAEA,EAAK,YAAa,EAAEA,EAAK,YAAY,EACtF42C,EAAc,SAAS52C,EAAK,YAAa,EAAEA,EAAK,cAAe,EAAEA,EAAK,cAAa,EAAIA,EAAK,mBAAkB,CAAE,EACzG42C,CACb,CACA,CAAG,CAAC,EACKhkC,CACT,EAAElF,EAAM,ECzEGU,GAAsB,UAAY,CAC3C,SAASA,GAAS,CAChB4nC,GAAgB,KAAM5nC,CAAM,EAC5BioC,GAAgB,KAAM,qBAAsB,MAAM,EAClDA,GAAgB,KAAM,WAAY,MAAM,EACxCA,GAAgB,KAAM,cAAe,MAAM,CAC/C,CACE,OAAAD,GAAahoC,EAAQ,CAAC,CACpB,IAAK,MACL,MAAO,SAAaH,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACrD,IAAIhH,EAAS,KAAK,MAAMiiD,EAAYxc,EAAOQ,EAAOj/B,CAAO,EACzD,OAAKhH,EAGE,CACL,OAAQ,IAAIkiD,IAAYliD,EAAO,MAAO,KAAK,SAAU,KAAK,IAAK,KAAK,SAAU,KAAK,WAAW,EAC9F,KAAMA,EAAO,IACd,EALQ,IAMf,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkByhD,EAAUU,EAAQrJ,EAAU,CACnD,MAAO,EACb,CACA,CAAG,CAAC,EACKsJ,CACT,EAAG,ECvBQqC,IAAyB,SAAUomC,EAAS,CACrDrB,GAAU/kC,EAAWomC,CAAO,EAC5B,IAAIN,EAASV,GAAaplC,CAAS,EACnC,SAASA,GAAY,CACnB,IAAI+lC,EACJR,GAAgB,KAAMvlC,CAAS,EAC/B,QAASk3B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,GAAG,CAAC,EAClFA,CACX,CACE,OAAAJ,GAAa3lC,EAAW,CAAC,CACvB,IAAK,QACL,MAAO,SAAexC,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOQ,EAAM,IAAIgc,EAAY,CAC3B,MAAO,aACnB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACnB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,QACnB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,MACnB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,aACnB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACnB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM+N,EAAO3rD,EAAO,CACtC,OAAA2rD,EAAM,IAAM3rD,EACZ49C,EAAK,eAAe59C,EAAO,EAAG,CAAC,EAC/B49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKyQ,CACT,EAAErC,EAAM,EC7DGC,GAAkB,CAC3B,MAAO,iBAEP,KAAM,qBAEN,UAAW,kCAEX,KAAM,qBAEN,QAAS,qBAET,QAAS,qBAET,QAAS,iBAET,QAAS,iBAET,OAAQ,YAER,OAAQ,YAGR,YAAa,MAEb,UAAW,WAEX,YAAa,WAEb,WAAY,WAGZ,gBAAiB,SACjB,kBAAmB,QAEnB,gBAAiB,aAEjB,kBAAmB,aAEnB,iBAAkB,YACpB,EAEWC,GAAmB,CAC5B,qBAAsB,2BACtB,MAAO,0BACP,qBAAsB,oCACtB,SAAU,2BACV,wBAAyB,qCAC3B,EC7CO,SAASC,GAASC,EAAeC,EAAO,CAC7C,OAAKD,GAGE,CACL,MAAOC,EAAMD,EAAc,KAAK,EAChC,KAAMA,EAAc,IACrB,CACH,CACO,SAASE,GAAoBpd,EAAS2c,EAAY,CACvD,IAAIjI,EAAciI,EAAW,MAAM3c,CAAO,EAC1C,OAAK0U,EAGE,CACL,MAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAClC,KAAMiI,EAAW,MAAMjI,EAAY,CAAC,EAAE,MAAM,CAC7C,EALQ,IAMX,CACO,SAAS2I,GAAqBrd,EAAS2c,EAAY,CACxD,IAAIjI,EAAciI,EAAW,MAAM3c,CAAO,EAC1C,GAAI,CAAC0U,EACH,OAAO,KAIT,GAAIA,EAAY,CAAC,IAAM,IACrB,MAAO,CACL,MAAO,EACP,KAAMiI,EAAW,MAAM,CAAC,CACzB,EAEH,IAAItK,EAAOqC,EAAY,CAAC,IAAM,IAAM,EAAI,GACpCqD,EAAQrD,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACxD8D,EAAU9D,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAC1DyG,EAAUzG,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAC9D,MAAO,CACL,MAAOrC,GAAQ0F,EAAQ1I,IAAqBmJ,EAAUpJ,GAAuB+L,EAAU7L,KACvF,KAAMqN,EAAW,MAAMjI,EAAY,CAAC,EAAE,MAAM,CAC7C,CACH,CACO,SAAS4I,GAAqBX,EAAY,CAC/C,OAAOS,GAAoBL,GAAgB,gBAAiBJ,CAAU,CACxE,CACO,SAASY,GAAahrD,EAAGoqD,EAAY,CAC1C,OAAQpqD,EAAC,CACP,IAAK,GACH,OAAO6qD,GAAoBL,GAAgB,YAAaJ,CAAU,EACpE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,UAAWJ,CAAU,EAClE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,YAAaJ,CAAU,EACpE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,WAAYJ,CAAU,EACnE,QACE,OAAOS,GAAoB,IAAI,OAAO,UAAY7qD,EAAI,GAAG,EAAGoqD,CAAU,CAC5E,CACA,CACO,SAASa,GAAmBjrD,EAAGoqD,EAAY,CAChD,OAAQpqD,EAAC,CACP,IAAK,GACH,OAAO6qD,GAAoBL,GAAgB,kBAAmBJ,CAAU,EAC1E,IAAK,GACH,OAAOS,GAAoBL,GAAgB,gBAAiBJ,CAAU,EACxE,IAAK,GACH,OAAOS,GAAoBL,GAAgB,kBAAmBJ,CAAU,EAC1E,IAAK,GACH,OAAOS,GAAoBL,GAAgB,iBAAkBJ,CAAU,EACzE,QACE,OAAOS,GAAoB,IAAI,OAAO,YAAc7qD,EAAI,GAAG,EAAGoqD,CAAU,CAC9E,CACA,CACO,SAASc,GAAqBC,EAAW,CAC9C,OAAQA,EAAS,CACf,IAAK,UACH,MAAO,GACT,IAAK,UACH,MAAO,IACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,MAAO,IACT,IAAK,KACL,IAAK,WACL,IAAK,QACL,QACE,MAAO,EACb,CACA,CACO,SAASC,GAAsBpG,EAAcqG,EAAa,CAC/D,IAAIC,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EACjDljD,EACJ,GAAIojD,GAAkB,GACpBpjD,EAAS68C,GAAgB,QACpB,CACL,IAAIwG,EAAWD,EAAiB,GAC5BE,EAAkB,KAAK,MAAMD,EAAW,GAAG,EAAI,IAC/CE,EAAoB1G,GAAgBwG,EAAW,IACnDrjD,EAAS68C,EAAeyG,GAAmBC,EAAoB,IAAM,EACzE,CACE,OAAOJ,EAAcnjD,EAAS,EAAIA,CACpC,CACO,SAASwjD,GAAgB/N,EAAM,CACpC,OAAOA,EAAO,MAAQ,GAAKA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC9D,CC/FO,IAAIiP,IAA0B,SAAUmmC,EAAS,CACtDrB,GAAU9kC,EAAYmmC,CAAO,EAC7B,IAAIN,EAASV,GAAanlC,CAAU,EACpC,SAASA,GAAa,CACpB,IAAI8lC,EACJR,GAAgB,KAAMtlC,CAAU,EAChC,QAASi3B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAChHA,CACX,CACE,OAAAJ,GAAa1lC,EAAY,CAAC,CACxB,IAAK,QACL,MAAO,SAAezC,EAAYxc,EAAOQ,EAAO,CAC9C,IAAIwd,EAAgB,SAAuBhO,EAAM,CAC/C,MAAO,CACL,KAAMA,EACN,eAAgBhQ,IAAU,IAC3B,CACF,EACD,OAAQA,EAAK,CACX,IAAK,IACH,OAAO8c,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,MACP,GAAGwB,CAAa,EACnB,QACE,OAAOlB,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CAC/E,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBtP,EAAO/9C,EAAO,CACrC,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAClD,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM+N,EAAO3rD,EAAO,CACtC,IAAI8sD,EAAclP,EAAK,eAAgB,EACvC,GAAI59C,EAAM,eAAgB,CACxB,IAAIstD,EAAyBT,GAAsB7sD,EAAM,KAAM8sD,CAAW,EAC1E,OAAAlP,EAAK,eAAe0P,EAAwB,EAAG,CAAC,EAChD1P,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACf,CACM,IAAIyB,EAAO,EAAE,QAASsM,IAAUA,EAAM,MAAQ,EAAI3rD,EAAM,KAAO,EAAIA,EAAM,KACzE,OAAA49C,EAAK,eAAeyB,EAAM,EAAG,CAAC,EAC9BzB,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACK0Q,CACT,EAAEtC,EAAM,EC7DGuC,IAAmC,SAAUkmC,EAAS,CAC/DrB,GAAU7kC,EAAqBkmC,CAAO,EACtC,IAAIN,EAASV,GAAallC,CAAmB,EAC7C,SAASA,GAAsB,CAC7B,IAAI6lC,EACJR,GAAgB,KAAMrlC,CAAmB,EACzC,QAASg3B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC/HA,CACX,CACE,OAAAJ,GAAazlC,EAAqB,CAAC,CACjC,IAAK,QACL,MAAO,SAAe1C,EAAYxc,EAAOQ,EAAO,CAC9C,IAAIwd,EAAgB,SAAuBhO,EAAM,CAC/C,MAAO,CACL,KAAMA,EACN,eAAgBhQ,IAAU,IAC3B,CACF,EACD,OAAQA,EAAK,CACX,IAAK,IACH,OAAO8c,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,MACP,GAAGwB,CAAa,EACnB,QACE,OAAOlB,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CAC/E,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBtP,EAAO/9C,EAAO,CACrC,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAClD,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM+N,EAAO3rD,EAAO4Q,EAAS,CAC/C,IAAIk8C,EAAcskC,GAAexzC,EAAMhtC,CAAO,EAC9C,GAAI5Q,EAAM,eAAgB,CACxB,IAAIstD,EAAyBT,GAAsB7sD,EAAM,KAAM8sD,CAAW,EAC1E,OAAAlP,EAAK,eAAe0P,EAAwB,EAAG18C,EAAQ,qBAAqB,EAC5EgtC,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpB+yC,GAAe/yC,EAAMhtC,CAAO,CAC3C,CACM,IAAIyuC,EAAO,EAAE,QAASsM,IAAUA,EAAM,MAAQ,EAAI3rD,EAAM,KAAO,EAAIA,EAAM,KACzE,OAAA49C,EAAK,eAAeyB,EAAM,EAAGzuC,EAAQ,qBAAqB,EAC1DgtC,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpB+yC,GAAe/yC,EAAMhtC,CAAO,CACzC,CACA,CAAG,CAAC,EACK29C,CACT,EAAEvC,EAAM,EC1DGwC,IAAiC,SAAUimC,EAAS,CAC7DrB,GAAU5kC,EAAmBimC,CAAO,EACpC,IAAIN,EAASV,GAAajlC,CAAiB,EAC3C,SAASA,GAAoB,CAC3B,IAAI4lC,EACJR,GAAgB,KAAMplC,CAAiB,EACvC,QAAS+2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACzIA,CACX,CACE,OAAAJ,GAAaxlC,EAAmB,CAAC,CAC/B,IAAK,QACL,MAAO,SAAe3C,EAAYxc,EAAO,CACvC,OACSqd,GADLrd,IAAU,IACc,EAEFA,EAAM,OAFDwc,CAAU,CAG/C,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa9N,EAAOwP,EAAQvtD,EAAO,CACxC,IAAIwtD,EAAkB,IAAI,KAAK,CAAC,EAChC,OAAAA,EAAgB,eAAextD,EAAO,EAAG,CAAC,EAC1CwtD,EAAgB,YAAY,EAAG,EAAG,EAAG,CAAC,EAC/B8iC,GAAkB9iC,CAAe,CAC9C,CACA,CAAG,CAAC,EACKgB,CACT,EAAExC,EAAM,ECjCGyC,IAAkC,SAAUgmC,EAAS,CAC9DrB,GAAU3kC,EAAoBgmC,CAAO,EACrC,IAAIN,EAASV,GAAahlC,CAAkB,EAC5C,SAASA,GAAqB,CAC5B,IAAI2lC,EACJR,GAAgB,KAAMnlC,CAAkB,EACxC,QAAS82B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACrHA,CACX,CACE,OAAAJ,GAAavlC,EAAoB,CAAC,CAChC,IAAK,QACL,MAAO,SAAe5C,EAAYxc,EAAO,CACvC,OACSqd,GADLrd,IAAU,IACc,EAEFA,EAAM,OAFDwc,CAAU,CAG/C,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,eAAe59C,EAAO,EAAG,CAAC,EAC/B49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACK6Q,CACT,EAAEzC,EAAM,EC/BG0C,IAA6B,SAAU+lC,EAAS,CACzDrB,GAAU1kC,EAAe+lC,CAAO,EAChC,IAAIN,EAASV,GAAa/kC,CAAa,EACvC,SAASA,GAAgB,CACvB,IAAI0lC,EACJR,GAAgB,KAAMllC,CAAa,EACnC,QAAS62B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACpIA,CACX,CACE,OAAAJ,GAAatlC,EAAe,CAAC,CAC3B,IAAK,QACL,MAAO,SAAe7C,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KAEH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,SAClB,CAAW,EAEH,IAAK,MACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,aAAa59C,EAAQ,GAAK,EAAG,CAAC,EACnC49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACK8Q,CACT,EAAE1C,EAAM,ECxEG2C,IAAuC,SAAU8lC,EAAS,CACnErB,GAAUzkC,EAAyB8lC,CAAO,EAC1C,IAAIN,EAASV,GAAa9kC,CAAuB,EACjD,SAASA,GAA0B,CACjC,IAAIylC,EACJR,GAAgB,KAAMjlC,CAAuB,EAC7C,QAAS42B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACpIA,CACX,CACE,OAAAJ,GAAarlC,EAAyB,CAAC,CACrC,IAAK,QACL,MAAO,SAAe9C,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KAEH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,SAClB,CAAW,EAEH,IAAK,MACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,QAAQgc,EAAY,CAC/B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,QAAQgc,EAAY,CAC9B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,aAAa59C,EAAQ,GAAK,EAAG,CAAC,EACnC49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACK+Q,CACT,EAAE3C,EAAM,ECvEG4C,IAA2B,SAAU6lC,EAAS,CACvDrB,GAAUxkC,EAAa6lC,CAAO,EAC9B,IAAIN,EAASV,GAAa7kC,CAAW,EACrC,SAASA,GAAc,CACrB,IAAIwlC,EACJR,GAAgB,KAAMhlC,CAAW,EACjC,QAAS22B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACtIH,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EACvDA,CACX,CACE,OAAAJ,GAAaplC,EAAa,CAAC,CACzB,IAAK,QACL,MAAO,SAAe/C,EAAYxc,EAAOQ,EAAO,CAC9C,IAAIwd,EAAgB,SAAuBrtD,EAAO,CAChD,OAAOA,EAAQ,CAChB,EACD,OAAQqvC,EAAK,CAEX,IAAK,IACH,OAAO8c,GAASG,GAAoBL,GAAgB,MAAOJ,CAAU,EAAGwB,CAAa,EAEvF,IAAK,KACH,OAAOlB,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,OACP,GAAGwB,CAAa,EAEnB,IAAK,MACH,OAAOxd,EAAM,MAAMgc,EAAY,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY59C,EAAO,CAAC,EACzB49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKgR,CACT,EAAE5C,EAAM,EC5EG6C,IAAqC,SAAU4lC,EAAS,CACjErB,GAAUvkC,EAAuB4lC,CAAO,EACxC,IAAIN,EAASV,GAAa5kC,CAAqB,EAC/C,SAASA,GAAwB,CAC/B,IAAIulC,EACJR,GAAgB,KAAM/kC,CAAqB,EAC3C,QAAS02B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC/HA,CACX,CACE,OAAAJ,GAAanlC,EAAuB,CAAC,CACnC,IAAK,QACL,MAAO,SAAehD,EAAYxc,EAAOQ,EAAO,CAC9C,IAAIwd,EAAgB,SAAuBrtD,EAAO,CAChD,OAAOA,EAAQ,CAChB,EACD,OAAQqvC,EAAK,CAEX,IAAK,IACH,OAAO8c,GAASG,GAAoBL,GAAgB,MAAOJ,CAAU,EAAGwB,CAAa,EAEvF,IAAK,KACH,OAAOlB,GAASM,GAAa,EAAGZ,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,OACP,GAAGwB,CAAa,EAEnB,IAAK,MACH,OAAOxd,EAAM,MAAMgc,EAAY,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,MAAMgc,EAAY,CAC7B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,MAAMgc,EAAY,CAC5B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY59C,EAAO,CAAC,EACzB49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKiR,CACT,EAAE7C,EAAM,ECjFO,SAAS0oC,IAAW9E,EAAW+E,EAAW/jF,EAAS,CAChE6+E,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvBjpC,EAAO2xB,GAAUqc,CAAS,EAC1BzkD,EAAOqhD,GAAW3zC,EAAMhtC,CAAO,EAAI+1C,EACvC,OAAA/I,EAAK,WAAWA,EAAK,WAAU,EAAK1N,EAAO,CAAC,EACrC0N,CACT,CCAO,IAAIkR,IAA+B,SAAU2lC,EAAS,CAC3DrB,GAAUtkC,EAAiB2lC,CAAO,EAClC,IAAIN,EAASV,GAAa3kC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAIslC,EACJR,GAAgB,KAAM9kC,CAAe,EACrC,QAASy2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC/HA,CACX,CACE,OAAAJ,GAAallC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAejD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChD,OAAO+/E,GAAe+D,IAAW92C,EAAM59C,EAAO4Q,CAAO,EAAGA,CAAO,CACrE,CACA,CAAG,CAAC,EACKk+C,CACT,EAAE9C,EAAM,EC/CO,SAAS4oC,IAAchF,EAAWiF,EAAc,CAC7DpF,GAAa,EAAG,SAAS,EACzB,IAAI7xC,EAAOJ,GAAOoyC,CAAS,EACvBhpC,EAAU0xB,GAAUuc,CAAY,EAChC3kD,EAAOwgD,GAAc9yC,CAAI,EAAIgJ,EACjC,OAAAhJ,EAAK,WAAWA,EAAK,WAAU,EAAK1N,EAAO,CAAC,EACrC0N,CACT,CCAO,IAAImR,IAA6B,SAAU0lC,EAAS,CACzDrB,GAAUrkC,EAAe0lC,CAAO,EAChC,IAAIN,EAASV,GAAa1kC,CAAa,EACvC,SAASA,GAAgB,CACvB,IAAIqlC,EACJR,GAAgB,KAAM7kC,CAAa,EACnC,QAASw2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,GAAG,EAC9DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACpIA,CACX,CACE,OAAAJ,GAAajlC,EAAe,CAAC,CAC3B,IAAK,QACL,MAAO,SAAelD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAOswF,GAAkBsE,IAAch3C,EAAM59C,CAAK,CAAC,CACzD,CACA,CAAG,CAAC,EACK+uD,CACT,EAAE/C,EAAM,EC1CJ2B,IAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/DC,IAA0B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAGlEoB,IAA0B,SAAUylC,EAAS,CACtDrB,GAAUpkC,EAAYylC,CAAO,EAC7B,IAAIN,EAASV,GAAazkC,CAAU,EACpC,SAASA,GAAa,CACpB,IAAIolC,EACJR,GAAgB,KAAM5kC,CAAU,EAChC,QAASu2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,cAAe,CAAC,EAC/DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC1HA,CACX,CACE,OAAAJ,GAAahlC,EAAY,CAAC,CACxB,IAAK,QACL,MAAO,SAAenD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,KAAMJ,CAAU,EAC7D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBjO,EAAM59C,EAAO,CACpC,IAAIq/C,EAAOzB,EAAK,eAAgB,EAC5BiQ,EAAaT,GAAgB/N,CAAI,EACjC+B,EAAQxD,EAAK,YAAa,EAC9B,OAAIiQ,EACK7tD,GAAS,GAAKA,GAAS4tD,IAAwBxM,CAAK,EAEpDphD,GAAS,GAAKA,GAAS2tD,IAAcvM,CAAK,CAEzD,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAaxD,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,WAAW59C,CAAK,EACrB49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKoR,CACT,EAAEhD,EAAM,ECtDGiD,IAA+B,SAAUwlC,EAAS,CAC3DrB,GAAUnkC,EAAiBwlC,CAAO,EAClC,IAAIN,EAASV,GAAaxkC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAImlC,EACJR,GAAgB,KAAM3kC,CAAe,EACrC,QAASs2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,cAAe,CAAC,EAC/DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACzIA,CACX,CACE,OAAAJ,GAAa/kC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAepD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOid,GAAoBL,GAAgB,UAAWJ,CAAU,EAClE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBjO,EAAM59C,EAAO,CACpC,IAAIq/C,EAAOzB,EAAK,eAAgB,EAC5BiQ,EAAaT,GAAgB/N,CAAI,EACrC,OAAIwO,EACK7tD,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAEtC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY,EAAG59C,CAAK,EACzB49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKqR,CACT,EAAEjD,EAAM,ECvDO,SAAS8oC,GAAUlF,EAAWmF,EAAUnkF,EAAS,CAC9D,IAAIggF,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,EAC9G1B,GAAa,EAAG,SAAS,EACzB,IAAI9wC,EAAiBC,GAAmB,EACpCE,EAAew5B,IAAWsY,GAAQC,GAASC,GAASC,EAAwBngF,GAAY,KAA6B,OAASA,EAAQ,gBAAkB,MAAQmgF,IAA0B,OAASA,EAAwBngF,GAAY,OAAuCogF,EAAkBpgF,EAAQ,UAAY,MAAQogF,IAAoB,SAAmBC,EAAwBD,EAAgB,WAAa,MAAQC,IAA0B,OAAtL,OAAwMA,EAAsB,gBAAkB,MAAQH,IAAU,OAASA,EAAQnyC,EAAe,gBAAkB,MAAQkyC,IAAU,OAASA,GAASK,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,gBAAkB,MAAQP,IAAS,OAASA,EAAO,CAAC,EAGp4B,GAAI,EAAE9xC,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI,WAAW,kDAAkD,EAEzE,IAAIlB,EAAOJ,GAAOoyC,CAAS,EACvB1wC,EAAMo5B,GAAUyc,CAAQ,EACxBhnC,EAAanQ,EAAK,UAAW,EAC7B26B,EAAYr5B,EAAM,EAClB8O,GAAYuqB,EAAY,GAAK,EAC7BroC,GAAQ8d,EAAWlP,EAAe,EAAI,GAAKI,EAAM6O,EACrD,OAAAnQ,EAAK,WAAWA,EAAK,WAAU,EAAK1N,CAAI,EACjC0N,CACT,CCdO,IAAIsR,IAAyB,SAAUulC,EAAS,CACrDrB,GAAUlkC,EAAWulC,CAAO,EAC5B,IAAIN,EAASV,GAAavkC,CAAS,EACnC,SAASA,GAAY,CACnB,IAAIklC,EACJR,GAAgB,KAAM1kC,CAAS,EAC/B,QAASq2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC5FA,CACX,CACE,OAAAJ,GAAa9kC,EAAW,CAAC,CACvB,IAAK,QACL,MAAO,SAAerD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOQ,EAAM,IAAIgc,EAAY,CAC3B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,SACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChD,OAAAgtC,EAAOk3C,GAAUl3C,EAAM59C,EAAO4Q,CAAO,EACrCgtC,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKsR,CACT,EAAElD,EAAM,EC9EGmD,IAA8B,SAAUslC,EAAS,CAC1DrB,GAAUjkC,EAAgBslC,CAAO,EACjC,IAAIN,EAASV,GAAatkC,CAAc,EACxC,SAASA,GAAiB,CACxB,IAAIilC,EACJR,GAAgB,KAAMzkC,CAAc,EACpC,QAASo2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACzIA,CACX,CACE,OAAAJ,GAAa7kC,EAAgB,CAAC,CAC5B,IAAK,QACL,MAAO,SAAetD,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACvD,IAAIy8C,EAAgB,SAAuBrtD,EAAO,CAChD,IAAIiuD,EAAgB,KAAK,OAAOjuD,EAAQ,GAAK,CAAC,EAAI,EAClD,OAAQA,EAAQ4Q,EAAQ,aAAe,GAAK,EAAIq9C,CACjD,EACD,OAAQ5e,EAAK,CAEX,IAAK,IACL,IAAK,KAEH,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,KACP,GAAGwB,CAAa,EAEnB,IAAK,MACH,OAAOxd,EAAM,IAAIgc,EAAY,CAC3B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,SACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChD,OAAAgtC,EAAOk3C,GAAUl3C,EAAM59C,EAAO4Q,CAAO,EACrCgtC,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKuR,CACT,EAAEnD,EAAM,EC3FGoD,IAAwC,SAAUqlC,EAAS,CACpErB,GAAUhkC,EAA0BqlC,CAAO,EAC3C,IAAIN,EAASV,GAAarkC,CAAwB,EAClD,SAASA,GAA2B,CAClC,IAAIglC,EACJR,GAAgB,KAAMxkC,CAAwB,EAC9C,QAASm2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACzIA,CACX,CACE,OAAAJ,GAAa5kC,EAA0B,CAAC,CACtC,IAAK,QACL,MAAO,SAAevD,EAAYxc,EAAOQ,EAAOj/B,EAAS,CACvD,IAAIy8C,EAAgB,SAAuBrtD,EAAO,CAChD,IAAIiuD,EAAgB,KAAK,OAAOjuD,EAAQ,GAAK,CAAC,EAAI,EAClD,OAAQA,EAAQ4Q,EAAQ,aAAe,GAAK,EAAIq9C,CACjD,EACD,OAAQ5e,EAAK,CAEX,IAAK,IACL,IAAK,KAEH,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOlB,GAAStc,EAAM,cAAcgc,EAAY,CAC9C,KAAM,KACP,GAAGwB,CAAa,EAEnB,IAAK,MACH,OAAOxd,EAAM,IAAIgc,EAAY,CAC3B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,QACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,SACH,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAEH,IAAK,OACL,QACE,OAAOhc,EAAM,IAAIgc,EAAY,CAC3B,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO4Q,EAAS,CAChD,OAAAgtC,EAAOk3C,GAAUl3C,EAAM59C,EAAO4Q,CAAO,EACrCgtC,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKwR,CACT,EAAEpD,EAAM,ECjGO,SAASgpC,IAAapF,EAAWmF,EAAU,CACxDtF,GAAa,EAAG,SAAS,EACzB,IAAIvwC,EAAMo5B,GAAUyc,CAAQ,EACxB71C,EAAM,IAAM,IACdA,EAAMA,EAAM,GAEd,IAAIJ,EAAe,EACflB,EAAOJ,GAAOoyC,CAAS,EACvB7hC,EAAanQ,EAAK,UAAW,EAC7B26B,EAAYr5B,EAAM,EAClB8O,GAAYuqB,EAAY,GAAK,EAC7BroC,GAAQ8d,EAAWlP,EAAe,EAAI,GAAKI,EAAM6O,EACrD,OAAAnQ,EAAK,WAAWA,EAAK,WAAU,EAAK1N,CAAI,EACjC0N,CACT,CCRO,IAAIyR,IAA4B,SAAUolC,EAAS,CACxDrB,GAAU/jC,EAAcolC,CAAO,EAC/B,IAAIN,EAASV,GAAapkC,CAAY,EACtC,SAASA,GAAe,CACtB,IAAI+kC,EACJR,GAAgB,KAAMvkC,CAAY,EAClC,QAASk2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACzIA,CACX,CACE,OAAAJ,GAAa3kC,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,SAAexD,EAAYxc,EAAOQ,EAAO,CAC9C,IAAIwd,EAAgB,SAAuBrtD,EAAO,CAChD,OAAIA,IAAU,EACL,EAEFA,CACR,EACD,OAAQqvC,EAAK,CAEX,IAAK,IACL,IAAK,KAEH,OAAOod,GAAapd,EAAM,OAAQwc,CAAU,EAE9C,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,KAClB,CAAW,EAEH,IAAK,MACH,OAAOM,GAAStc,EAAM,IAAIgc,EAAY,CACpC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAAGwB,CAAa,EAEnB,IAAK,QACH,OAAOlB,GAAStc,EAAM,IAAIgc,EAAY,CACpC,MAAO,SACP,QAAS,YACV,GAAGwB,CAAa,EAEnB,IAAK,SACH,OAAOlB,GAAStc,EAAM,IAAIgc,EAAY,CACpC,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAAGwB,CAAa,EAEnB,IAAK,OACL,QACE,OAAOlB,GAAStc,EAAM,IAAIgc,EAAY,CACpC,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,QACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,IAAIgc,EAAY,CAC1B,MAAO,SACP,QAAS,YACV,GAAGwB,CAAa,CAC3B,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkBtP,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,CACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAOo3C,IAAap3C,EAAM59C,CAAK,EAC/B49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBA,CACb,CACA,CAAG,CAAC,EACKyR,CACT,EAAErD,EAAM,EC9FGsD,IAA0B,SAAUmlC,EAAS,CACtDrB,GAAU9jC,EAAYmlC,CAAO,EAC7B,IAAIN,EAASV,GAAankC,CAAU,EACpC,SAASA,GAAa,CACpB,IAAI8kC,EACJR,GAAgB,KAAMtkC,CAAU,EAChC,QAASi2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC5FA,CACX,CACE,OAAAJ,GAAa1kC,EAAY,CAAC,CACxB,IAAK,QACL,MAAO,SAAezD,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOQ,EAAM,UAAUgc,EAAY,CACjC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,OACL,QACE,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC9C49C,CACb,CACA,CAAG,CAAC,EACK0R,CACT,EAAEtD,EAAM,ECvDGuD,IAAkC,SAAUklC,EAAS,CAC9DrB,GAAU7jC,EAAoBklC,CAAO,EACrC,IAAIN,EAASV,GAAalkC,CAAkB,EAC5C,SAASA,GAAqB,CAC5B,IAAI6kC,EACJR,GAAgB,KAAMrkC,CAAkB,EACxC,QAASg2B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EAC5FA,CACX,CACE,OAAAJ,GAAazkC,EAAoB,CAAC,CAChC,IAAK,QACL,MAAO,SAAe1D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOQ,EAAM,UAAUgc,EAAY,CACjC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,OACL,QACE,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC9C49C,CACb,CACA,CAAG,CAAC,EACK2R,CACT,EAAEvD,EAAM,ECvDGwD,IAA+B,SAAUilC,EAAS,CAC3DrB,GAAU5jC,EAAiBilC,CAAO,EAClC,IAAIN,EAASV,GAAajkC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAI4kC,EACJR,GAAgB,KAAMpkC,CAAe,EACrC,QAAS+1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,GAAG,CAAC,EAClFA,CACX,CACE,OAAAJ,GAAaxkC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAe3D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOQ,EAAM,UAAUgc,EAAY,CACjC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,QACH,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,SACP,QAAS,YACrB,CAAW,EACH,IAAK,OACL,QACE,OAAOhc,EAAM,UAAUgc,EAAY,CACjC,MAAO,OACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,cACP,QAAS,YACrB,CAAW,GAAKhc,EAAM,UAAUgc,EAAY,CAChC,MAAO,SACP,QAAS,YACrB,CAAW,CACX,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY+O,GAAqB3sD,CAAK,EAAG,EAAG,EAAG,CAAC,EAC9C49C,CACb,CACA,CAAG,CAAC,EACK4R,CACT,EAAExD,EAAM,ECtDGyD,IAA+B,SAAUglC,EAAS,CAC3DrB,GAAU3jC,EAAiBglC,CAAO,EAClC,IAAIN,EAASV,GAAahkC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAI2kC,EACJR,GAAgB,KAAMnkC,CAAe,EACrC,QAAS81B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACvFA,CACX,CACE,OAAAJ,GAAavkC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAe5D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,IAAImuD,EAAOvQ,EAAK,YAAW,GAAM,GACjC,OAAIuQ,GAAQnuD,EAAQ,GAClB49C,EAAK,YAAY59C,EAAQ,GAAI,EAAG,EAAG,CAAC,EAC3B,CAACmuD,GAAQnuD,IAAU,GAC5B49C,EAAK,YAAY,EAAG,EAAG,EAAG,CAAC,EAE3BA,EAAK,YAAY59C,EAAO,EAAG,EAAG,CAAC,EAE1B49C,CACb,CACA,CAAG,CAAC,EACK6R,CACT,EAAEzD,EAAM,EChDG0D,IAA+B,SAAU+kC,EAAS,CAC3DrB,GAAU1jC,EAAiB+kC,CAAO,EAClC,IAAIN,EAASV,GAAa/jC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAI0kC,EACJR,GAAgB,KAAMlkC,CAAe,EACrC,QAAS61B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACjGA,CACX,CACE,OAAAJ,GAAatkC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAe7D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,YAAY59C,EAAO,EAAG,EAAG,CAAC,EACxB49C,CACb,CACA,CAAG,CAAC,EACK8R,CACT,EAAE1D,EAAM,ECzCG2D,IAA+B,SAAU8kC,EAAS,CAC3DrB,GAAUzjC,EAAiB8kC,CAAO,EAClC,IAAIN,EAASV,GAAa9jC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAIykC,EACJR,GAAgB,KAAMjkC,CAAe,EACrC,QAAS41B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACvFA,CACX,CACE,OAAAJ,GAAarkC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAe9D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,IAAImuD,EAAOvQ,EAAK,YAAW,GAAM,GACjC,OAAIuQ,GAAQnuD,EAAQ,GAClB49C,EAAK,YAAY59C,EAAQ,GAAI,EAAG,EAAG,CAAC,EAEpC49C,EAAK,YAAY59C,EAAO,EAAG,EAAG,CAAC,EAE1B49C,CACb,CACA,CAAG,CAAC,EACK+R,CACT,EAAE3D,EAAM,EC9CG4D,IAA+B,SAAU6kC,EAAS,CAC3DrB,GAAUxjC,EAAiB6kC,CAAO,EAClC,IAAIN,EAASV,GAAa7jC,CAAe,EACzC,SAASA,GAAkB,CACzB,IAAIwkC,EACJR,GAAgB,KAAMhkC,CAAe,EACrC,QAAS21B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAAC,EACjGA,CACX,CACE,OAAAJ,GAAapkC,EAAiB,CAAC,CAC7B,IAAK,QACL,MAAO,SAAe/D,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,QAASJ,CAAU,EAChE,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,MAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,IAAIinD,EAAQjnD,GAAS,GAAKA,EAAQ,GAAKA,EACvC,OAAA49C,EAAK,YAAYqJ,EAAO,EAAG,EAAG,CAAC,EACxBrJ,CACb,CACA,CAAG,CAAC,EACKgS,CACT,EAAE5D,EAAM,EC1CG6D,IAA4B,SAAU4kC,EAAS,CACxDrB,GAAUvjC,EAAc4kC,CAAO,EAC/B,IAAIN,EAASV,GAAa5jC,CAAY,EACtC,SAASA,GAAe,CACtB,IAAIukC,EACJR,GAAgB,KAAM/jC,CAAY,EAClC,QAAS01B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,GAAG,CAAC,EACxEA,CACX,CACE,OAAAJ,GAAankC,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,SAAehE,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,OAAQJ,CAAU,EAC/D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,QAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,cAAc59C,EAAO,EAAG,CAAC,EACvB49C,CACb,CACA,CAAG,CAAC,EACKiS,CACT,EAAE7D,EAAM,ECzCG8D,IAA4B,SAAU2kC,EAAS,CACxDrB,GAAUtjC,EAAc2kC,CAAO,EAC/B,IAAIN,EAASV,GAAa3jC,CAAY,EACtC,SAASA,GAAe,CACtB,IAAIskC,EACJR,GAAgB,KAAM9jC,CAAY,EAClC,QAASy1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,GAAG,CAAC,EACxEA,CACX,CACE,OAAAJ,GAAalkC,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,SAAejE,EAAYxc,EAAOQ,EAAO,CAC9C,OAAQR,EAAK,CACX,IAAK,IACH,OAAOid,GAAoBL,GAAgB,OAAQJ,CAAU,EAC/D,IAAK,KACH,OAAOhc,EAAM,cAAcgc,EAAY,CACrC,KAAM,QAClB,CAAW,EACH,QACE,OAAOY,GAAapd,EAAM,OAAQwc,CAAU,CACtD,CACA,CACA,EAAK,CACD,IAAK,WACL,MAAO,SAAkB9N,EAAO/9C,EAAO,CACrC,OAAOA,GAAS,GAAKA,GAAS,EACpC,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa49C,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,cAAc59C,EAAO,CAAC,EACpB49C,CACb,CACA,CAAG,CAAC,EACKkS,CACT,EAAE9D,EAAM,EC1CG+D,IAAsC,SAAU0kC,EAAS,CAClErB,GAAUrjC,EAAwB0kC,CAAO,EACzC,IAAIN,EAASV,GAAa1jC,CAAsB,EAChD,SAASA,GAAyB,CAChC,IAAIqkC,EACJR,GAAgB,KAAM7jC,CAAsB,EAC5C,QAASw1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,GAAG,CAAC,EACxEA,CACX,CACE,OAAAJ,GAAajkC,EAAwB,CAAC,CACpC,IAAK,QACL,MAAO,SAAelE,EAAYxc,EAAO,CACvC,IAAIge,EAAgB,SAAuBrtD,EAAO,CAChD,OAAO,KAAK,MAAMA,EAAQ,KAAK,IAAI,GAAI,CAACqvC,EAAM,OAAS,CAAC,CAAC,CAC1D,EACD,OAAO8c,GAASM,GAAapd,EAAM,OAAQwc,CAAU,EAAGwB,CAAa,CAC3E,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAazP,EAAM2P,EAAQvtD,EAAO,CACvC,OAAA49C,EAAK,mBAAmB59C,CAAK,EACtB49C,CACb,CACA,CAAG,CAAC,EACKmS,CACT,EAAE/D,EAAM,EC7BGgE,IAAsC,SAAUykC,EAAS,CAClErB,GAAUpjC,EAAwBykC,CAAO,EACzC,IAAIN,EAASV,GAAazjC,CAAsB,EAChD,SAASA,GAAyB,CAChC,IAAIokC,EACJR,GAAgB,KAAM5jC,CAAsB,EAC5C,QAASu1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,GAAG,CAAC,EAC7EA,CACX,CACE,OAAAJ,GAAahkC,EAAwB,CAAC,CACpC,IAAK,QACL,MAAO,SAAenE,EAAYxc,EAAO,CACvC,OAAQA,EAAK,CACX,IAAK,IACH,OAAOkd,GAAqBL,GAAiB,qBAAsBL,CAAU,EAC/E,IAAK,KACH,OAAOU,GAAqBL,GAAiB,MAAOL,CAAU,EAChE,IAAK,OACH,OAAOU,GAAqBL,GAAiB,qBAAsBL,CAAU,EAC/E,IAAK,QACH,OAAOU,GAAqBL,GAAiB,wBAAyBL,CAAU,EAClF,IAAK,MACL,QACE,OAAOU,GAAqBL,GAAiB,SAAUL,CAAU,CAC3E,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM+N,EAAO3rD,EAAO,CACtC,OAAI2rD,EAAM,eACD/N,EAEF,IAAI,KAAKA,EAAK,QAAO,EAAK59C,CAAK,CAC5C,CACA,CAAG,CAAC,EACKgwD,CACT,EAAEhE,EAAM,ECzCGiE,IAAiC,SAAUwkC,EAAS,CAC7DrB,GAAUnjC,EAAmBwkC,CAAO,EACpC,IAAIN,EAASV,GAAaxjC,CAAiB,EAC3C,SAASA,GAAoB,CAC3B,IAAImkC,EACJR,GAAgB,KAAM3jC,CAAiB,EACvC,QAASs1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,CAAC,IAAK,IAAK,GAAG,CAAC,EAC7EA,CACX,CACE,OAAAJ,GAAa/jC,EAAmB,CAAC,CAC/B,IAAK,QACL,MAAO,SAAepE,EAAYxc,EAAO,CACvC,OAAQA,EAAK,CACX,IAAK,IACH,OAAOkd,GAAqBL,GAAiB,qBAAsBL,CAAU,EAC/E,IAAK,KACH,OAAOU,GAAqBL,GAAiB,MAAOL,CAAU,EAChE,IAAK,OACH,OAAOU,GAAqBL,GAAiB,qBAAsBL,CAAU,EAC/E,IAAK,QACH,OAAOU,GAAqBL,GAAiB,wBAAyBL,CAAU,EAClF,IAAK,MACL,QACE,OAAOU,GAAqBL,GAAiB,SAAUL,CAAU,CAC3E,CACA,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAajO,EAAM+N,EAAO3rD,EAAO,CACtC,OAAI2rD,EAAM,eACD/N,EAEF,IAAI,KAAKA,EAAK,QAAO,EAAK59C,CAAK,CAC5C,CACA,CAAG,CAAC,EACKiwD,CACT,EAAEjE,EAAM,EC1CGkE,IAAsC,SAAUukC,EAAS,CAClErB,GAAUljC,EAAwBukC,CAAO,EACzC,IAAIN,EAASV,GAAavjC,CAAsB,EAChD,SAASA,GAAyB,CAChC,IAAIkkC,EACJR,GAAgB,KAAM1jC,CAAsB,EAC5C,QAASq1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,GAAG,EACjEA,CACX,CACE,OAAAJ,GAAa9jC,EAAwB,CAAC,CACpC,IAAK,QACL,MAAO,SAAerE,EAAY,CAChC,OAAOW,GAAqBX,CAAU,CAC5C,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa9N,EAAOwP,EAAQvtD,EAAO,CACxC,MAAO,CAAC,IAAI,KAAKA,EAAQ,GAAI,EAAG,CAC9B,eAAgB,EACxB,CAAO,CACP,CACA,CAAG,CAAC,EACKkwD,CACT,EAAElE,EAAM,EC5BGmE,IAA2C,SAAUskC,EAAS,CACvErB,GAAUjjC,EAA6BskC,CAAO,EAC9C,IAAIN,EAASV,GAAatjC,CAA2B,EACrD,SAASA,GAA8B,CACrC,IAAIikC,EACJR,GAAgB,KAAMzjC,CAA2B,EACjD,QAASo1B,EAAO,UAAU,OAAQx8E,EAAO,IAAI,MAAMw8E,CAAI,EAAGniF,EAAO,EAAGA,EAAOmiF,EAAMniF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAAgxF,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOprF,CAAI,CAAC,EACrDkrF,GAAgBf,GAAuBkB,CAAK,EAAG,WAAY,EAAE,EAC7DH,GAAgBf,GAAuBkB,CAAK,EAAG,qBAAsB,GAAG,EACjEA,CACX,CACE,OAAAJ,GAAa7jC,EAA6B,CAAC,CACzC,IAAK,QACL,MAAO,SAAetE,EAAY,CAChC,OAAOW,GAAqBX,CAAU,CAC5C,CACA,EAAK,CACD,IAAK,MACL,MAAO,SAAa9N,EAAOwP,EAAQvtD,EAAO,CACxC,MAAO,CAAC,IAAI,KAAKA,CAAK,EAAG,CACvB,eAAgB,EACxB,CAAO,CACP,CACA,CAAG,CAAC,EACKmwD,CACT,EAAEnE,EAAM,ECsCGoC,IAAU,CACnB,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,IACP,EAAG,IAAIC,GACT,EClFIvH,IAAyB,wDAIzBC,IAA6B,oCAC7BC,IAAsB,eACtBC,IAAoB,MACpBqH,IAAsB,KACtBpH,IAAgC,WA+SrB,SAASpZ,IAAMqlD,EAAiBC,EAAmBC,EAAoBvkF,EAAS,CAC1F,IAACggF,EAAMI,EAAiBH,EAAOC,EAAOkB,EAAOX,EAAgEH,EAAuBC,EAAwBgB,EAAOC,EAAOC,EAAOtB,EAAgEyB,EAAwBC,EAC5QhD,GAAa,EAAG,SAAS,EACzB,IAAI5jC,EAAa,OAAOopC,CAAe,EACnC97B,EAAe,OAAO+7B,CAAiB,EACvCv2C,EAAiBC,GAAmB,EACpCsK,GAAU0nC,GAAQI,EAA2D,UAA6B,MAAQA,IAAoB,OAASA,EAAkBryC,EAAe,UAAY,MAAQiyC,IAAS,OAASA,EAAOznC,GACjO,GAAI,CAACD,EAAO,MACV,MAAM,IAAI,WAAW,oCAAoC,EAE3D,IAAI7D,EAAwBizB,IAAWuY,GAASC,GAASkB,GAASX,EAAiE,UAA4C,MAAQA,IAA0B,OAASA,EAAiE,UAA4P,MAAQW,IAAU,OAASA,EAAQrzC,EAAe,yBAA2B,MAAQmyC,IAAU,OAASA,GAASI,EAAwBvyC,EAAe,UAAY,MAAQuyC,IAA0B,SAAmBC,EAAyBD,EAAsB,WAAa,MAAQC,IAA2B,OAAzG,OAA2HA,EAAuB,yBAA2B,MAAQN,IAAU,OAASA,EAAQ,CAAC,EAGv7B,GAAI,EAAExrC,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAI,WAAW,2DAA2D,EAElF,IAAIvG,EAAew5B,IAAW6Z,GAASC,GAASC,GAAStB,EAAiE,UAAmC,MAAQA,IAA0B,OAASA,EAAiE,UAAmP,MAAQsB,IAAU,OAASA,EAAQ1zC,EAAe,gBAAkB,MAAQyzC,IAAU,OAASA,GAASI,EAAyB7zC,EAAe,UAAY,MAAQ6zC,IAA2B,SAAmBC,EAAyBD,EAAuB,WAAa,MAAQC,IAA2B,OAA1G,OAA4HA,EAAuB,gBAAkB,MAAQN,IAAU,OAASA,EAAQ,CAAC,EAG74B,GAAI,EAAErzC,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI,WAAW,kDAAkD,EAEzE,GAAIqa,IAAiB,GACnB,OAAItN,IAAe,GACVrO,GAAO23C,CAAkB,EAEzB,IAAI,KAAK,GAAG,EAGvB,IAAI5kC,EAAe,CACjB,sBAAuBlL,EACvB,aAAcvG,EACd,OAAQoK,CACT,EAGGhuB,EAAU,CAAC,IAAIs1B,GAA4B,EAC3C1f,EAASqoB,EAAa,MAAMtQ,GAA0B,EAAE,IAAI,SAAUa,EAAW,CACnF,IAAIC,EAAiBD,EAAU,CAAC,EAChC,GAAIC,KAAkB1B,GAAgB,CACpC,IAAI2B,EAAgB3B,GAAe0B,CAAc,EACjD,OAAOC,EAAcF,EAAWR,EAAO,UAAU,CACvD,CACI,OAAOQ,CACR,GAAE,KAAK,EAAE,EAAE,MAAMd,GAAsB,EACpC6H,EAAa,CAAE,EACf2kC,EAAYtC,GAA2BhiD,CAAM,EAC/CukD,EACF,GAAI,CACF,IAAIC,EAAQ,UAAiB,CAC3B,IAAIjmD,EAAQgmD,EAAM,MACd,EAAEzkF,GAAY,MAA8BA,EAAQ,8BAAgC03C,GAAyBjZ,CAAK,GACpHsiD,GAAoBtiD,EAAO8pB,EAAc87B,CAAe,EAEtD,EAAErkF,GAAY,MAA8BA,EAAQ,+BAAiCy3C,GAA0BhZ,CAAK,GACtHsiD,GAAoBtiD,EAAO8pB,EAAc87B,CAAe,EAE1D,IAAItrC,EAAiBta,EAAM,CAAC,EACxBiC,EAAS8c,IAAQzE,CAAc,EACnC,GAAIrY,EAAQ,CACV,IAAIof,GAAqBpf,EAAO,mBAChC,GAAI,MAAM,QAAQof,EAAkB,EAAG,CACrC,IAAIC,GAAoBF,EAAW,KAAK,SAAUG,GAAW,CAC3D,OAAOF,GAAmB,SAASE,GAAU,KAAK,GAAKA,GAAU,QAAUjH,CACvF,CAAW,EACD,GAAIgH,GACF,MAAM,IAAI,WAAW,sCAAsC,OAAOA,GAAkB,UAAW,SAAS,EAAE,OAAOthB,EAAO,oBAAoB,CAAC,CAEzJ,SAAmBiC,EAAO,qBAAuB,KAAOmf,EAAW,OAAS,EAClE,MAAM,IAAI,WAAW,sCAAsC,OAAOphB,EAAO,wCAAwC,CAAC,EAEpHohB,EAAW,KAAK,CACd,MAAO9G,EACP,UAAWta,CACrB,CAAS,EACD,IAAI+U,GAAc9S,EAAO,IAAIua,EAAYxc,EAAO6Z,EAAO,MAAOqH,CAAY,EAC1E,GAAI,CAACnM,GACH,MAAO,CACL,EAAG,IAAI,KAAK,GAAG,CAChB,EAEHlpB,EAAQ,KAAKkpB,GAAY,MAAM,EAC/ByH,EAAazH,GAAY,IACjC,KAAa,CACL,GAAIuF,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WAAW,iEAAmEW,EAAiB,GAAG,EAW9G,GAPIta,IAAU,KACZA,EAAQ,IACCsa,IAAmB,MAC5Bta,EAAQwa,IAAmBxa,CAAK,GAI9Bwc,EAAW,QAAQxc,CAAK,IAAM,EAChCwc,EAAaA,EAAW,MAAMxc,EAAM,MAAM,MAE1C,OAAO,CACL,EAAG,IAAI,KAAK,GAAG,CAChB,CAEX,CACK,EACD,IAAK+lD,EAAU,EAAC,EAAI,EAAEC,EAAQD,EAAU,EAAG,GAAE,MAAO,CAClD,IAAIG,EAAOD,EAAO,EAClB,GAAI9F,GAAQ+F,CAAI,IAAM,SAAU,OAAOA,EAAK,CAClD,CAGG,OAAQ5vF,EAAK,CACZyvF,EAAU,EAAEzvF,CAAG,CACnB,QAAY,CACRyvF,EAAU,EAAG,CACjB,CACE,GAAIvpC,EAAW,OAAS,GAAKuE,IAAoB,KAAKvE,CAAU,EAC9D,OAAO,IAAI,KAAK,GAAG,EAErB,IAAIgF,EAAwB31B,EAAQ,IAAI,SAAUprB,EAAQ,CACxD,OAAOA,EAAO,QACf,GAAE,KAAK,SAAUiF,EAAGC,EAAG,CACtB,OAAOA,EAAID,CACZ,GAAE,OAAO,SAAU02C,EAAUthD,EAAO5B,EAAO,CAC1C,OAAOA,EAAM,QAAQkjD,CAAQ,IAAMthD,CACvC,CAAG,EAAE,IAAI,SAAUshD,EAAU,CACzB,OAAOvwB,EAAQ,OAAO,SAAUprB,EAAQ,CACtC,OAAOA,EAAO,WAAa27C,CAC5B,GAAE,KAAK,SAAU12C,EAAGC,EAAG,CACtB,OAAOA,EAAE,YAAcD,EAAE,WAC/B,CAAK,CACL,CAAG,EAAE,IAAI,SAAU+7C,EAAa,CAC5B,OAAOA,EAAY,CAAC,CACxB,CAAG,EACGlT,EAAOJ,GAAO23C,CAAkB,EACpC,GAAI,MAAMv3C,EAAK,QAAO,CAAE,EACtB,OAAO,IAAI,KAAK,GAAG,EAIrB,IAAIgC,GAAUswC,GAAgBtyC,EAAM+B,GAAgC/B,CAAI,CAAC,EACrE+N,GAAQ,CAAE,EACV6pC,EAAa1C,GAA2BjiC,CAAqB,EAC/D4kC,EACF,GAAI,CACF,IAAKD,EAAW,EAAC,EAAI,EAAEC,EAASD,EAAW,EAAG,GAAE,MAAO,CACrD,IAAI1lF,EAAS2lF,EAAO,MACpB,GAAI,CAAC3lF,EAAO,SAAS8vC,GAAS2Q,CAAY,EACxC,OAAO,IAAI,KAAK,GAAG,EAErB,IAAI3mD,EAASkG,EAAO,IAAI8vC,GAAS+L,GAAO4E,CAAY,EAEhD,MAAM,QAAQ3mD,CAAM,GACtBg2C,GAAUh2C,EAAO,CAAC,EAClBu9B,IAAOwkB,GAAO/hD,EAAO,CAAC,CAAC,GAGvBg2C,GAAUh2C,CAElB,CACG,OAAQjE,EAAK,CACZ6vF,EAAW,EAAE7vF,CAAG,CACpB,QAAY,CACR6vF,EAAW,EAAG,CAClB,CACE,OAAO51C,EACT,CACA,SAASiK,IAAmBpB,EAAO,CACjC,OAAOA,EAAM,MAAMK,GAAmB,EAAE,CAAC,EAAE,QAAQC,IAAmB,GAAG,CAC3E,CC1eA,IAAIH,IAAyB,iCACzBE,IAAsB,eACtBC,IAAoB,MACpBC,IAAgC,WA0DrB,SAAS+H,IAAY6+B,EAAW3mC,EAAW,CACxDwmC,GAAa,EAAG,SAAS,EACzB,IAAIjmC,EAAehM,GAAOoyC,CAAS,EACnC,GAAI,CAAChvC,GAAQ4I,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAM3C,IAAIrC,EAAiBxH,GAAgC6J,CAAY,EAC7D5J,EAAUswC,GAAgB1mC,EAAcrC,CAAc,EACtDrW,EAASmY,EAAU,MAAML,GAAsB,EAGnD,GAAI,CAAC9X,EAAQ,MAAO,GACpB,IAAIlnC,EAASknC,EAAO,IAAI,SAAU4Y,EAAW,CAE3C,GAAIA,IAAc,KAChB,MAAO,IAET,IAAIC,EAAiBD,EAAU,CAAC,EAChC,GAAIC,IAAmB,IACrB,OAAOE,IAAmBH,CAAS,EAErC,IAAIM,EAAY3D,GAAWsD,CAAc,EACzC,GAAIK,EACF,OAAOA,EAAUpK,EAAS8J,CAAS,EAErC,GAAIC,EAAe,MAAMX,GAA6B,EACpD,MAAM,IAAI,WAAW,iEAAmEW,EAAiB,GAAG,EAE9G,OAAOD,CACX,CAAG,EAAE,KAAK,EAAE,EACV,OAAO9/C,CACT,CACA,SAASigD,IAAmBpB,EAAO,CACjC,IAAIuI,EAAUvI,EAAM,MAAMK,GAAmB,EAC7C,OAAKkI,EAGEA,EAAQ,CAAC,EAAE,QAAQjI,IAAmB,GAAG,EAFvCN,CAGX,CChGe,SAASitC,IAAW9F,EAAWC,EAAa,CACzDJ,GAAa,EAAG,SAAS,EACzB,IAAI3xC,EAASw6B,GAAUuX,CAAW,EAClC,OAAOC,IAAWF,EAAW,CAAC9xC,CAAM,CACtC,CCzBA,IAAIr8C,GAAEoC,GAAEutB,GAAEjyB,GAAE0zF,GAAE3kF,GAAEqvC,GAAEo4C,GAAE/uF,GAAEjG,GAAE,CAAE,EAAC+Q,GAAE,GAAGqD,IAAE,oEAAoE,SAASuS,GAAE7lB,EAAEoC,EAAE,CAAC,QAAQutB,KAAKvtB,EAAEpC,EAAE2vB,CAAC,EAAEvtB,EAAEutB,CAAC,EAAE,OAAO3vB,CAAC,CAAC,SAAS+B,GAAE/B,EAAE,CAAC,IAAIoC,EAAEpC,EAAE,WAAWoC,GAAGA,EAAE,YAAYpC,CAAC,CAAC,CAAC,SAASm0F,GAAE/xF,EAAEutB,EAAEjyB,EAAE,CAAC,IAAI0zF,EAAE3kF,EAAEqvC,EAAEo4C,EAAE,GAAG,IAAIp4C,KAAKnsB,EAASmsB,GAAP,MAASs1C,EAAEzhE,EAAEmsB,CAAC,EAASA,GAAP,MAASrvC,EAAEkjB,EAAEmsB,CAAC,EAAEo4C,EAAEp4C,CAAC,EAAEnsB,EAAEmsB,CAAC,EAAE,GAAG,UAAU,OAAO,IAAIo4C,EAAE,SAAS,UAAU,OAAO,EAAEl0F,GAAE,KAAK,UAAU,CAAC,EAAEtC,GAAe,OAAO0E,GAAnB,YAA4BA,EAAE,cAAR,KAAqB,IAAI05C,KAAK15C,EAAE,aAAsB8xF,EAAEp4C,CAAC,IAAZ,SAAgBo4C,EAAEp4C,CAAC,EAAE15C,EAAE,aAAa05C,CAAC,GAAG,OAAO1pC,GAAEhQ,EAAE8xF,EAAE9C,EAAE3kF,EAAE,IAAI,CAAC,CAAC,SAAS2F,GAAEpS,EAAEtC,EAAE0zF,EAAE3kF,EAAEqvC,EAAE,CAAC,IAAIo4C,EAAE,CAAC,KAAKl0F,EAAE,MAAMtC,EAAE,IAAI0zF,EAAE,IAAI3kF,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,YAAY,OAAO,IAAUqvC,GAAE,EAAEnsB,EAAG,EAAE,OAAamsB,GAAN,MAAe15C,GAAE,OAAR,MAAeA,GAAE,MAAM8xF,CAAC,EAAEA,CAAC,CAAC,SAAS10D,IAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,SAASvgC,GAAEe,EAAE,CAAC,OAAOA,EAAE,QAAQ,CAAC,SAAS+kC,IAAE/kC,EAAEoC,EAAEutB,EAAEjyB,EAAE0zF,EAAE,CAAC,IAAI3kF,EAAE,IAAIA,KAAKkjB,EAAeljB,IAAb,YAAwBA,IAAR,OAAWA,KAAKrK,GAAGm3B,GAAEv5B,EAAEyM,EAAE,KAAKkjB,EAAEljB,CAAC,EAAE/O,CAAC,EAAE,IAAI+O,KAAKrK,EAAEgvF,GAAe,OAAOhvF,EAAEqK,CAAC,GAAtB,YAAsCA,IAAb,YAAwBA,IAAR,OAAqBA,IAAV,SAAyBA,IAAZ,WAAekjB,EAAEljB,CAAC,IAAIrK,EAAEqK,CAAC,GAAG8sB,GAAEv5B,EAAEyM,EAAErK,EAAEqK,CAAC,EAAEkjB,EAAEljB,CAAC,EAAE/O,CAAC,CAAC,CAAC,SAAS6V,GAAEvT,EAAEoC,EAAEutB,EAAE,CAAOvtB,EAAE,CAAC,IAAT,IAAWpC,EAAE,YAAYoC,EAAQutB,GAAE,EAAI,EAAE3vB,EAAEoC,CAAC,EAAQutB,GAAN,KAAQ,GAAa,OAAOA,GAAjB,UAAoBrc,IAAE,KAAKlR,CAAC,EAAEutB,EAAEA,EAAE,IAAI,CAAC,SAAS4J,GAAEv5B,EAAEoC,EAAEutB,EAAEjyB,EAAE0zF,EAAE,CAAC,IAAI3kF,EAAEzM,EAAE,GAAaoC,IAAV,QAAY,GAAa,OAAOutB,GAAjB,SAAmB3vB,EAAE,MAAM,QAAQ2vB,MAAM,CAAC,GAAa,OAAOjyB,GAAjB,WAAqBsC,EAAE,MAAM,QAAQtC,EAAE,IAAIA,EAAE,IAAI0E,KAAK1E,EAAEiyB,GAAGvtB,KAAKutB,GAAGpc,GAAEvT,EAAE,MAAMoC,EAAE,EAAE,EAAE,GAAGutB,EAAE,IAAIvtB,KAAKutB,EAAEjyB,GAAGiyB,EAAEvtB,CAAC,IAAI1E,EAAE0E,CAAC,GAAGmR,GAAEvT,EAAE,MAAMoC,EAAEutB,EAAEvtB,CAAC,CAAC,CAAC,SAAeA,EAAE,CAAC,IAAT,KAAkBA,EAAE,CAAC,IAAT,IAAWqK,EAAErK,KAAKA,EAAEA,EAAE,QAAQ,WAAW,EAAE,GAAGA,EAAEA,EAAE,gBAAgBpC,EAAEoC,EAAE,YAAW,EAAG,MAAM,CAAC,EAAEA,EAAE,MAAM,CAAC,EAAEpC,EAAE,IAAIA,EAAE,EAAE,IAAIA,EAAE,EAAEoC,EAAEqK,CAAC,EAAEkjB,EAAEA,EAAEjyB,GAAGsC,EAAE,iBAAiBoC,EAAEqK,EAAE22D,GAAE98C,GAAE7Z,CAAC,EAAEzM,EAAE,oBAAoBoC,EAAEqK,EAAE22D,GAAE98C,GAAE7Z,CAAC,UAAsCrK,IAA5B,0BAA8B,CAAC,GAAGgvF,EAAEhvF,EAAEA,EAAE,QAAQ,cAAc,GAAG,EAAE,QAAQ,SAAS,GAAG,UAAoBA,IAAV,SAAwBA,IAAX,UAAuBA,IAAT,QAAqBA,IAAT,QAAqBA,IAAT,QAAyBA,IAAb,YAA6BA,IAAb,YAAgBA,KAAKpC,EAAE,GAAG,CAACA,EAAEoC,CAAC,EAAQutB,GAAE,GAAK,MAAM3vB,CAAC,MAAS,EAAc,OAAO2vB,GAAnB,aAA6BA,GAAN,MAAcA,IAAL,IAAYvtB,EAAE,QAAQ,GAAG,GAAjB,GAAmBpC,EAAE,gBAAgBoC,CAAC,EAAEpC,EAAE,aAAaoC,EAAEutB,CAAC,EAAE,CAAC,CAAC,SAASrJ,GAAEtmB,EAAE,CAACoxF,GAAE,GAAG,GAAG,CAAC,OAAO,KAAK,EAAEpxF,EAAE,KAAK,EAAE,EAAEoC,GAAE,MAAMA,GAAE,MAAMpC,CAAC,EAAEA,CAAC,CAAC,QAAC,CAAQoxF,GAAE,EAAE,CAAC,CAAC,SAAShuB,GAAEpjE,EAAE,CAACoxF,GAAE,GAAG,GAAG,CAAC,OAAO,KAAK,EAAEpxF,EAAE,KAAK,EAAE,EAAEoC,GAAE,MAAMA,GAAE,MAAMpC,CAAC,EAAEA,CAAC,CAAC,QAAC,CAAQoxF,GAAE,EAAE,CAAC,CAAC,SAAS7pF,GAAEvH,EAAEoC,EAAE,CAAC,KAAK,MAAMpC,EAAE,KAAK,QAAQoC,CAAC,CAAC,SAASgyF,GAAEp0F,EAAEoC,EAAE,CAAC,GAASA,GAAN,KAAQ,OAAOpC,EAAE,GAAGo0F,GAAEp0F,EAAE,GAAGA,EAAE,GAAG,IAAI,QAAQA,CAAC,EAAE,CAAC,EAAE,KAAK,QAAQ2vB,EAAEvtB,EAAEpC,EAAE,IAAI,OAAOoC,IAAI,IAAUutB,EAAE3vB,EAAE,IAAIoC,CAAC,IAAhB,MAA0ButB,EAAE,KAAR,KAAY,OAAOA,EAAE,IAAI,OAAkB,OAAO3vB,EAAE,MAArB,WAA0Bo0F,GAAEp0F,CAAC,EAAE,IAAI,CAAC,SAASq0F,GAAEr0F,EAAE,CAAC,IAAIoC,EAAEutB,EAAE,IAAU3vB,EAAEA,EAAE,KAAX,MAAsBA,EAAE,KAAR,KAAY,CAAC,IAAIA,EAAE,IAAIA,EAAE,IAAI,KAAK,KAAKoC,EAAE,EAAEA,EAAEpC,EAAE,IAAI,OAAOoC,IAAI,IAAUutB,EAAE3vB,EAAE,IAAIoC,CAAC,IAAhB,MAA0ButB,EAAE,KAAR,KAAY,CAAC3vB,EAAE,IAAIA,EAAE,IAAI,KAAK2vB,EAAE,IAAI,KAAK,CAAC,OAAO0kE,GAAEr0F,CAAC,CAAC,CAAC,CAAC,SAASs0F,IAAEt0F,EAAE,CAACoxF,GAAE,WAAWpxF,CAAC,EAAEk0F,GAAEl0F,CAAC,CAAC,CAAC,SAASu0F,GAAEv0F,EAAE,EAAE,CAACA,EAAE,MAAMA,EAAE,IAAI,KAAKyM,GAAE,KAAKzM,CAAC,GAAG,CAACw0F,GAAE,OAAO14C,KAAI15C,GAAE,sBAAsB05C,GAAE15C,GAAE,oBAAoBkyF,KAAGE,EAAC,CAAC,CAAC,SAASA,IAAG,CAAC,IAAIx0F,EAAEoC,EAAEutB,EAAEjyB,EAAE0zF,EAAEt1C,EAAEo4C,EAAE/uF,EAAE,IAAIsH,GAAE,KAAK,SAASzM,EAAEoC,EAAE,CAAC,OAAOpC,EAAE,IAAI,IAAIoC,EAAE,IAAI,GAAG,CAAC,EAAEpC,EAAEyM,GAAE,MAAK,GAAIzM,EAAE,MAAMoC,EAAEqK,GAAE,OAAO/O,EAAE,OAAO0zF,EAAE,OAAO8C,GAAGp4C,GAAGnsB,EAAE3vB,GAAG,KAAK,KAAKmF,EAAEwqB,EAAE,OAAOjyB,EAAE,IAAI0zF,EAAEvrE,GAAE,GAAGi2B,CAAC,GAAG,IAAIA,EAAE,IAAI,EAAE24C,GAAEtvF,EAAE22C,EAAEs1C,EAAEzhE,EAAE,IAAaxqB,EAAE,kBAAX,OAAiC22C,EAAE,KAAR,KAAY,CAACo4C,CAAC,EAAE,KAAKx2F,EAAQw2F,GAAEE,GAAEt4C,CAAC,EAAIA,EAAE,GAAG,EAAE44C,GAAEh3F,EAAEo+C,CAAC,EAAEA,EAAE,KAAKo4C,GAAGG,GAAEv4C,CAAC,GAAGrvC,GAAE,OAAOrK,GAAGqK,GAAE,KAAK,SAASzM,EAAEoC,EAAE,CAAC,OAAOpC,EAAE,IAAI,IAAIoC,EAAE,IAAI,GAAG,CAAC,GAAGoyF,GAAE,IAAI,CAAC,CAAC,SAASG,GAAE30F,EAAEoC,EAAEutB,EAAEjyB,EAAE0zF,EAAE3kF,EAAE,EAAEynF,EAAE/uF,EAAEmO,EAAE,CAAC,IAAIuS,EAAE9jB,EAAEoyF,EAAE30D,EAAEuF,EAAExxB,EAAEgmB,EAAEjT,EAAE5oB,GAAGA,EAAE,KAAKuS,GAAEmzD,EAAE98C,EAAE,OAAO,IAAIqJ,EAAE,IAAI,GAAG9J,EAAE,EAAEA,EAAEzjB,EAAE,OAAOyjB,IAAI,IAAU2Z,EAAE7P,EAAE,IAAI9J,CAAC,GAAS2Z,EAAEp9B,EAAEyjB,CAAC,IAAZ,MAA2B,OAAO2Z,GAAlB,UAAoB,KAAe,OAAOA,GAAjB,UAA8B,OAAOA,GAAjB,UAA8B,OAAOA,GAAjB,SAAmBptB,GAAE,KAAKotB,EAAE,KAAK,KAAKA,CAAC,EAAE,MAAM,QAAQA,CAAC,EAAEptB,GAAEnT,GAAE,CAAC,SAASugC,CAAC,EAAE,KAAK,KAAK,IAAI,EAAEA,EAAE,IAAI,EAAEptB,GAAEotB,EAAE,KAAKA,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI,KAAKA,EAAE,GAAG,EAAEA,IAArP,KAAwP,CAAC,GAAGA,EAAE,GAAG7P,EAAE6P,EAAE,IAAI7P,EAAE,IAAI,GAAUwkE,EAAE7tE,EAAET,CAAC,KAAb,MAAiBsuE,GAAG30D,EAAE,KAAK20D,EAAE,KAAK30D,EAAE,OAAO20D,EAAE,KAAK7tE,EAAET,CAAC,EAAE,WAAY,KAAI9jB,EAAE,EAAEA,EAAEqhE,EAAErhE,IAAI,CAAC,IAAIoyF,EAAE7tE,EAAEvkB,CAAC,IAAIy9B,EAAE,KAAK20D,EAAE,KAAK30D,EAAE,OAAO20D,EAAE,KAAK,CAAC7tE,EAAEvkB,CAAC,EAAE,OAAO,KAAK,CAACoyF,EAAE,IAAI,CAACM,GAAEz0F,EAAEw/B,EAAE20D,EAAEA,GAAGj1F,GAAEkyF,EAAE3kF,EAAE,EAAEynF,EAAE/uF,EAAEmO,CAAC,EAAEyxB,EAAEvF,EAAE,KAAKz9B,EAAEy9B,EAAE,MAAM20D,EAAE,KAAKpyF,IAAIw3B,IAAIA,EAAE,IAAI46D,EAAE,KAAK56D,EAAE,KAAK46D,EAAE,IAAI,KAAK30D,CAAC,EAAEjG,EAAE,KAAKx3B,EAAEy9B,EAAE,KAAKuF,EAAEvF,CAAC,GAASuF,GAAN,MAAexxB,GAAN,OAAUA,EAAEwxB,GAAe,OAAOvF,EAAE,MAArB,YAA2BA,EAAE,MAAM20D,EAAE,IAAI30D,EAAE,IAAIr6B,EAAEyvF,GAAEp1D,EAAEr6B,EAAEnF,CAAC,EAAEmF,EAAE0vF,GAAE70F,EAAEw/B,EAAE20D,EAAE7tE,EAAEye,EAAE5/B,CAAC,EAAc,OAAOwqB,EAAE,MAArB,aAA4BA,EAAE,IAAIxqB,IAAIA,GAAGgvF,EAAE,KAAKhvF,GAAGA,EAAE,YAAYnF,IAAImF,EAAEivF,GAAED,CAAC,EAAE,CAAC,IAAIxkE,EAAE,IAAIpc,EAAEsS,EAAEu9C,EAAEv9C,KAAWS,EAAET,CAAC,GAAT,OAAyB,OAAO8J,EAAE,MAArB,YAAiCrJ,EAAET,CAAC,EAAE,KAAX,MAAgBS,EAAET,CAAC,EAAE,KAAK8J,EAAE,MAAMA,EAAE,IAAImlE,GAAEp3F,CAAC,EAAE,aAAaq3F,GAAEzuE,EAAET,CAAC,EAAES,EAAET,CAAC,CAAC,GAAG,GAAG0T,EAAE,IAAI1T,EAAE,EAAEA,EAAE0T,EAAE,OAAO1T,IAAImvE,GAAEz7D,EAAE1T,CAAC,EAAE0T,EAAE,EAAE1T,CAAC,EAAE0T,EAAE,EAAE1T,CAAC,CAAC,CAAC,CAAC,SAAS+uE,GAAE50F,EAAEoC,EAAEutB,EAAE,CAAC,QAAQjyB,EAAE0zF,EAAEpxF,EAAE,IAAIyM,EAAE,EAAE2kF,GAAG3kF,EAAE2kF,EAAE,OAAO3kF,KAAK/O,EAAE0zF,EAAE3kF,CAAC,KAAK/O,EAAE,GAAGsC,EAAEoC,EAAc,OAAO1E,EAAE,MAArB,WAA0Bk3F,GAAEl3F,EAAE0E,EAAEutB,CAAC,EAAEklE,GAAEllE,EAAEjyB,EAAEA,EAAE0zF,EAAE1zF,EAAE,IAAI0E,CAAC,GAAG,OAAOA,CAAC,CAAC,SAASyvB,GAAE7xB,EAAEoC,EAAE,CAAC,OAAOA,EAAEA,GAAG,GAASpC,GAAN,MAAoB,OAAOA,GAAlB,YAAsB,MAAM,QAAQA,CAAC,EAAEA,EAAE,KAAK,SAASA,EAAE,CAAC6xB,GAAE7xB,EAAEoC,CAAC,CAAC,CAAC,EAAEA,EAAE,KAAKpC,CAAC,GAAGoC,CAAC,CAAC,SAASyyF,GAAE70F,EAAEoC,EAAEutB,EAAEjyB,EAAE0zF,EAAE3kF,EAAE,CAAC,IAAI,EAAEynF,EAAE/uF,EAAE,GAAY/C,EAAE,MAAX,OAAe,EAAEA,EAAE,IAAIA,EAAE,IAAI,eAAqButB,GAAN,MAASyhE,GAAG3kF,GAAS2kF,EAAE,YAAR,KAAmBpxF,EAAE,GAASyM,GAAN,MAASA,EAAE,aAAazM,EAAEA,EAAE,YAAYoxF,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI8C,EAAEznF,EAAEtH,EAAE,GAAG+uF,EAAEA,EAAE,cAAc/uF,EAAEzH,EAAE,OAAOyH,GAAG,EAAE,GAAG+uF,GAAG9C,EAAE,MAAMpxF,EAAEA,EAAE,aAAaoxF,EAAE3kF,CAAC,EAAE,EAAEA,CAAC,CAAC,OAAgB,IAAT,OAAW,EAAE2kF,EAAE,WAAW,CAAC,SAAS0D,GAAE90F,EAAE,CAAC,IAAIoC,EAAEutB,EAAEjyB,EAAE,GAASsC,EAAE,MAAR,MAAwB,OAAOA,EAAE,MAAnB,SAAwB,OAAOA,EAAE,IAAI,GAAGA,EAAE,KAAI,IAAIoC,EAAEpC,EAAE,IAAI,OAAO,EAAEoC,GAAG,EAAEA,IAAI,IAAIutB,EAAE3vB,EAAE,IAAIoC,CAAC,KAAK1E,EAAEo3F,GAAEnlE,CAAC,GAAG,OAAOjyB,EAAE,OAAO,IAAI,CAAC,SAAS+2F,GAAEz0F,EAAE2vB,EAAEjyB,EAAE0zF,EAAE3kF,EAAEqvC,EAAEo4C,EAAE/uF,EAAEjG,EAAE,CAAC,IAAI+Q,EAAEqD,EAAEvR,EAAEoyF,EAAE/hF,EAAEotB,EAAEuF,EAAExxB,EAAE,EAAE,EAAE6vD,EAAEgxB,EAAEC,EAAEC,EAAEC,EAAEC,EAAE7kE,EAAE,KAAK,GAAYA,EAAE,cAAX,OAAuB,OAAO,KAAWjyB,EAAE,KAAR,OAAcwB,EAAExB,EAAE,IAAIyH,EAAEwqB,EAAE,IAAIjyB,EAAE,IAAIiyB,EAAE,IAAI,KAAKmsB,EAAE,CAAC32C,CAAC,IAAI8K,EAAE7N,GAAE,MAAM6N,EAAE0f,CAAC,EAAE,GAAG,CAAC3vB,EAAE,GAAe,OAAOw0F,GAAnB,WAAqB,CAAC,GAAGjhF,EAAEoc,EAAE,MAAM,GAAG1f,EAAEukF,EAAE,cAAcpD,EAAEnhF,EAAE,GAAG,EAAE,EAAEA,EAAE,EAAE,EAAE,MAAM,MAAMA,EAAE,GAAGmhF,EAAE1zF,EAAE,IAAIqnC,GAAGzxB,EAAEqc,EAAE,IAAIjyB,EAAE,KAAK,GAAG4V,EAAE,KAAK,cAAckhF,GAAGA,EAAE,UAAU,OAAO7kE,EAAE,IAAIrc,EAAE,IAAIkhF,EAAEjhF,EAAE,CAAC,GAAGoc,EAAE,IAAIrc,EAAE,IAAI/L,GAAEgM,EAAE,CAAC,EAAED,EAAE,YAAYkhF,EAAElhF,EAAE,OAAO2hF,KAAG,GAAG,EAAE,IAAI3hF,CAAC,EAAEA,EAAE,MAAMC,EAAED,EAAE,QAAQA,EAAE,MAAM,CAAE,GAAEA,EAAE,QAAQ,EAAEA,EAAE,IAAI89E,EAAErvF,EAAEuR,EAAE,IAAI,GAAGA,EAAE,IAAI,GAAGA,EAAE,IAAI,IAAUA,EAAE,KAAR,OAAcA,EAAE,IAAIA,EAAE,OAAakhF,EAAE,0BAAR,OAAmClhF,EAAE,KAAKA,EAAE,QAAQA,EAAE,IAAIuS,GAAE,CAAE,EAACvS,EAAE,GAAG,GAAGuS,GAAEvS,EAAE,IAAIkhF,EAAE,yBAAyBjhF,EAAED,EAAE,GAAG,CAAC,GAAG6gF,EAAE7gF,EAAE,MAAMlB,EAAEkB,EAAE,MAAMA,EAAE,IAAIqc,EAAE5tB,EAAQyyF,EAAE,0BAAR,MAAwClhF,EAAE,oBAAR,MAA4BA,EAAE,qBAA2BA,EAAE,mBAAR,MAA2BA,EAAE,IAAI,KAAKA,EAAE,iBAAiB,MAAM,CAAC,GAASkhF,EAAE,0BAAR,MAAkCjhF,IAAI4gF,GAAS7gF,EAAE,2BAAR,MAAmCA,EAAE,0BAA0BC,EAAE,CAAC,EAAE,CAACD,EAAE,KAAWA,EAAE,uBAAR,MAAoCA,EAAE,sBAAsBC,EAAED,EAAE,IAAI,CAAC,IAAtC,IAAyCqc,EAAE,MAAMjyB,EAAE,IAAI,CAAC,IAAIiyB,EAAE,MAAMjyB,EAAE,MAAM4V,EAAE,MAAMC,EAAED,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAI,IAAIqc,EAAE,IAAIjyB,EAAE,IAAIiyB,EAAE,IAAIjyB,EAAE,IAAIiyB,EAAE,IAAI,QAAQ,SAAS3vB,EAAE,CAACA,IAAIA,EAAE,GAAG2vB,EAAE,CAAC,EAAEyzC,EAAE,EAAEA,EAAE9vD,EAAE,IAAI,OAAO8vD,IAAI9vD,EAAE,IAAI,KAAKA,EAAE,IAAI8vD,CAAC,CAAC,EAAE9vD,EAAE,IAAI,CAAE,EAACA,EAAE,IAAI,QAAQ4gF,EAAE,KAAK5gF,CAAC,EAAE,MAAMtT,CAAC,CAAOsT,EAAE,qBAAR,MAA6BA,EAAE,oBAAoBC,EAAED,EAAE,IAAI,CAAC,EAAQA,EAAE,oBAAR,MAA4BA,EAAE,IAAI,KAAK,UAAU,CAACA,EAAE,mBAAmB6gF,EAAE/hF,EAAEotB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAGlsB,EAAE,QAAQ,EAAEA,EAAE,MAAMC,EAAED,EAAE,IAAItT,EAAEo0F,EAAEhyF,GAAE,IAAIiyF,EAAE,EAAE,cAAcG,GAAGA,EAAE,UAAU,OAAO,CAAC,IAAIlhF,EAAE,MAAMA,EAAE,IAAIA,EAAE,IAAI,GAAG8gF,GAAGA,EAAEzkE,CAAC,EAAE1f,EAAEqD,EAAE,OAAOA,EAAE,MAAMA,EAAE,MAAMA,EAAE,OAAO,EAAEghF,EAAE,EAAEA,EAAEhhF,EAAE,IAAI,OAAOghF,IAAIhhF,EAAE,IAAI,KAAKA,EAAE,IAAIghF,CAAC,CAAC,EAAEhhF,EAAE,IAAI,CAAE,MAAM,IAAGA,EAAE,IAAI,GAAG8gF,GAAGA,EAAEzkE,CAAC,EAAE1f,EAAEqD,EAAE,OAAOA,EAAE,MAAMA,EAAE,MAAMA,EAAE,OAAO,EAAEA,EAAE,MAAMA,EAAE,UAAUA,EAAE,KAAK,EAAE+gF,EAAE,IAAI/gF,EAAE,MAAMA,EAAE,IAAUA,EAAE,iBAAR,OAA0B89E,EAAEvrE,GAAEA,GAAE,GAAGurE,CAAC,EAAE99E,EAAE,iBAAiB,GAAGvR,GAASuR,EAAE,yBAAR,OAAkCksB,EAAElsB,EAAE,wBAAwB6gF,EAAE/hF,CAAC,GAAGmiF,EAAQtkF,GAAN,MAASA,EAAE,OAAOhR,IAASgR,EAAE,KAAR,KAAYA,EAAE,MAAM,SAASA,EAAE0kF,GAAE30F,EAAE,MAAM,QAAQu0F,CAAC,EAAEA,EAAE,CAACA,CAAC,EAAE5kE,EAAEjyB,EAAE0zF,EAAE3kF,EAAEqvC,EAAEo4C,EAAE/uF,EAAEjG,CAAC,EAAEoU,EAAE,KAAKqc,EAAE,IAAIA,EAAE,IAAI,KAAKrc,EAAE,IAAI,QAAQ4gF,EAAE,KAAK5gF,CAAC,EAAEyxB,IAAIzxB,EAAE,IAAIA,EAAE,GAAG,MAAMA,EAAE,IAAI,EAAE,MAAYwoC,GAAN,MAASnsB,EAAE,MAAMjyB,EAAE,KAAKiyB,EAAE,IAAIjyB,EAAE,IAAIiyB,EAAE,IAAIjyB,EAAE,KAAKiyB,EAAE,IAAIulE,IAAEx3F,EAAE,IAAIiyB,EAAEjyB,EAAE0zF,EAAE3kF,EAAEqvC,EAAEo4C,EAAEh1F,CAAC,GAAG+Q,EAAE7N,GAAE,SAAS6N,EAAE0f,CAAC,CAAC,OAAO3vB,EAAE,CAAC2vB,EAAE,IAAI,MAAMzwB,GAAS48C,GAAN,QAAWnsB,EAAE,IAAIxqB,EAAEwqB,EAAE,IAAI,CAAC,CAACzwB,EAAE48C,EAAEA,EAAE,QAAQ32C,CAAC,CAAC,EAAE,MAAM/C,GAAE,IAAIpC,EAAE2vB,EAAEjyB,CAAC,CAAC,CAAC,CAAC,SAASg3F,GAAE10F,EAAE2vB,EAAE,CAACvtB,GAAE,KAAKA,GAAE,IAAIutB,EAAE3vB,CAAC,EAAEA,EAAE,KAAK,SAAS2vB,EAAE,CAAC,GAAG,CAAC3vB,EAAE2vB,EAAE,IAAIA,EAAE,IAAI,CAAE,EAAC3vB,EAAE,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK2vB,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAACvtB,GAAE,IAAI,EAAEutB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAASulE,IAAE9yF,EAAEutB,EAAEjyB,EAAE0zF,EAAE3kF,EAAEqvC,EAAEo4C,EAAE/uF,EAAE,CAAC,IAAI8K,EAAEqD,EAAEuS,EAAEsuE,EAAEz2F,EAAE,MAAM0U,EAAEud,EAAE,MAAM6P,EAAE7P,EAAE,KAAK1wB,EAAE,EAAE,GAAWugC,IAAR,QAAY/yB,EAAE,IAAUqvC,GAAN,MAAQ,KAAK78C,EAAE68C,EAAE,OAAO78C,IAAI,IAAIgR,EAAE6rC,EAAE78C,CAAC,IAAI,iBAAiBgR,GAAG,CAAC,CAACuvB,IAAIA,EAAEvvB,EAAE,YAAYuvB,EAAMvvB,EAAE,WAAN,GAAgB,CAAC7N,EAAE6N,EAAE6rC,EAAE78C,CAAC,EAAE,KAAK,KAAK,EAAC,GAASmD,GAAN,KAAQ,CAAC,GAAUo9B,IAAP,KAAS,OAAO,SAAS,eAAeptB,CAAC,EAAEhQ,EAAEqK,EAAE,SAAS,gBAAgB,6BAA6B+yB,CAAC,EAAE,SAAS,cAAcA,EAAEptB,EAAE,IAAIA,CAAC,EAAE0pC,EAAE,KAAK32C,EAAE,EAAE,CAAC,GAAUq6B,IAAP,KAAS20D,IAAI/hF,GAAGjN,GAAG/C,EAAE,OAAOgQ,IAAIhQ,EAAE,KAAKgQ,OAAO,CAAC,GAAG0pC,EAAEA,GAAG97C,GAAE,KAAKoC,EAAE,UAAU,EAAEkR,GAAG6gF,EAAEz2F,EAAE,OAAOwB,IAAG,wBAAwB2mB,EAAEzT,EAAE,wBAAwB,CAACjN,EAAE,CAAC,GAAS22C,GAAN,KAAQ,IAAIq4C,EAAE,GAAGl1F,EAAE,EAAEA,EAAEmD,EAAE,WAAW,OAAOnD,IAAIk1F,EAAE/xF,EAAE,WAAWnD,CAAC,EAAE,IAAI,EAAEmD,EAAE,WAAWnD,CAAC,EAAE,OAAO4mB,GAAGvS,KAAKuS,IAAIvS,GAAGuS,EAAE,QAAQvS,EAAE,QAAQuS,EAAE,SAASzjB,EAAE,aAAaA,EAAE,UAAUyjB,GAAGA,EAAE,QAAQ,IAAI,CAAC,GAAGkf,IAAE3iC,EAAEgQ,EAAE+hF,EAAE1nF,EAAEtH,CAAC,EAAE0gB,EAAE8J,EAAE,IAAI,WAAW1wB,EAAE0wB,EAAE,MAAM,SAASglE,GAAEvyF,EAAE,MAAM,QAAQnD,CAAC,EAAEA,EAAE,CAACA,CAAC,EAAE0wB,EAAEjyB,EAAE0zF,EAAE3kF,GAAqB+yB,IAAlB,gBAAoBsc,EAAEo4C,EAAEp4C,EAAEA,EAAE,CAAC,EAAEp+C,EAAE,KAAK02F,GAAE12F,EAAE,CAAC,EAAEyH,CAAC,EAAQ22C,GAAN,KAAQ,IAAI78C,EAAE68C,EAAE,OAAO78C,KAAW68C,EAAE78C,CAAC,GAAT,MAAY8C,GAAE+5C,EAAE78C,CAAC,CAAC,EAAEkG,IAAI,UAAUiN,IAAanT,EAAEmT,EAAE,SAAd,SAAuBnT,IAAImD,EAAE,OAAoBo9B,IAAb,YAAgB,CAACvgC,GAAcugC,IAAX,UAAcvgC,IAAIk1F,EAAE,QAAQ56D,GAAEn3B,EAAE,QAAQnD,EAAEk1F,EAAE,MAAM,EAAE,EAAE,YAAY/hF,IAAanT,EAAEmT,EAAE,WAAd,QAAwBnT,IAAImD,EAAE,SAASm3B,GAAEn3B,EAAE,UAAUnD,EAAEk1F,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO/xF,CAAC,CAAC,SAAS4yF,GAAEh1F,EAAE2vB,EAAEjyB,EAAE,CAAC,GAAG,CAAa,OAAOsC,GAAnB,WAAqBA,EAAE2vB,CAAC,EAAE3vB,EAAE,QAAQ2vB,CAAC,OAAO,EAAE,CAACvtB,GAAE,IAAI,EAAE1E,CAAC,CAAC,CAAC,CAAC,SAASq3F,GAAE/0F,EAAE2vB,EAAEjyB,EAAE,CAAC,IAAI0zF,EAAE3kF,EAAE,GAAGrK,GAAE,SAASA,GAAE,QAAQpC,CAAC,GAAGoxF,EAAEpxF,EAAE,OAAOoxF,EAAE,SAASA,EAAE,UAAUpxF,EAAE,KAAKg1F,GAAE5D,EAAE,KAAKzhE,CAAC,IAAUyhE,EAAEpxF,EAAE,MAAX,KAAgB,CAAC,GAAGoxF,EAAE,qBAAqB,GAAG,CAACA,EAAE,sBAAsB,OAAOpxF,EAAE,CAACoC,GAAE,IAAIpC,EAAE2vB,CAAC,CAAC,CAACyhE,EAAE,KAAKA,EAAE,IAAI,KAAKpxF,EAAE,IAAI,MAAM,CAAC,GAAGoxF,EAAEpxF,EAAE,IAAI,IAAIyM,EAAE,EAAEA,EAAE2kF,EAAE,OAAO3kF,IAAI2kF,EAAE3kF,CAAC,GAAGsoF,GAAE3D,EAAE3kF,CAAC,EAAEkjB,EAAEjyB,GAAe,OAAOsC,EAAE,MAArB,UAAyB,EAAEtC,GAASsC,EAAE,KAAR,MAAa+B,GAAE/B,EAAE,GAAG,EAAEA,EAAE,GAAGA,EAAE,IAAIA,EAAE,IAAI,MAAM,CAAC,SAASi1F,IAAEj1F,EAAEoC,EAAEutB,EAAE,CAAC,OAAO,KAAK,YAAY3vB,EAAE2vB,CAAC,CAAC,CAAC,SAASwlE,GAAExlE,EAAEjyB,EAAE0zF,EAAE,CAAC,IAAI3kF,EAAEqvC,EAAEo4C,EAAE9xF,GAAE,IAAIA,GAAE,GAAGutB,EAAEjyB,CAAC,EAAEo+C,GAAGrvC,EAAc,OAAO2kF,GAAnB,YAAsB,KAAe1zF,EAAE,IAAIw2F,EAAE,CAAE,EAACO,GAAE/2F,EAAEiyB,GAAG,CAACljB,GAAG2kF,GAAG1zF,GAAG,IAAIy2F,GAAEl1F,GAAE,KAAK,CAAC0wB,CAAC,CAAC,EAAEmsB,GAAG58C,GAAEA,GAAWxB,EAAE,kBAAX,OAA2B,CAAC+O,GAAG2kF,EAAE,CAACA,CAAC,EAAEt1C,EAAE,KAAKp+C,EAAE,WAAWsC,GAAE,KAAKtC,EAAE,UAAU,EAAE,KAAKw2F,EAAE,CAACznF,GAAG2kF,EAAEA,EAAEt1C,EAAEA,EAAE,IAAIp+C,EAAE,WAAW+O,CAAC,EAAEioF,GAAER,EAAEvkE,CAAC,CAAC,CAA+O,SAASylE,IAAEp1F,EAAEoC,EAAE,CAAC,IAAIutB,EAAE,CAAC,IAAIvtB,EAAE,OAAO+C,KAAI,GAAGnF,EAAE,SAAS,SAAS,EAAEoC,EAAE,CAAC,OAAO,EAAE,SAASA,CAAC,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC,IAAIutB,EAAEjyB,EAAE,OAAO,KAAK,kBAAkBiyB,EAAE,CAAE,GAAEjyB,EAAE,CAAE,GAAE0E,CAAC,EAAE,KAAK,KAAK,gBAAgB,UAAU,CAAC,OAAO1E,CAAC,EAAE,KAAK,sBAAsB,SAASsC,EAAE,CAAC,KAAK,MAAM,QAAQA,EAAE,OAAO2vB,EAAE,KAAK,SAAS3vB,EAAE,CAACA,EAAE,IAAI,GAAGu0F,GAAEv0F,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAASA,EAAE,CAAC2vB,EAAE,KAAK3vB,CAAC,EAAE,IAAIoC,EAAEpC,EAAE,qBAAqBA,EAAE,qBAAqB,UAAU,CAAC2vB,EAAE,OAAOA,EAAE,QAAQ3vB,CAAC,EAAE,CAAC,EAAEoC,GAAGA,EAAE,KAAKpC,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO2vB,EAAE,SAAS,GAAGA,EAAE,SAAS,YAAYA,CAAC,CAAC3vB,GAAEiQ,GAAE,MAAM7N,GAAE,CAAC,IAAI,SAASpC,EAAEoC,EAAEutB,EAAEjyB,EAAE,CAAC,QAAQ0zF,EAAE3kF,EAAE,EAAErK,EAAEA,EAAE,IAAI,IAAIgvF,EAAEhvF,EAAE,MAAM,CAACgvF,EAAE,GAAG,GAAG,CAAC,IAAI3kF,EAAE2kF,EAAE,cAAoB3kF,EAAE,0BAAR,OAAmC2kF,EAAE,SAAS3kF,EAAE,yBAAyBzM,CAAC,CAAC,EAAE,EAAEoxF,EAAE,KAAWA,EAAE,mBAAR,OAA4BA,EAAE,kBAAkBpxF,EAAEtC,GAAG,CAAE,GAAE,EAAE0zF,EAAE,KAAK,EAAE,OAAOA,EAAE,IAAIA,CAAC,OAAOhvF,EAAE,CAACpC,EAAEoC,CAAC,CAAC,MAAMpC,CAAC,CAAC,EAAE2vB,GAAE,EAAEjyB,GAAE,SAASsC,EAAE,CAAC,OAAaA,GAAN,MAAkBA,EAAE,cAAX,MAAsB,EAAEoxF,GAAE,GAAG7pF,GAAE,UAAU,SAAS,SAASvH,EAAEoC,EAAE,CAAC,IAAIutB,EAAEA,EAAQ,KAAK,KAAX,MAAgB,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI9J,GAAE,GAAG,KAAK,KAAK,EAAc,OAAO7lB,GAAnB,aAAuBA,EAAEA,EAAE6lB,GAAE,CAAE,EAAC8J,CAAC,EAAE,KAAK,KAAK,GAAG3vB,GAAG6lB,GAAE8J,EAAE3vB,CAAC,EAAQA,GAAN,MAAS,KAAK,MAAMoC,GAAG,KAAK,IAAI,KAAKA,CAAC,EAAEmyF,GAAE,IAAI,EAAE,EAAEhtF,GAAE,UAAU,YAAY,SAASvH,EAAE,CAAC,KAAK,MAAM,KAAK,IAAI,GAAGA,GAAG,KAAK,IAAI,KAAKA,CAAC,EAAEu0F,GAAE,IAAI,EAAE,EAAEhtF,GAAE,UAAU,OAAOtI,GAAEwN,GAAE,CAAE,EAACynF,GAAc,OAAO,SAAnB,WAA2B,QAAQ,UAAU,KAAK,KAAK,QAAQ,QAAS,GAAE,WAAWM,GAAE,IAAI,EAAErvF,GAAE,ECAttU,IAAGsH,GAAEkjB,GAAEjyB,GAAMw2F,GAAE,CAAE,EAACh1F,GAAE,GAAGiG,GAAEnF,GAAE,IAAIsT,GAAEtT,GAAE,IAAI+B,GAAE/B,GAAE,OAAOoC,GAAEpC,GAAE,IAAIsmB,GAAEtmB,GAAE,QAAswD,SAASuT,KAAG,CAAC,QAAQ,EAAE,EAAE2gF,GAAE,MAAK,GAAI,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQnvD,EAAC,EAAE,EAAE,IAAI,IAAI,QAAQq+B,EAAC,EAAE,EAAE,IAAI,IAAI,EAAE,OAAO32D,EAAE,CAAC,EAAE,IAAI,IAAI,GAAGzM,GAAE,IAAIyM,EAAE,EAAE,GAAG,CAAC,CAAC,CAACzM,GAAE,IAAI,SAASA,EAAE,CAACyM,GAAE,KAAKtH,IAAGA,GAAEnF,CAAC,CAAC,EAAEA,GAAE,IAAI,SAASA,EAAE,CAACsT,IAAGA,GAAEtT,CAAC,EAAM,IAAItC,GAAG+O,GAAEzM,EAAE,KAAK,IAAItC,IAAIiyB,KAAIljB,IAAG/O,EAAE,IAAI,GAAG+O,GAAE,IAAI,CAAE,EAAC/O,EAAE,GAAG,QAAQ,SAASsC,EAAE,CAACA,EAAE,MAAMA,EAAE,GAAGA,EAAE,KAAKA,EAAE,IAAId,GAAEc,EAAE,IAAIA,EAAE,EAAE,MAAM,CAAC,IAAItC,EAAE,IAAI,QAAQqnC,EAAC,EAAErnC,EAAE,IAAI,QAAQ0lE,EAAC,EAAE1lE,EAAE,IAAI,CAAE,IAAGiyB,GAAEljB,EAAC,EAAEzM,GAAE,OAAO,SAAS,EAAE,CAAC+B,IAAGA,GAAE,CAAC,EAAE,IAAI+5C,EAAE,EAAE,IAAIA,GAAGA,EAAE,MAAMA,EAAE,IAAI,IAAI,SAAao4C,GAAE,KAAKp4C,CAAC,IAAZ,GAAep+C,KAAIsC,GAAE,yBAAyBtC,GAAEsC,GAAE,wBAAwB6xB,KAAGte,GAAC,GAAGuoC,EAAE,IAAI,GAAG,QAAQ,SAAS97C,EAAE,CAACA,EAAE,IAAIA,EAAE,IAAIA,EAAE,GAAGA,EAAE,MAAMd,KAAIc,EAAE,GAAGA,EAAE,KAAKA,EAAE,EAAE,OAAOA,EAAE,IAAId,EAAC,CAAC,GAAGywB,GAAEljB,GAAE,IAAI,EAAEzM,GAAE,IAAI,SAAS,EAAEyM,EAAE,CAACA,EAAE,KAAK,SAAS2kF,EAAE,CAAC,GAAG,CAACA,EAAE,IAAI,QAAQrsD,EAAC,EAAEqsD,EAAE,IAAIA,EAAE,IAAI,OAAO,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,IAAIhuB,GAAE,CAAC,CAAC,CAAC,CAAC,OAAOzzC,EAAE,CAACljB,EAAE,KAAK,SAASzM,EAAE,CAACA,EAAE,MAAMA,EAAE,IAAI,GAAG,CAAC,EAAEyM,EAAE,GAAGzM,GAAE,IAAI2vB,EAAEyhE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAEhvF,IAAGA,GAAE,EAAEqK,CAAC,CAAC,EAAEzM,GAAE,QAAQ,SAAS,EAAE,CAACsmB,IAAGA,GAAE,CAAC,EAAE,IAAI7Z,EAAEkjB,EAAE,EAAE,IAAIA,GAAGA,EAAE,MAAMA,EAAE,IAAI,GAAG,QAAQ,SAAS,EAAE,CAAC,GAAG,CAACoV,GAAE,CAAC,CAAC,OAAO/kC,EAAE,CAACyM,EAAEzM,CAAC,CAAC,CAAC,EAAE2vB,EAAE,IAAI,OAAOljB,GAAGzM,GAAE,IAAIyM,EAAEkjB,EAAE,GAAG,EAAE,EAAE,IAAI4J,GAAc,OAAO,uBAAnB,WAAyC,SAAS1H,IAAE7xB,EAAE,CAAC,IAAIoxF,EAAE,EAAE,UAAU,CAAC,aAAazhE,CAAC,EAAE4J,IAAG,qBAAqB63D,CAAC,EAAE,WAAWpxF,CAAC,CAAC,EAAE2vB,EAAE,WAAW,EAAE,GAAG,EAAE4J,KAAI63D,EAAE,sBAAsB,CAAC,EAAE,CAAC,SAASrsD,GAAE/kC,EAAE,CAAC,IAAIoxF,EAAE3kF,GAAEkjB,EAAE3vB,EAAE,IAAgB,OAAO2vB,GAAnB,aAAuB3vB,EAAE,IAAI,OAAO2vB,KAAKljB,GAAE2kF,CAAC,CAAC,SAAShuB,GAAEpjE,EAAE,CAAC,IAAIoxF,EAAE3kF,GAAEzM,EAAE,IAAIA,EAAE,KAAKyM,GAAE2kF,CAAC,CCAloF,SAAS73D,IAAEv5B,EAAEoxF,EAAE,CAAC,QAAQjsF,KAAKisF,EAAEpxF,EAAEmF,CAAC,EAAEisF,EAAEjsF,CAAC,EAAE,OAAOnF,CAAC,CAAC,SAASs0F,GAAEt0F,EAAEoxF,EAAE,CAAC,QAAQjsF,KAAKnF,EAAE,GAAgBmF,IAAb,YAAgB,EAAEA,KAAKisF,GAAG,MAAM,GAAG,QAAQ3kF,KAAK2kF,EAAE,GAAgB3kF,IAAb,YAAgBzM,EAAEyM,CAAC,IAAI2kF,EAAE3kF,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAA6D,SAAS22D,GAAEpjE,EAAE,CAAC,KAAK,MAAMA,CAAC,EAAiTojE,GAAE,UAAU,IAAIpjE,IAAG,qBAAqB,GAAGojE,GAAE,UAAU,sBAAsB,SAASpjE,EAAEoxF,EAAE,CAAC,OAAOkD,GAAE,KAAK,MAAMt0F,CAAC,GAAGs0F,GAAE,KAAK,MAAMlD,CAAC,CAAC,EAAE,IAAI7pF,GAAEpC,GAAE,IAAIA,GAAE,IAAI,SAASnF,EAAE,CAACA,EAAE,MAAMA,EAAE,KAAK,KAAKA,EAAE,MAAMA,EAAE,MAAM,IAAIA,EAAE,IAAIA,EAAE,IAAI,MAAMuH,IAAGA,GAAEvH,CAAC,CAAC,EAAuS,IAA2Mu0F,IAAEpvF,GAAE,IAAIA,GAAE,IAAI,SAASnF,EAAEoxF,EAAEjsF,EAAEsH,EAAE,CAAC,GAAGzM,EAAE,MAAK,QAAQ2vB,EAAEmsB,EAAEs1C,EAAEt1C,EAAEA,EAAE,IAAI,IAAInsB,EAAEmsB,EAAE,MAAMnsB,EAAE,IAAI,OAAayhE,EAAE,KAAR,OAAcA,EAAE,IAAIjsF,EAAE,IAAIisF,EAAE,IAAIjsF,EAAE,KAAKwqB,EAAE,IAAI3vB,EAAEoxF,CAAC,EAAEmD,IAAEv0F,EAAEoxF,EAAEjsF,EAAEsH,CAAC,CAAC,EAAE,IAAImoF,GAAEzvF,GAAE,QAAQ,SAAS2vF,GAAE90F,EAAEoxF,EAAEjsF,EAAE,CAAC,OAAOnF,IAAIA,EAAE,KAAKA,EAAE,IAAI,MAAMA,EAAE,IAAI,IAAI,GAAG,QAAQ,SAAS,EAAE,CAAa,OAAO,EAAE,KAArB,YAA0B,EAAE,IAAK,EAAC,EAAEA,EAAE,IAAI,IAAI,OAAaA,EAAEu5B,IAAE,GAAGv5B,CAAC,GAAG,KAAlB,OAAwBA,EAAE,IAAI,MAAMmF,IAAInF,EAAE,IAAI,IAAIoxF,GAAGpxF,EAAE,IAAI,MAAMA,EAAE,IAAIA,EAAE,KAAKA,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,OAAO80F,GAAE,EAAE1D,EAAEjsF,CAAC,CAAC,CAAC,GAAGnF,CAAC,CAAC,SAASq1F,GAAEr1F,EAAEoxF,EAAEjsF,EAAE,CAAC,OAAOnF,IAAIA,EAAE,IAAI,KAAKA,EAAE,IAAIA,EAAE,KAAKA,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,OAAOq1F,GAAE,EAAEjE,EAAEjsF,CAAC,CAAC,CAAC,EAAEnF,EAAE,KAAKA,EAAE,IAAI,MAAMoxF,IAAIpxF,EAAE,KAAKmF,EAAE,aAAanF,EAAE,IAAIA,EAAE,GAAG,EAAEA,EAAE,IAAI,IAAI,GAAGA,EAAE,IAAI,IAAImF,IAAInF,CAAC,CAAC,SAASm1F,IAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS3D,GAAExxF,EAAE,CAAC,IAAIoxF,EAAEpxF,EAAE,GAAG,IAAI,OAAOoxF,GAAGA,EAAE,KAAKA,EAAE,IAAIpxF,CAAC,CAAC,CAAqL,SAASs1F,IAAG,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,CAACnwF,GAAE,QAAQ,SAASnF,EAAE,CAAC,IAAIoxF,EAAEpxF,EAAE,IAAIoxF,GAAGA,EAAE,KAAKA,EAAE,IAAK,EAACA,GAAQpxF,EAAE,MAAP,KAAaA,EAAE,KAAK,MAAM40F,IAAGA,GAAE50F,CAAC,CAAC,GAAGm1F,GAAE,UAAU,IAAIn1F,IAAG,IAAI,SAASA,EAAEoxF,EAAE,CAAC,IAAIjsF,EAAEisF,EAAE,IAAI3kF,EAAE,KAAWA,EAAE,GAAR,OAAYA,EAAE,EAAE,IAAIA,EAAE,EAAE,KAAKtH,CAAC,EAAE,IAAIwqB,EAAE6hE,GAAE/kF,EAAE,GAAG,EAAEqvC,EAAE,GAAGp+C,EAAE,UAAU,CAACo+C,IAAIA,EAAE,GAAG32C,EAAE,IAAI,KAAKwqB,EAAEA,EAAEvtB,CAAC,EAAEA,EAAG,EAAC,EAAE+C,EAAE,IAAIzH,EAAE,IAAI0E,EAAE,UAAU,CAAC,GAAG,CAAC,EAAEqK,EAAE,IAAI,CAAC,GAAGA,EAAE,MAAM,IAAI,CAAC,IAAIzM,EAAEyM,EAAE,MAAM,IAAIA,EAAE,IAAI,IAAI,CAAC,EAAE4oF,GAAEr1F,EAAEA,EAAE,IAAI,IAAIA,EAAE,IAAI,GAAG,CAAC,CAAC,IAAIoxF,EAAE,IAAI3kF,EAAE,SAAS,CAAC,IAAIA,EAAE,IAAI,IAAI,CAAC,EAAE2kF,EAAE3kF,EAAE,EAAE,IAAG,GAAI2kF,EAAE,YAAW,CAAE,CAAC,EAAElyF,EAAOkyF,EAAE,MAAP,GAAW3kF,EAAE,OAAOvN,GAAGuN,EAAE,SAAS,CAAC,IAAIA,EAAE,IAAIA,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAEzM,EAAE,KAAKtC,EAAEA,CAAC,CAAC,EAAEy3F,GAAE,UAAU,qBAAqB,UAAU,CAAC,KAAK,EAAE,CAAE,GAAEA,GAAE,UAAU,OAAO,SAASn1F,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,SAAS,cAAc,KAAK,EAAE87C,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,IAAI,CAAC,EAAEg5C,GAAE,KAAK,IAAI,EAAEh5C,EAAE,IAAIA,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,KAAKs1C,GAAEzhE,GAAE,KAAK3vB,EAAE,QAAQ,EAAE,OAAO,IAAI,EAAE,IAAI,MAAM,CAACoxF,GAAEzhE,GAAE,KAAK,EAAE,IAAI,KAAK3vB,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAIu1F,GAAE,SAASv1F,EAAEoxF,EAAEjsF,EAAE,CAAC,GAAG,EAAEA,EAAE,CAAC,IAAIA,EAAE,CAAC,GAAGnF,EAAE,EAAE,OAAOoxF,CAAC,EAAEpxF,EAAE,MAAM,cAAoBA,EAAE,MAAM,YAAY,CAAC,IAA3B,KAA8B,CAACA,EAAE,EAAE,MAAM,IAAImF,EAAEnF,EAAE,EAAEmF,GAAG,CAAC,KAAKA,EAAE,OAAO,GAAGA,EAAE,IAAK,IAAG,GAAGA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,MAAMnF,EAAE,EAAEmF,EAAEA,EAAE,CAAC,CAAC,CAAC,EAAE,SAASkvF,IAAEr0F,EAAE,CAAC,OAAO,KAAK,gBAAgB,UAAU,CAAC,OAAOA,EAAE,OAAO,EAAEA,EAAE,QAAQ,CAAC,SAASw0F,IAAEx0F,EAAE,CAAC,IAAI,EAAE,KAAK,EAAEA,EAAE,EAAE,EAAE,qBAAqB,UAAU,CAAC87C,GAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,uBAAuB97C,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAE,EAAC,YAAY,SAAS,EAAE,CAAC,KAAK,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,aAAa,SAAS,EAAEoxF,EAAE,CAAC,KAAK,WAAW,KAAK,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,KAAK,WAAW,OAAO,KAAK,WAAW,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAGt1C,GAAEs1C,GAAEiD,IAAE,CAAC,QAAQ,EAAE,OAAO,EAAEr0F,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAoB,CAAE,CAAC,SAAS6xB,IAAE7xB,EAAE,EAAE,CAAC,IAAI,EAAEoxF,GAAEoD,IAAE,CAAC,IAAIx0F,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,EAAEs1F,GAAE,UAAU,IAAIt1F,IAAG,IAAI,SAASA,EAAE,CAAC,IAAIoxF,EAAE,KAAKjsF,EAAEqsF,GAAEJ,EAAE,GAAG,EAAE3kF,EAAE2kF,EAAE,EAAE,IAAIpxF,CAAC,EAAE,OAAOyM,EAAE,CAAC,IAAI,SAASkjB,EAAE,CAAC,IAAImsB,EAAE,UAAU,CAACs1C,EAAE,MAAM,aAAa3kF,EAAE,KAAKkjB,CAAC,EAAE4lE,GAAEnE,EAAEpxF,EAAEyM,CAAC,GAAGkjB,EAAG,GAAExqB,EAAEA,EAAE22C,CAAC,EAAEA,EAAG,EAAC,EAAEw5C,GAAE,UAAU,OAAO,SAASt1F,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,EAAE,IAAI,IAAI,IAAIoxF,EAAE3kF,GAAEzM,EAAE,QAAQ,EAAEA,EAAE,aAAmBA,EAAE,YAAY,CAAC,IAArB,KAAwBoxF,EAAE,QAAS,EAAC,QAAQjsF,EAAEisF,EAAE,OAAOjsF,KAAK,KAAK,EAAE,IAAIisF,EAAEjsF,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,OAAOnF,EAAE,QAAQ,EAAEs1F,GAAE,UAAU,mBAAmBA,GAAE,UAAU,kBAAkB,UAAU,CAAC,IAAIt1F,EAAE,KAAK,KAAK,EAAE,QAAQ,SAASoxF,EAAEjsF,EAAE,CAACowF,GAAEv1F,EAAEmF,EAAEisF,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIyD,IAAe,OAAO,OAApB,KAA4B,OAAO,KAAK,OAAO,IAAI,eAAe,GAAG,MAAMI,IAAE,0RAA0RN,IAAe,OAAO,SAApB,IAA6Ba,IAAE,SAASx1F,EAAE,CAAC,OAAoB,OAAO,OAApB,KAAsC,OAAO,OAAM,GAAvB,SAA0B,eAAe,eAAe,KAAKA,CAAC,CAAC,EAAgLA,GAAE,UAAU,iBAAiB,GAAG,CAAC,qBAAqB,4BAA4B,qBAAqB,EAAE,QAAQ,SAAS,EAAE,CAAC,OAAO,eAAeA,GAAE,UAAU,EAAE,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,OAAO,eAAe,KAAK,EAAE,CAAC,aAAa,GAAG,SAAS,GAAG,MAAMA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIo1F,GAAEjwF,GAAE,MAAM,SAASswF,KAAG,CAAE,UAASC,KAAG,CAAC,OAAO,KAAK,YAAY,CAAC,SAASC,KAAG,CAAC,OAAO,KAAK,gBAAgB,CAACxwF,GAAE,MAAM,SAASnF,EAAE,CAAC,OAAOo1F,KAAIp1F,EAAEo1F,GAAEp1F,CAAC,GAAGA,EAAE,QAAQy1F,IAAEz1F,EAAE,qBAAqB01F,IAAE11F,EAAE,mBAAmB21F,IAAE31F,EAAE,YAAYA,CAAC,EAAK,IAAG41F,GAAG,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,CAAC,EAAEC,GAAG1wF,GAAE,MAAMA,GAAE,MAAM,SAASnF,EAAE,CAAC,IAAIoxF,EAAEpxF,EAAE,KAAKmF,EAAEnF,EAAE,MAAM2vB,EAAExqB,EAAE,GAAa,OAAOisF,GAAjB,SAAmB,CAAC,IAAIt1C,EAAOs1C,EAAE,QAAQ,GAAG,IAAlB,GAAoB,QAAQ1zF,KAAKiyB,EAAE,GAAGxqB,EAAE,CAAC,IAAI/C,EAAE+C,EAAEzH,CAAC,EAAEi3F,KAAgBj3F,IAAb,YAA6B0zF,IAAb,YAA0B1zF,IAAV,SAAa,iBAAiByH,GAAS/C,GAAN,OAA2B1E,IAAjB,gBAAoB,UAAUyH,GAASA,EAAE,OAAR,KAAczH,EAAE,QAAqBA,IAAb,YAAqB0E,IAAL,GAAOA,EAAE,GAAG,iBAAiB,KAAK1E,CAAC,EAAEA,EAAE,aAAa,6BAA6B,KAAKA,EAAE0zF,CAAC,GAAG,CAACoE,IAAErwF,EAAE,IAAI,EAAEzH,EAAE,UAAU,aAAa,KAAKA,CAAC,EAAEA,EAAE,YAAY,YAAY,KAAKA,CAAC,EAAEA,EAAE,aAAa,mCAAmC,KAAKA,CAAC,EAAEA,EAAEA,EAAE,YAAa,EAACo+C,GAAGm5C,IAAE,KAAKv3F,CAAC,EAAEA,EAAEA,EAAE,QAAQ,YAAY,KAAK,EAAE,YAAa,EAAQ0E,IAAP,OAAWA,EAAE,QAAQ,aAAa,KAAK1E,CAAC,IAAIA,EAAEA,EAAE,YAAa,EAACiyB,EAAEjyB,CAAC,IAAIA,EAAE,mBAAmBiyB,EAAEjyB,CAAC,EAAE0E,EAAE,CAAWgvF,GAAV,UAAazhE,EAAE,UAAU,MAAM,QAAQA,EAAE,KAAK,IAAIA,EAAE,MAAMljB,GAAEtH,EAAE,QAAQ,EAAE,QAAQ,SAASnF,EAAE,CAACA,EAAE,MAAM,SAAa2vB,EAAE,MAAM,QAAQ3vB,EAAE,MAAM,KAAK,GAAjC,EAAkC,CAAC,GAAaoxF,GAAV,UAAmBzhE,EAAE,cAAR,OAAuBA,EAAE,MAAMljB,GAAEtH,EAAE,QAAQ,EAAE,QAAQ,SAASnF,EAAE,CAACA,EAAE,MAAM,SAAS2vB,EAAE,SAAaA,EAAE,aAAa,QAAQ3vB,EAAE,MAAM,KAAK,GAAxC,GAA0C2vB,EAAE,cAAc3vB,EAAE,MAAM,KAAK,CAAC,GAAGA,EAAE,MAAM2vB,EAAExqB,EAAE,OAAOA,EAAE,YAAYywF,GAAG,WAAW,cAAczwF,EAAQA,EAAE,WAAR,OAAoBwqB,EAAE,MAAMxqB,EAAE,WAAW,OAAO,eAAewqB,EAAE,YAAYimE,EAAE,EAAE,CAAC51F,EAAE,SAAS60F,IAAEgB,IAAIA,GAAG71F,CAAC,CAAC,EAAE,IAAI81F,GAAG3wF,GAAE,IAAIA,GAAE,IAAI,SAASnF,EAAE,CAAC81F,IAAIA,GAAG91F,CAAC,EAAIA,EAAE,GAAG,ECIxuO,MAAM+1F,GAAa,CAAE,EACfC,GAAW,IAAI,IACrB,SAASC,GAAaC,EAAW,CAC7BH,GAAW,KAAKG,CAAS,EACzBF,GAAS,QAASG,GAAY,CAC1BC,GAAeD,EAASD,CAAS,CACzC,CAAK,CACL,CACA,SAASG,IAAkB54F,EAAI,CACvBA,EAAG,aACHA,EAAG,aAEH64F,GAAmB74F,EAAG,aAAa,CAE3C,CACA,SAAS64F,GAAmBC,EAAU,CAClC,IAAIJ,EAAUH,GAAS,IAAIO,CAAQ,EACnC,GAAI,CAACJ,GAAW,CAACA,EAAQ,YAAa,CAElC,GADAA,EAAUI,EAAS,cAAc,0BAA0B,EACvD,CAACJ,EAAS,CACVA,EAAU,SAAS,cAAc,OAAO,EACxCA,EAAQ,aAAa,oBAAqB,EAAE,EAC5C,MAAMK,EAAQC,IAAe,EACzBD,IACAL,EAAQ,MAAQK,GAEpB,MAAME,EAAWH,IAAa,SAAW,SAAS,KAAOA,EACnDI,EAAeJ,IAAa,SAC5BG,EAAS,cAAc,kDAAkD,EACzEA,EAAS,WACfA,EAAS,aAAaP,EAASQ,CAAY,CACvD,CACQX,GAAS,IAAIO,EAAUJ,CAAO,EAC9BS,IAAkBT,CAAO,CACjC,CACA,CACA,SAASS,IAAkBT,EAAS,CAChC,UAAWD,KAAaH,GACpBK,GAAeD,EAASD,CAAS,CAEzC,CACA,SAASE,GAAeD,EAASD,EAAW,CACxC,KAAM,CAAE,MAAAW,CAAK,EAAKV,EACZW,EAAUD,EAAM,SAAS,OAC/BX,EAAU,MAAM,GAAG,EAAE,QAAQ,CAACa,EAAUr5F,IAAM,CAC1Cq5F,EAAWA,EAAS,KAAM,EACtBA,GACAF,EAAM,WAAWE,EAAW,IAAKD,EAAUp5F,CAAC,CAExD,CAAK,CACL,CAGA,IAAIs5F,GACJ,SAASP,KAAgB,CACrB,OAAIO,KAAsB,SACtBA,GAAoBC,IAAiB,GAElCD,EACX,CAIA,SAASC,KAAkB,CACvB,MAAMC,EAAgB,SAAS,cAAc,wBAAwB,EACrE,GAAIA,GAAiBA,EAAc,aAAa,SAAS,EACrD,OAAOA,EAAc,aAAa,SAAS,EAE/C,MAAMC,EAAc,SAAS,cAAc,eAAe,EAC1D,OAAIA,GACOA,EAAY,OAAS,EAGpC,CAGI,OAAO,SAAa,KACpBb,GAAmB,QAAQ,EAG/B,IAAIc,IAAW,46bACfnB,GAAamB,GAAQ,EAErB,MAAMC,EAAc,CAChB,YAAYC,EAAe,CACvB,KAAK,cAAgBA,EACrB,KAAK,UAAY,GACjB,KAAK,QAAU,GACf,KAAK,YAAc,CAAE,EACrB,KAAK,UAAY,CACzB,CACI,QAAQC,EAAO,CACX,KAAK,QAAU,GACV,KAAK,aACN,KAAK,aAAc,EACfA,GAAS,KACT,KAAK,SAAU,EAGf,KAAK,UAAY,WACjB,KAAK,SAAS,KAAK,IAAI,EAAGA,CAAK,EAG/C,CACI,MAAMlnF,EAAQ,GAAI,CACd,GAAI,CAAE,YAAAmnF,CAAW,EAAK,KACtBA,EAAYnnF,CAAK,GAAKmnF,EAAYnnF,CAAK,GAAK,GAAK,EACjD,KAAK,aAAc,CAC3B,CACI,OAAOA,EAAQ,GAAIwoC,EAAO,CACtB,GAAI,CAAE,YAAA2+C,CAAW,EAAK,KAClBnnF,KAASmnF,IACL3+C,EACA,OAAO2+C,EAAYnnF,CAAK,GAGxBmnF,EAAYnnF,CAAK,GAAK,EACVmnF,EAAYnnF,CAAK,GAChB,GACT,OAAOmnF,EAAYnnF,CAAK,GAGhC,KAAK,SAAU,EAE3B,CACI,UAAW,CACP,OAAO,OAAO,KAAK,KAAK,WAAW,EAAE,MAC7C,CACI,UAAW,CACP,GAAI,CAAC,KAAK,WAAa,CAAC,KAAK,SAAQ,EAAI,CAErC,IADA,KAAK,UAAY,GACV,KAAK,SACR,KAAK,QAAU,GACf,KAAK,QAAO,EAEhB,KAAK,UAAY,EAC7B,CACA,CACI,OAAQ,CACJ,KAAK,aAAc,EACnB,KAAK,QAAU,GACf,KAAK,YAAc,CAAE,CAC7B,CACI,cAAe,CACP,KAAK,YACL,aAAa,KAAK,SAAS,EAC3B,KAAK,UAAY,EAE7B,CACI,SAAU,CACF,KAAK,eACL,KAAK,cAAe,CAEhC,CACA,CAEA,SAASonF,GAAch6F,EAAI,CACnBA,EAAG,YACHA,EAAG,WAAW,YAAYA,CAAE,CAEpC,CAGA,SAASi6F,GAAej6F,EAAIg+B,EAAU,CAClC,GAAIh+B,EAAG,QACH,OAAOA,EAAG,QAAQg+B,CAAQ,EAI9B,GAAI,CAAC,SAAS,gBAAgB,SAASh+B,CAAE,EACrC,OAAO,KAEX,EAAG,CACC,GAAIk6F,IAAel6F,EAAIg+B,CAAQ,EAC3B,OAAOh+B,EAEXA,EAAMA,EAAG,eAAiBA,EAAG,UAChC,OAAQA,IAAO,MAAQA,EAAG,WAAa,GACxC,OAAO,IACX,CACA,SAASk6F,IAAel6F,EAAIg+B,EAAU,CAElC,OADah+B,EAAG,SAAWA,EAAG,iBAAmBA,EAAG,mBACtC,KAAKA,EAAIg+B,CAAQ,CACnC,CAIA,SAASm8D,IAAaniF,EAAWgmB,EAAU,CACvC,IAAIo8D,EAAapiF,aAAqB,YAAc,CAACA,CAAS,EAAIA,EAC9DqiF,EAAa,CAAE,EACnB,QAAS,EAAI,EAAG,EAAID,EAAW,OAAQ,GAAK,EAAG,CAC3C,IAAItoC,EAAUsoC,EAAW,CAAC,EAAE,iBAAiBp8D,CAAQ,EACrD,QAAS5J,EAAI,EAAGA,EAAI09B,EAAQ,OAAQ19B,GAAK,EACrCimE,EAAW,KAAKvoC,EAAQ19B,CAAC,CAAC,CAEtC,CACI,OAAOimE,CACX,CAmBA,MAAMC,IAAgB,yCACtB,SAASC,GAAWv6F,EAAIyD,EAAO,CAC3B,QAASo1D,KAAYp1D,EACjB+2F,GAAex6F,EAAI64D,EAAUp1D,EAAMo1D,CAAQ,CAAC,CAEpD,CACA,SAAS2hC,GAAex6F,EAAIuD,EAAMjE,EAAK,CAC/BA,GAAO,KACPU,EAAG,MAAMuD,CAAI,EAAI,GAEZ,OAAOjE,GAAQ,UAAYg7F,IAAc,KAAK/2F,CAAI,EACvDvD,EAAG,MAAMuD,CAAI,EAAI,GAAGjE,CAAG,KAGvBU,EAAG,MAAMuD,CAAI,EAAIjE,CAEzB,CAMA,SAASm7F,GAAsBC,EAAI,CAC/B,IAAIn2F,EAAIs7C,EACR,OAAQA,GAAMt7C,EAAKm2F,EAAG,gBAAkB,MAAQn2F,IAAO,OAAS,OAASA,EAAG,KAAKm2F,CAAE,EAAE,CAAC,KAAO,MAAQ76C,IAAO,OAASA,EAAK66C,EAAG,MACjI,CAEA,IAAIC,GAAS,EACb,SAASC,IAAiB,CACtB,OAAAD,IAAU,EACH,UAAYA,EACvB,CAGA,SAASE,GAAeH,EAAI,CACxBA,EAAG,eAAgB,CACvB,CAGA,SAASI,IAAuB98D,EAAU1V,EAAS,CAC/C,OAAQoyE,GAAO,CACX,IAAIK,EAAed,GAAeS,EAAG,OAAQ18D,CAAQ,EACjD+8D,GACAzyE,EAAQ,KAAKyyE,EAAcL,EAAIK,CAAY,CAElD,CACL,CACA,SAASC,GAAiBhjF,EAAWijF,EAAWj9D,EAAU1V,EAAS,CAC/D,IAAI4yE,EAAkBJ,IAAuB98D,EAAU1V,CAAO,EAC9D,OAAAtQ,EAAU,iBAAiBijF,EAAWC,CAAe,EAC9C,IAAM,CACTljF,EAAU,oBAAoBijF,EAAWC,CAAe,CAC3D,CACL,CACA,SAASC,IAAwBnjF,EAAWgmB,EAAUo9D,EAAcC,EAAc,CAC9E,IAAIC,EACJ,OAAON,GAAiBhjF,EAAW,YAAagmB,EAAU,CAACu9D,EAAaR,IAAiB,CACrF,GAAIA,IAAiBO,EAAqB,CACtCA,EAAsBP,EACtBK,EAAaG,EAAaR,CAAY,EACtC,IAAIS,EAAoBC,GAAiB,CACrCH,EAAsB,KACtBD,EAAaI,EAAcV,CAAY,EACvCA,EAAa,oBAAoB,aAAcS,CAAgB,CAClE,EAEDT,EAAa,iBAAiB,aAAcS,CAAgB,CACxE,CACA,CAAK,CACL,CAGA,MAAME,GAAuB,CACzB,sBACA,iBACA,iBACA,kBACA,eACJ,EAEA,SAASC,IAAmB37F,EAAI2N,EAAU,CACtC,IAAIiuF,EAAgBlB,GAAO,CACvB/sF,EAAS+sF,CAAE,EACXgB,GAAqB,QAASG,GAAc,CACxC77F,EAAG,oBAAoB67F,EAAWD,CAAY,CAC1D,CAAS,CACJ,EACDF,GAAqB,QAASG,GAAc,CACxC77F,EAAG,iBAAiB67F,EAAWD,CAAY,CACnD,CAAK,CACL,CAGA,SAASE,GAAqBxzE,EAAS,CACnC,OAAO,OAAO,OAAO,CAAE,QAASA,GAAWyzE,GAAwBzzE,CAAO,CAAC,CAC/E,CACA,SAASyzE,GAAwBzzE,EAAS,CACtC,MAAO,CACH,SAAU,EACV,UAAUoyE,EAAI,EACNA,EAAG,MAAQ,SAAWA,EAAG,MAAQ,OACjCpyE,EAAQoyE,CAAE,EACVA,EAAG,eAAc,EAExB,CACJ,CACL,CAEA,IAAIsB,GAAa,EACjB,SAASC,IAAO,CACZ,OAAAD,IAAc,EACP,OAAOA,EAAU,CAC5B,CAIA,SAASE,IAAgB,CACrB,SAAS,KAAK,UAAU,IAAI,gBAAgB,CAChD,CAEA,SAASC,IAAe,CACpB,SAAS,KAAK,UAAU,OAAO,gBAAgB,CACnD,CAGA,SAASC,IAAiBp8F,EAAI,CAC1BA,EAAG,MAAM,WAAa,OACtBA,EAAG,MAAM,iBAAmB,OAC5BA,EAAG,iBAAiB,cAAe66F,EAAc,CACrD,CACA,SAASwB,IAAer8F,EAAI,CACxBA,EAAG,MAAM,WAAa,GACtBA,EAAG,MAAM,iBAAmB,GAC5BA,EAAG,oBAAoB,cAAe66F,EAAc,CACxD,CAGA,SAASyB,IAAmBt8F,EAAI,CAC5BA,EAAG,iBAAiB,cAAe66F,EAAc,CACrD,CACA,SAAS0B,IAAiBv8F,EAAI,CAC1BA,EAAG,oBAAoB,cAAe66F,EAAc,CACxD,CACA,SAAS2B,IAAgBjzC,EAAO,CAC5B,IAAIkzC,EAAQ,CAAE,EACV7qD,EAAS,CAAE,EACX3xC,EACAkwC,EAUJ,IATI,OAAOoZ,GAAU,SACjB3X,EAAS2X,EAAM,MAAM,SAAS,EAEzB,OAAOA,GAAU,WACtB3X,EAAS,CAAC2X,CAAK,EAEV,MAAM,QAAQA,CAAK,IACxB3X,EAAS2X,GAERtpD,EAAI,EAAGA,EAAI2xC,EAAO,OAAQ3xC,GAAK,EAChCkwC,EAAQyB,EAAO3xC,CAAC,EACZ,OAAOkwC,GAAU,SACjBssD,EAAM,KAAKtsD,EAAM,OAAO,CAAC,IAAM,IAC3B,CAAE,MAAOA,EAAM,UAAU,CAAC,EAAG,MAAO,EAAI,EACxC,CAAE,MAAOA,EAAO,MAAO,CAAC,CAAE,EAEzB,OAAOA,GAAU,YACtBssD,EAAM,KAAK,CAAE,KAAMtsD,CAAK,CAAE,EAGlC,OAAOssD,CACX,CACA,SAASC,IAAoBC,EAAMC,EAAMC,EAAY,CACjD,IAAI58F,EACA68F,EACJ,IAAK78F,EAAI,EAAGA,EAAI48F,EAAW,OAAQ58F,GAAK,EAEpC,GADA68F,EAAMC,IAAmBJ,EAAMC,EAAMC,EAAW58F,CAAC,CAAC,EAC9C68F,EACA,OAAOA,EAGf,MAAO,EACX,CACA,SAASC,IAAmBJ,EAAMC,EAAMI,EAAW,CAC/C,OAAIA,EAAU,KACHA,EAAU,KAAKL,EAAMC,CAAI,EAE7BK,IAAgBN,EAAKK,EAAU,KAAK,EAAGJ,EAAKI,EAAU,KAAK,CAAC,GAC5DA,EAAU,OAAS,EAC9B,CACA,SAASC,IAAgBpnF,EAAGC,EAAG,CAC3B,MAAI,CAACD,GAAK,CAACC,EACA,EAEPA,GAAK,KACE,GAEPD,GAAK,KACE,EAEP,OAAOA,GAAM,UAAY,OAAOC,GAAM,SAC/B,OAAOD,CAAC,EAAE,cAAc,OAAOC,CAAC,CAAC,EAErCD,EAAIC,CACf,CAGA,SAASonF,GAAS59F,EAAK62B,EAAK,CACxB,IAAI3jB,EAAI,OAAOlT,CAAG,EAClB,MAAO,MAAM,OAAO,EAAG62B,EAAM3jB,EAAE,MAAM,EAAIA,CAC7C,CACA,SAAS2qF,GAAmBryC,EAAWjhD,EAAMuzF,EAAc,CACvD,OAAI,OAAOtyC,GAAc,WACdA,EAAU,GAAGjhD,CAAI,EAExB,OAAOihD,GAAc,SACdjhD,EAAK,OAAO,CAAC1K,EAAK+C,EAAK+I,IAAW9L,EAAI,QAAQ,IAAM8L,EAAO/I,GAAO,EAAE,EAAI4oD,CAAS,EAErFsyC,CACX,CAGA,SAASC,IAAexnF,EAAGC,EAAG,CAC1B,OAAOD,EAAIC,CACf,CACA,SAASwnF,GAAM/6F,EAAG,CACd,OAAOA,EAAI,IAAM,CACrB,CAGA,SAASg7F,IAAyBC,EAAQ,CACtC,IAAIC,EAAaD,EAAO,cAAc,6BAA6B,EAC/DE,EAAiBF,EAAO,cAAc,+BAA+B,EACzE,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,4CAA4C,EAEhE,GAAI,CAACC,EACD,MAAM,IAAI,MAAM,8CAA8C,EAElE,OAAOF,EAAO,sBAAuB,EAAC,MAAQC,EAAW,sBAAqB,EAAG,MAC7EC,EAAe,sBAAqB,EAAG,KAC/C,CAEA,MAAMC,GAAiB,CAAC,QAAS,SAAU,OAAQ,cAAc,EAC3DC,IAAW,2DAEjB,SAASC,GAAet0C,EAAOu0C,EAAM,CACjC,OAAI,OAAOv0C,GAAU,SACVw0C,IAAYx0C,CAAK,EAExB,OAAOA,GAAU,UAAYA,EACtBy0C,GAAYz0C,CAAK,EAExB,OAAOA,GAAU,SACVy0C,GAAY,CAAE,CAACF,GAAQ,cAAc,EAAGv0C,CAAK,CAAE,EAEnD,IACX,CACA,SAASw0C,IAAYvrF,EAAG,CACpB,IAAIqW,EAAI+0E,IAAS,KAAKprF,CAAC,EACvB,GAAIqW,EAAG,CACH,IAAIw5B,EAAOx5B,EAAE,CAAC,EAAI,GAAK,EACvB,MAAO,CACH,MAAO,EACP,OAAQ,EACR,KAAMw5B,GAAQx5B,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,GAC1C,aAAcw5B,IAASx5B,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,GAAK,GAAK,GAAK,KAC7DA,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,GAAK,GAAK,KACtCA,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,GAAK,KACjCA,EAAE,CAAC,EAAI,SAASA,EAAE,CAAC,EAAG,EAAE,EAAI,GAEpC,CACT,CACI,OAAO,IACX,CACA,SAASm1E,GAAY57F,EAAK,CACtB,IAAI28B,EAAW,CACX,MAAO38B,EAAI,OAASA,EAAI,MAAQ,EAChC,OAAQA,EAAI,QAAUA,EAAI,OAAS,EACnC,KAAMA,EAAI,MAAQA,EAAI,KAAO,EAC7B,cAAeA,EAAI,OAASA,EAAI,MAAQ,GAAK,GAAK,GAAK,KAClDA,EAAI,SAAWA,EAAI,QAAU,GAAK,GAAK,KACvCA,EAAI,SAAWA,EAAI,QAAU,GAAK,KAClCA,EAAI,cAAgBA,EAAI,aAAeA,EAAI,IAAM,EACzD,EACG67F,EAAQ77F,EAAI,OAASA,EAAI,KAC7B,OAAI67F,IACAl/D,EAAS,MAAQk/D,EAAQ,EACzBl/D,EAAS,eAAiB,IAEvBA,CACX,CAEA,SAASm/D,IAAeC,EAAIC,EAAI,CAC5B,OAAOD,EAAG,QAAUC,EAAG,OACnBD,EAAG,SAAWC,EAAG,QACjBD,EAAG,OAASC,EAAG,MACfD,EAAG,eAAiBC,EAAG,YAC/B,CAQA,SAASC,GAAaF,EAAIC,EAAI,CAC1B,MAAO,CACH,MAAOD,EAAG,MAAQC,EAAG,MACrB,OAAQD,EAAG,OAASC,EAAG,OACvB,KAAMD,EAAG,KAAOC,EAAG,KACnB,aAAcD,EAAG,aAAeC,EAAG,YACtC,CACL,CACA,SAASE,IAAkBF,EAAID,EAAI,CAC/B,MAAO,CACH,MAAOC,EAAG,MAAQD,EAAG,MACrB,OAAQC,EAAG,OAASD,EAAG,OACvB,KAAMC,EAAG,KAAOD,EAAG,KACnB,aAAcC,EAAG,aAAeD,EAAG,YACtC,CACL,CACA,SAASI,IAAiBx8D,EAAGx/B,EAAG,CAC5B,MAAO,CACH,MAAOw/B,EAAE,MAAQx/B,EACjB,OAAQw/B,EAAE,OAASx/B,EACnB,KAAMw/B,EAAE,KAAOx/B,EACf,aAAcw/B,EAAE,aAAex/B,CAClC,CACL,CAGA,SAASi8F,IAAaC,EAAK,CACvB,OAAOC,GAAYD,CAAG,EAAI,GAC9B,CACA,SAASE,IAAcF,EAAK,CACxB,OAAOC,GAAYD,CAAG,EAAI,EAC9B,CACA,SAASC,GAAYD,EAAK,CACtB,OAAOG,GAAUH,CAAG,EAAI,KAC5B,CAOA,SAASG,GAAUH,EAAK,CACpB,OAAOA,EAAI,OAAS,IAAM,OACtBA,EAAI,QAAU,GAAK,OACnBA,EAAI,KAAO,MACXA,EAAI,YACZ,CAEA,SAASI,GAAqBC,EAAWC,EAAa,CAClD,IAAIn8F,EAAM,KACV,QAAS3C,EAAI,EAAGA,EAAI09F,GAAe,OAAQ19F,GAAK,EAAG,CAC/C,IAAI69F,EAAOH,GAAe19F,CAAC,EAC3B,GAAI8+F,EAAYjB,CAAI,EAAG,CACnB,IAAIkB,EAAWF,EAAUhB,CAAI,EAAIiB,EAAYjB,CAAI,EACjD,GAAI,CAACR,GAAM0B,CAAQ,GAAMp8F,IAAQ,MAAQA,IAAQo8F,EAC7C,OAAO,KAEXp8F,EAAMo8F,CAClB,SACiBF,EAAUhB,CAAI,EAEnB,OAAO,IAEnB,CACI,OAAOl7F,CACX,CACA,SAASq8F,GAA4BR,EAAK,CACtC,IAAIS,EAAKT,EAAI,aACb,GAAIS,EAAI,CACJ,GAAIA,EAAK,MAAS,EACd,MAAO,CAAE,KAAM,cAAe,MAAOA,CAAI,EAE7C,GAAIA,GAAM,IAAO,MAAQ,EACrB,MAAO,CAAE,KAAM,SAAU,MAAOA,EAAK,GAAM,EAE/C,GAAIA,GAAM,IAAO,GAAK,MAAQ,EAC1B,MAAO,CAAE,KAAM,SAAU,MAAOA,GAAM,IAAO,GAAK,EAEtD,GAAIA,EACA,MAAO,CAAE,KAAM,OAAQ,MAAOA,GAAM,IAAO,GAAK,GAAK,CAEjE,CACI,OAAIT,EAAI,KACAA,EAAI,gBAAkBA,EAAI,KAAO,IAAM,EAChC,CAAE,KAAM,OAAQ,MAAOA,EAAI,KAAO,CAAG,EAEzC,CAAE,KAAM,MAAO,MAAOA,EAAI,IAAM,EAEvCA,EAAI,OACG,CAAE,KAAM,QAAS,MAAOA,EAAI,MAAQ,EAE3CA,EAAI,MACG,CAAE,KAAM,OAAQ,MAAOA,EAAI,KAAO,EAEtC,CAAE,KAAM,cAAe,MAAO,CAAG,CAC5C,CAiBA,SAASU,GAAcC,EAAIC,EAAIC,EAAc,CACzC,GAAIF,IAAOC,EACP,MAAO,GAEX,IAAIlpE,EAAMipE,EAAG,OACT,EACJ,GAAIjpE,IAAQkpE,EAAG,OACX,MAAO,GAEX,IAAK,EAAI,EAAG,EAAIlpE,EAAK,GAAK,EACtB,GAAI,EAAEmpE,EAAeA,EAAaF,EAAG,CAAC,EAAGC,EAAG,CAAC,CAAC,EAAID,EAAG,CAAC,IAAMC,EAAG,CAAC,GAC5D,MAAO,GAGf,MAAO,EACX,CAEA,MAAME,IAAU,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAEhE,SAASC,GAAS32E,EAAGtmB,EAAG,CACpB,IAAIsT,EAAI4pF,GAAe52E,CAAC,EACxB,OAAAhT,EAAE,CAAC,GAAKtT,EAAI,EACLm9F,GAAe7pF,CAAC,CAC3B,CACA,SAAS8oC,GAAQ91B,EAAGtmB,EAAG,CACnB,IAAIsT,EAAI4pF,GAAe52E,CAAC,EACxB,OAAAhT,EAAE,CAAC,GAAKtT,EACDm9F,GAAe7pF,CAAC,CAC3B,CACA,SAAS8pF,GAAM92E,EAAGtmB,EAAG,CACjB,IAAIsT,EAAI4pF,GAAe52E,CAAC,EACxB,OAAAhT,EAAE,CAAC,GAAKtT,EACDm9F,GAAe7pF,CAAC,CAC3B,CAGA,SAAS+pF,IAAUC,EAAIC,EAAI,CACvB,OAAOC,GAASF,EAAIC,CAAE,EAAI,CAC9B,CACA,SAASC,GAASF,EAAIC,EAAI,CACtB,OAAQA,EAAG,QAAO,EAAKD,EAAG,QAAS,IAAK,IAAO,GAAK,GAAK,GAC7D,CACA,SAASG,IAAUH,EAAIC,EAAI,CACvB,OAAQA,EAAG,UAAYD,EAAG,YAAc,IAAO,GAAK,GACxD,CACA,SAASI,IAAYJ,EAAIC,EAAI,CACzB,OAAQA,EAAG,QAAS,EAAGD,EAAG,QAAS,IAAK,IAAO,GACnD,CACA,SAASK,IAAYL,EAAIC,EAAI,CACzB,OAAQA,EAAG,QAAO,EAAKD,EAAG,QAAS,GAAI,GAC3C,CACA,SAASM,IAAeN,EAAIC,EAAI,CAC5B,IAAIM,EAAQ5/C,GAAWq/C,CAAE,EACrBQ,EAAQ7/C,GAAWs/C,CAAE,EACzB,MAAO,CACH,MAAO,EACP,OAAQ,EACR,KAAM,KAAK,MAAMC,GAASK,EAAOC,CAAK,CAAC,EACvC,aAAeP,EAAG,QAAO,EAAKO,EAAM,WAAcR,EAAG,QAAO,EAAKO,EAAM,QAAO,EACjF,CACL,CAEA,SAASE,IAAeT,EAAIC,EAAI,CAC5B,IAAI/9D,EAAIw+D,GAAcV,EAAIC,CAAE,EAC5B,OAAI/9D,IAAM,MAAQA,EAAI,IAAM,EACjBA,EAAI,EAER,IACX,CACA,SAASw+D,GAAcV,EAAIC,EAAI,CAC3B,OAAIU,GAASX,CAAE,IAAMW,GAASV,CAAE,EACrB,KAAK,MAAMC,GAASF,EAAIC,CAAE,CAAC,EAE/B,IACX,CAEA,SAASt/C,GAAW33B,EAAG,CACnB,OAAO62E,GAAe,CAClB72E,EAAE,eAAgB,EAClBA,EAAE,YAAa,EACfA,EAAE,WAAY,CACtB,CAAK,CACL,CACA,SAAS43E,IAAY53E,EAAG,CACpB,OAAO62E,GAAe,CAClB72E,EAAE,eAAgB,EAClBA,EAAE,YAAa,EACfA,EAAE,WAAY,EACdA,EAAE,YAAa,CACvB,CAAK,CACL,CACA,SAAS63E,IAAc73E,EAAG,CACtB,OAAO62E,GAAe,CAClB72E,EAAE,eAAgB,EAClBA,EAAE,YAAa,EACfA,EAAE,WAAY,EACdA,EAAE,YAAa,EACfA,EAAE,cAAe,CACzB,CAAK,CACL,CACA,SAAS83E,IAAc93E,EAAG,CACtB,OAAO62E,GAAe,CAClB72E,EAAE,eAAgB,EAClBA,EAAE,YAAa,EACfA,EAAE,WAAY,EACdA,EAAE,YAAa,EACfA,EAAE,cAAe,EACjBA,EAAE,cAAe,CACzB,CAAK,CACL,CAEA,SAAS+3E,IAAWC,EAAQC,EAAKC,EAAK,CAClC,IAAIrK,EAAImK,EAAO,eAAgB,EAC3Bl7B,EAAIq7B,GAAgBH,EAAQnK,EAAGoK,EAAKC,CAAG,EAC3C,GAAIp7B,EAAI,EACJ,OAAOq7B,GAAgBH,EAAQnK,EAAI,EAAGoK,EAAKC,CAAG,EAElD,IAAIE,EAAQD,GAAgBH,EAAQnK,EAAI,EAAGoK,EAAKC,CAAG,EACnD,OAAIE,GAAS,EACF,KAAK,IAAIt7B,EAAGs7B,CAAK,EAErBt7B,CACX,CACA,SAASq7B,GAAgBH,EAAQ1gD,EAAM2gD,EAAKC,EAAK,CAC7C,IAAIG,EAAiBxB,GAAe,CAACv/C,EAAM,EAAG,EAAIghD,IAAgBhhD,EAAM2gD,EAAKC,CAAG,CAAC,CAAC,EAC9EK,EAAW5gD,GAAWqgD,CAAM,EAC5Bv1C,EAAO,KAAK,MAAMy0C,GAASmB,EAAgBE,CAAQ,CAAC,EACxD,OAAO,KAAK,MAAM91C,EAAO,CAAC,EAAI,CAClC,CAEA,SAAS61C,IAAgBhhD,EAAM2gD,EAAKC,EAAK,CAErC,IAAIM,EAAM,EAAIP,EAAMC,EAGpB,MAAO,GADM,EAAIrB,GAAe,CAACv/C,EAAM,EAAGkhD,CAAG,CAAC,EAAE,UAAW,EAAGP,GAAO,GACrDO,EAAM,CAC1B,CAEA,SAASC,GAAiB5iD,EAAM,CAC5B,MAAO,CACHA,EAAK,YAAa,EAClBA,EAAK,SAAU,EACfA,EAAK,QAAS,EACdA,EAAK,SAAU,EACfA,EAAK,WAAY,EACjBA,EAAK,WAAY,EACjBA,EAAK,gBAAiB,CACzB,CACL,CACA,SAAS6iD,GAAiB1rF,EAAG,CACzB,OAAO,IAAI,KAAKA,EAAE,CAAC,EAAGA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,GAAK,KAAO,EAAIA,EAAE,CAAC,EACvDA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,GAAK,EAAGA,EAAE,CAAC,GAAK,CAAC,CACnC,CACA,SAAS4pF,GAAe/gD,EAAM,CAC1B,MAAO,CACHA,EAAK,eAAgB,EACrBA,EAAK,YAAa,EAClBA,EAAK,WAAY,EACjBA,EAAK,YAAa,EAClBA,EAAK,cAAe,EACpBA,EAAK,cAAe,EACpBA,EAAK,mBAAoB,CAC5B,CACL,CACA,SAASghD,GAAe7pF,EAAG,CAGvB,OAAIA,EAAE,SAAW,IACbA,EAAIA,EAAE,OAAO,CAAC,CAAC,CAAC,GAEb,IAAI,KAAK,KAAK,IAAI,GAAGA,CAAC,CAAC,CAClC,CAEA,SAAS2rF,GAAY34E,EAAG,CACpB,MAAO,CAAC,MAAMA,EAAE,SAAS,CAC7B,CACA,SAAS23E,GAAS33E,EAAG,CACjB,OAAOA,EAAE,YAAW,EAAK,IAAO,GAAK,GACjCA,EAAE,gBAAkB,IAAO,GAC3BA,EAAE,cAAa,EAAK,IACpBA,EAAE,mBAAoB,CAC9B,CAGA,SAAS44E,GAAeZ,EAAQhsC,EAAgB6sC,EAAgB,GAAO,CACnE,IAAIlvF,EAAIquF,EAAO,YAAa,EAC5B,OAAAruF,EAAIA,EAAE,QAAQ,OAAQ,EAAE,EACpBkvF,IACAlvF,EAAIA,EAAE,QAAQ,aAAc,EAAE,GAE9BA,EAAE,OAAS,KACPqiD,GAAkB,KAClBriD,EAAIA,EAAE,QAAQ,IAAK,EAAE,EAEhBqiD,IAAmB,IACxBriD,EAAIA,EAAE,QAAQ,IAAKmvF,GAAqB9sC,EAAgB,EAAI,CAAC,IAI9DriD,CACX,CAIA,SAASovF,GAAgBf,EAAQ,CAC7B,OAAOA,EAAO,YAAW,EAAG,QAAQ,OAAQ,EAAE,CAClD,CACA,SAASgB,IAAkBhB,EAAQ,CAC/B,OAAOA,EAAO,YAAa,EAAC,MAAM,cAAc,EAAE,CAAC,CACvD,CAEA,SAASiB,IAAoBjB,EAAQ,CACjC,OAAO3D,GAAS2D,EAAO,YAAW,EAAI,CAAC,EAAI,IACvC3D,GAAS2D,EAAO,gBAAiB,CAAC,EAAI,IACtC3D,GAAS2D,EAAO,cAAe,EAAE,CAAC,CAC1C,CACA,SAASc,GAAqBn5C,EAASu5C,EAAQ,GAAO,CAClD,IAAI1/C,EAAOmG,EAAU,EAAI,IAAM,IAC3Bw5C,EAAM,KAAK,IAAIx5C,CAAO,EACtBT,EAAQ,KAAK,MAAMi6C,EAAM,EAAE,EAC3BC,EAAO,KAAK,MAAMD,EAAM,EAAE,EAC9B,OAAID,EACO,GAAG1/C,EAAO66C,GAASn1C,EAAO,CAAC,CAAC,IAAIm1C,GAAS+E,EAAM,CAAC,CAAC,GAErD,MAAM5/C,CAAI,GAAG0F,CAAK,GAAGk6C,EAAO,IAAI/E,GAAS+E,EAAM,CAAC,CAAC,GAAK,EAAE,EACnE,CAEA,SAASC,GAAQC,EAAYC,EAAaC,EAAc,CACpD,IAAIC,EACAC,EACJ,OAAO,YAAaC,EAAS,CACzB,GAAI,CAACF,EACDC,EAAaJ,EAAW,MAAM,KAAMK,CAAO,UAEtC,CAACrD,GAAcmD,EAAaE,CAAO,EAAG,CAI3C,IAAI5/F,EAAMu/F,EAAW,MAAM,KAAMK,CAAO,GACpC,CAACJ,GAAe,CAACA,EAAYx/F,EAAK2/F,CAAU,KAC5CA,EAAa3/F,EAE7B,CACQ,OAAA0/F,EAAcE,EACPD,CACV,CACL,CACA,SAASE,GAAcN,EAAYC,EAAaC,EAAc,CAC1D,IAAIK,EACAH,EACJ,OAAQI,IACCD,EAGKE,GAAaF,EAAYC,CAAM,IAMjCJ,EAFMJ,EAAW,KAAK,KAAMQ,CAAM,GANtCJ,EAAaJ,EAAW,KAAK,KAAMQ,CAAM,EAW7CD,EAAaC,EACNJ,EAEf,CA6DA,MAAMM,GAAmC,CACrC,KAAM,EACN,UAAW,EACX,eAAgB,EAChB,SAAU,EACV,WAAY,CAChB,EACMC,GAAgC,CAClC,aAAc,EACd,IAAK,EACL,KAAM,EACN,MAAO,EACP,IAAK,EACL,QAAS,EACT,KAAM,EACN,OAAQ,EACR,OAAQ,CACZ,EACMC,GAAc,oBACdC,IAAW,KACXC,IAAiB,OACjBC,IAAS,UACTC,IAAS,UACf,MAAMC,GAAgB,CAClB,YAAYC,EAAgB,CACxB,IAAIC,EAAoB,CAAE,EACtBC,EAAmB,CAAE,EACrBC,EAAW,EACf,QAASjgG,KAAQ8/F,EACT9/F,KAAQs/F,IACRU,EAAiBhgG,CAAI,EAAI8/F,EAAe9/F,CAAI,EAC5CigG,EAAW,KAAK,IAAIX,GAAiCt/F,CAAI,EAAGigG,CAAQ,IAGpEF,EAAkB//F,CAAI,EAAI8/F,EAAe9/F,CAAI,EACzCA,KAAQu/F,KACRU,EAAW,KAAK,IAAIV,GAA8Bv/F,CAAI,EAAGigG,CAAQ,IAI7E,KAAK,kBAAoBF,EACzB,KAAK,iBAAmBC,EACxB,KAAK,SAAWC,EAChB,KAAK,oBAAsBtB,GAAQuB,EAAmB,CAC9D,CACI,OAAO/kD,EAAMx0B,EAAS,CAClB,OAAO,KAAK,oBAAoB,KAAK,kBAAmB,KAAK,iBAAkBA,CAAO,EAAEw0B,CAAI,CACpG,CACI,YAAY5pC,EAAOC,EAAKmV,EAASw5E,EAAwB,CACrD,GAAI,CAAE,kBAAAJ,EAAmB,iBAAAC,CAAgB,EAAK,KAC1CI,EAAeC,IAA0B9uF,EAAM,OAAQC,EAAI,OAAQmV,EAAQ,cAAc,EAC7F,GAAI,CAACy5E,EACD,OAAO,KAAK,OAAO7uF,EAAOoV,CAAO,EAErC,IAAI25E,EAAwBF,EACxBE,EAAwB,IACvBP,EAAkB,OAAS,WAAaA,EAAkB,OAAS,aACnEA,EAAkB,QAAU,WAAaA,EAAkB,QAAU,aACrEA,EAAkB,MAAQ,WAAaA,EAAkB,MAAQ,aAClEO,EAAwB,GAE5B,IAAIC,EAAQ,KAAK,OAAOhvF,EAAOoV,CAAO,EAClC65E,EAAQ,KAAK,OAAOhvF,EAAKmV,CAAO,EACpC,GAAI45E,IAAUC,EACV,OAAOD,EAEX,IAAIE,EAAmBC,IAAgCX,EAAmBO,CAAqB,EAC3FK,EAAwBT,GAAoBO,EAAkBT,EAAkBr5E,CAAO,EACvFi6E,EAAWD,EAAsBpvF,CAAK,EACtCsvF,EAAWF,EAAsBnvF,CAAG,EACpCsvF,EAAYC,IAAoBR,EAAOK,EAAUJ,EAAOK,CAAQ,EAChEl6F,EAAYq5F,EAAiB,WAAaG,GAA0Bx5E,EAAQ,kBAAoB,GACpG,OAAIm6E,EACOA,EAAU,OAASF,EAAWj6F,EAAYk6F,EAAWC,EAAU,MAEnEP,EAAQ55F,EAAY65F,CACnC,CACI,gBAAiB,CACb,OAAQ,KAAK,SAAQ,CACjB,IAAK,GACL,IAAK,GACL,IAAK,GACD,MAAO,OACX,IAAK,GACD,MAAO,QACX,IAAK,GACD,MAAO,OACX,IAAK,GACD,MAAO,MACX,QACI,MAAO,MACvB,CACA,CACA,CACA,SAASN,GAAoBH,EAAmBC,EAAkBr5E,EAAS,CACvE,IAAIq6E,EAAsB,OAAO,KAAKjB,CAAiB,EAAE,OACzD,OAAIiB,IAAwB,GAAKjB,EAAkB,eAAiB,QACxD5kD,GAAUijD,GAAqBjjD,EAAK,cAAc,EAE1D6lD,IAAwB,GAAKhB,EAAiB,KACtC7kD,GAAU8lD,IAAiBt6E,EAAQ,kBAAkBw0B,EAAK,MAAM,EAAGx0B,EAAQ,SAAUA,EAAQ,aAAcA,EAAQ,OAAQq5E,EAAiB,IAAI,EAErJkB,IAA0BnB,EAAmBC,EAAkBr5E,CAAO,CACjF,CACA,SAASu6E,IAA0BnB,EAAmBC,EAAkBr5E,EAAS,CAC7Eo5E,EAAoB,OAAO,OAAO,CAAE,EAAEA,CAAiB,EACvDC,EAAmB,OAAO,OAAO,CAAE,EAAEA,CAAgB,EACrDmB,IAAiBpB,EAAmBC,CAAgB,EACpDD,EAAkB,SAAW,MAC7B,IAAIqB,EAAe,IAAI,KAAK,eAAez6E,EAAQ,OAAO,MAAOo5E,CAAiB,EAC9EsB,EACJ,GAAIrB,EAAiB,eAAgB,CACjC,IAAIsB,EAAY,OAAO,OAAO,GAAIvB,CAAiB,EACnD,OAAOuB,EAAU,OACjBD,EAAa,IAAI,KAAK,eAAe16E,EAAQ,OAAO,MAAO26E,CAAS,CAC5E,CACI,OAAQnmD,GAAS,CACb,GAAI,CAAE,OAAAmiD,CAAM,EAAKniD,EACb4K,EACAs7C,GAAc,CAAC/D,EAAO,gBACtBv3C,EAASs7C,EAGTt7C,EAASq7C,EAEb,IAAInyF,EAAI82C,EAAO,OAAOu3C,CAAM,EAC5B,OAAOiE,IAAYtyF,EAAGksC,EAAM4kD,EAAmBC,EAAkBr5E,CAAO,CAC3E,CACL,CACA,SAASw6E,IAAiBpB,EAAmBC,EAAkB,CAGvDD,EAAkB,eACbA,EAAkB,OACnBA,EAAkB,KAAO,WAExBA,EAAkB,SACnBA,EAAkB,OAAS,YAI/BA,EAAkB,eAAiB,SACnCA,EAAkB,aAAe,SAGjCC,EAAiB,iBAAmBD,EAAkB,QAAUA,EAAkB,cAClF,OAAOC,EAAiB,cAEhC,CACA,SAASuB,IAAYtyF,EAAGksC,EAAM4kD,EAAmBC,EAAkBr5E,EAAS,CACxE,OAAA1X,EAAIA,EAAE,QAAQ0wF,IAAQ,EAAE,EACpBI,EAAkB,eAAiB,UACnC9wF,EAAIuyF,IAAavyF,EAAI0X,EAAQ,WAAa,OAASw0B,EAAK,gBAAkB,KACtE,MACAijD,GAAqBjjD,EAAK,cAAc,CAAC,GAE7C6kD,EAAiB,aACjB/wF,EAAIA,EAAE,QAAQwwF,IAAU,EAAE,EAAE,KAAM,GAElCO,EAAiB,iBACjB/wF,EAAIA,EAAE,QAAQ,MAAO,EAAE,GAIvB+wF,EAAiB,WAAa,GAC9B/wF,EAAIA,EAAE,QAAQuwF,GAAa,EAAE,EAAE,KAAM,EAEhCQ,EAAiB,WAAa,SACnC/wF,EAAIA,EAAE,QAAQuwF,GAAa,CAAClD,EAAIC,IAAOA,EAAG,mBAAmB,EAExDyD,EAAiB,WAAa,QACnC/wF,EAAIA,EAAE,QAAQuwF,GAAa,CAAClD,EAAIC,IAAO,GAAGA,EAAG,kBAAmB,IAAG,EAE9DyD,EAAiB,WAAa,cACnC/wF,EAAIA,EAAE,QAAQuwF,GAAclD,GAAOA,EAAG,mBAAmB,GAE7DrtF,EAAIA,EAAE,QAAQywF,IAAgB,GAAG,EACjCzwF,EAAIA,EAAE,KAAM,EACLA,CACX,CACA,SAASuyF,IAAavyF,EAAGwyF,EAAQ,CAC7B,IAAI12D,EAAW,GACf,OAAA97B,EAAIA,EAAE,QAAQ2wF,IAAQ,KAClB70D,EAAW,GACJ02D,EACV,EAEI12D,IACD97B,GAAK,IAAIwyF,CAAM,IAEZxyF,CACX,CACA,SAASgyF,IAAiBS,EAAKC,EAAUC,EAAcn7C,EAAQo7C,EAAS,CACpE,IAAI76C,EAAQ,CAAE,EACd,OAAI66C,IAAY,OACZ76C,EAAM,KAAK46C,CAAY,GAElBC,IAAY,SAAWA,IAAY,WACxC76C,EAAM,KAAK26C,CAAQ,GAEnBE,IAAY,QAAUA,IAAY,UAClC76C,EAAM,KAAK,GAAG,EAElBA,EAAM,KAAKP,EAAO,mBAAmB,OAAOi7C,CAAG,CAAC,EAC5Cj7C,EAAO,QAAQ,YAAc,OAC7BO,EAAM,QAAS,EAEZA,EAAM,KAAK,EAAE,CACxB,CAKA,SAASq5C,IAA0BzF,EAAIC,EAAIiH,EAAI,CAC3C,OAAIA,EAAG,cAAclH,CAAE,IAAMkH,EAAG,cAAcjH,CAAE,EACrC,EAEPiH,EAAG,eAAelH,CAAE,IAAMkH,EAAG,eAAejH,CAAE,EACvC,EAEPiH,EAAG,aAAalH,CAAE,IAAMkH,EAAG,aAAajH,CAAE,EACnC,EAEPoC,GAASrC,CAAE,IAAMqC,GAASpC,CAAE,EACrB,EAEJ,CACX,CACA,SAAS6F,IAAgCvyF,EAAS4zF,EAAa,CAC3D,IAAIhxD,EAAiB,CAAE,EACvB,QAAS/wC,KAAQmO,GACT,EAAEnO,KAAQu/F,KACVA,GAA8Bv/F,CAAI,GAAK+hG,KACvChxD,EAAe/wC,CAAI,EAAImO,EAAQnO,CAAI,GAG3C,OAAO+wC,CACX,CACA,SAASgwD,IAAoBR,EAAOK,EAAUJ,EAAOK,EAAU,CAC3D,IAAImB,EAAK,EACT,KAAOA,EAAKzB,EAAM,QAAQ,CACtB,IAAI0B,EAAS1B,EAAM,QAAQK,EAAUoB,CAAE,EACvC,GAAIC,IAAW,GACX,MAEJ,IAAIC,EAAU3B,EAAM,OAAO,EAAG0B,CAAM,EACpCD,EAAKC,EAASrB,EAAS,OACvB,IAAIuB,EAAS5B,EAAM,OAAOyB,CAAE,EACxBI,EAAK,EACT,KAAOA,EAAK5B,EAAM,QAAQ,CACtB,IAAI6B,EAAS7B,EAAM,QAAQK,EAAUuB,CAAE,EACvC,GAAIC,IAAW,GACX,MAEJ,IAAIC,EAAU9B,EAAM,OAAO,EAAG6B,CAAM,EACpCD,EAAKC,EAASxB,EAAS,OACvB,IAAI0B,EAAS/B,EAAM,OAAO4B,CAAE,EAC5B,GAAIF,IAAYI,GAAWH,IAAWI,EAClC,MAAO,CACH,OAAQL,EACR,MAAOC,CACV,CAEjB,CACA,CACI,OAAO,IACX,CAEA,SAASK,GAAkBC,EAAUC,EAAgB,CACjD,IAAIpwF,EAAIowF,EAAe,cAAcD,EAAS,MAAM,EACpD,MAAO,CACH,OAAQA,EAAS,OACjB,eAAgBA,EAAS,eACzB,MAAOnwF,EACP,KAAMA,EAAE,CAAC,EACT,MAAOA,EAAE,CAAC,EACV,IAAKA,EAAE,CAAC,EACR,KAAMA,EAAE,CAAC,EACT,OAAQA,EAAE,CAAC,EACX,OAAQA,EAAE,CAAC,EACX,YAAaA,EAAE,CAAC,CACnB,CACL,CAEA,SAASqwF,GAA2BpxF,EAAOC,EAAKmV,EAASw5E,EAAwB,CAC7E,IAAIyC,EAAYJ,GAAkBjxF,EAAOoV,EAAQ,cAAc,EAC3Dk8E,EAAUrxF,EAAMgxF,GAAkBhxF,EAAKmV,EAAQ,cAAc,EAAI,KACrE,MAAO,CACH,KAAMi8E,EACN,MAAOA,EACP,IAAKC,EACL,SAAUl8E,EAAQ,SAClB,YAAaA,EAAQ,OAAO,MAC5B,iBAAkBw5E,GAA0Bx5E,EAAQ,gBACvD,CACL,CASA,MAAMm8E,GAAa,CACf,YAAYC,EAAQ,CAChB,KAAK,OAASA,CACtB,CACI,OAAO5nD,EAAMx0B,EAASw5E,EAAwB,CAC1C,OAAOx5E,EAAQ,aAAa,KAAK,OAAQg8E,GAA2BxnD,EAAM,KAAMx0B,EAASw5E,CAAsB,CAAC,CACxH,CACI,YAAY5uF,EAAOC,EAAKmV,EAASw5E,EAAwB,CACrD,OAAOx5E,EAAQ,aAAa,KAAK,OAAQg8E,GAA2BpxF,EAAOC,EAAKmV,EAASw5E,CAAsB,CAAC,CACxH,CACA,CAEA,MAAM6C,GAAc,CAChB,YAAYpxB,EAAM,CACd,KAAK,KAAOA,CACpB,CACI,OAAOz2B,EAAMx0B,EAASw5E,EAAwB,CAC1C,OAAO,KAAK,KAAKwC,GAA2BxnD,EAAM,KAAMx0B,EAASw5E,CAAsB,CAAC,CAChG,CACI,YAAY5uF,EAAOC,EAAKmV,EAASw5E,EAAwB,CACrD,OAAO,KAAK,KAAKwC,GAA2BpxF,EAAOC,EAAKmV,EAASw5E,CAAsB,CAAC,CAChG,CACA,CAEA,SAAS8C,GAAgBj9C,EAAO,CAC5B,OAAI,OAAOA,GAAU,UAAYA,EACtB,IAAI65C,IAAgB75C,CAAK,EAEhC,OAAOA,GAAU,SACV,IAAI88C,IAAa98C,CAAK,EAE7B,OAAOA,GAAU,WACV,IAAIg9C,IAAch9C,CAAK,EAE3B,IACX,CAIA,MAAMk9C,GAAuB,CACzB,gBAAiBC,GACjB,iBAAkBA,GAClB,SAAU7I,GACV,qBAAsB6I,GACtB,YAAaA,GACb,cAAeA,GACf,2BAA4B7I,GAC5B,0BAA2BA,GAC3B,iBAAkBA,GAClB,WAAYA,GACZ,gBAAiB,QACjB,YAAaA,GACb,YAAaA,GACb,iBAAkB2I,GAClB,aAAc3I,GACd,aAAcA,GACd,cAAe6I,GACf,cAAeA,GACf,sBAAuB,OACvB,oBAAqB,OACrB,mBAAoB,QACpB,WAAY,QACZ,gBAAiBF,GACjB,oBAAqBE,GACrB,iBAAkBA,GAClB,kBAAmBA,GACnB,qBAAsBA,GACtB,kBAAmBA,GACnB,eAAgBA,GAChB,gBAAiBA,GACjB,mBAAoBA,GACpB,YAAa,OACb,YAAa,OACb,SAAU,QACV,sBAAuBA,GACvB,YAAa,QACb,qBAAsBA,GACtB,kBAAmBA,GACnB,mBAAoBA,GACpB,sBAAuBA,GACvB,SAAU,QACV,eAAgBA,GAChB,aAAcA,GACd,gBAAiBA,GACjB,aAAc,QACd,uBAAwBA,GACxB,oBAAqBA,GACrB,qBAAsBA,GACtB,wBAAyBA,GACzB,oBAAqB,QACrB,aAAc,QACd,WAAY,OACZ,SAAU,OACV,cAAe,OACf,SAAU,OACV,QAASA,GACT,OAAQA,GACR,YAAa,OACb,mBAAoB,OACpB,WAAY,QACZ,uBAAwB,QACxB,aAAc,QACd,WAAYA,GACZ,WAAYlK,IACZ,iBAAkB,QAClB,mBAAoB,QACpB,kBAAmB,OACnB,eAAgB,OAChB,qBAAsB,OACtB,WAAY,QACZ,OAAQkK,GACR,cAAeA,GACf,UAAW,OACX,iBAAkBF,GAClB,wBAAyB,QACzB,iBAAkB,QAClB,gBAAiB,QACjB,SAAU,OACV,aAAc,OACd,0BAA2B,QAC3B,cAAeE,GACf,YAAaA,GACb,IAAKA,GACL,mBAAoBA,GACpB,kBAAmBA,GACnB,sBAAuBA,GACvB,WAAYA,GACZ,cAAe,QACf,mBAAoBA,GACpB,mBAAoBA,GACpB,aAAc,OACd,mBAAoB,QACpB,sBAAuB,QACvB,aAAcA,GACd,gBAAiBA,GACjB,WAAYA,GACZ,qBAAsB,OACtB,iBAAkB,OAClB,eAAgB,OAChB,WAAY,OACZ,gBAAiBA,GACjB,aAAcA,GACd,cAAeA,GACf,iBAAkBA,GAClB,iBAAkBA,GAClB,cAAeA,GACf,YAAaA,GACb,UAAW,QACX,eAAgB,OAChB,gBAAiBA,GACjB,mBAAoBA,GACpB,gBAAiBA,GACjB,iBAAkBA,GAClB,oBAAqBA,GACrB,oBAAqBA,GACrB,iBAAkBA,GAClB,kBAAmBA,GACnB,qBAAsBA,GACtB,aAAcA,GACd,gBAAiBA,GACjB,YAAa,OACb,kBAAmB7I,GACnB,WAAY,OACZ,iBAAkB6I,GAClB,cAAeA,GACf,eAAgBA,GAChB,kBAAmBA,GACnB,aAAc,OACd,SAAU,QACV,gBAAiBF,GACjB,cAAe,OACf,aAAcE,GACd,aAAcA,GACd,kBAAmB,OACnB,WAAY,QACZ,qBAAsB,OACtB,oBAAqB,OACrB,aAAc,QACd,cAAe,OACf,eAAgB,OAChB,cAAe,OACf,iBAAkB,OAClB,iBAAkB,QAClB,QAASA,GACT,SAAU,OACV,SAAU,OACV,cAAe,OACf,cAAe7I,GACf,WAAY6I,GACZ,eAAgB,QAChB,WAAYA,GACZ,aAAcA,GACd,YAAaA,GACb,iBAAkB,QAElB,aAAc,OACd,SAAUA,GACV,YAAaA,GACb,UAAW,OACX,SAAU,OACV,UAAW,OACX,cAAeA,GACf,mBAAoBA,GACpB,gBAAiBA,GACjB,iBAAkBA,GAClB,oBAAqBA,GACrB,iBAAkBF,GAGlB,sBAAuBE,GACvB,uBAAwBA,GACxB,wBAAyB,OAC7B,EAGMC,GAAuB,CACzB,aAAc,OACd,sBAAuB,MACvB,oBAAqB,MACrB,0BAA2B,WAC3B,2BAA4B,CAAE,IAAK,CAAG,EACtC,mBAAoB,GACpB,iBAAkB,WAClB,WAAY,GACZ,YAAa,GACb,YAAa,KACb,cAAe,CACX,MAAO,QACP,OAAQ,GACR,IAAK,iBACR,EACD,SAAU,GACV,YAAa,GACb,sBAAuB,QACvB,SAAU,GACV,aAAc,GACd,WAAY,WACZ,gBAAiB,GACjB,YAAa,WACb,YAAa,WACb,oBAAqB,GACrB,aAAc,GACd,WAAY,QACZ,SAAU,MACV,cAAe,WACf,SAAU,QACV,QAAS,CAAE,EACX,OAAQ,GACR,YAAa,WACb,mBAAoB,IACpB,WAAY,GACZ,uBAAwB,GACxB,aAAc,GACd,WAAY,IACZ,WAAY,+BACZ,iBAAkB,CAAE,MAAO,OAAQ,IAAK,UAAW,KAAM,SAAW,EACpE,mBAAoB,GACpB,kBAAmB,IACnB,eAAgB,IAChB,qBAAsB,EACtB,WAAY,GACZ,SAAU,GACV,WAAY,GACZ,eAAgB,GAChB,cAAe,GACf,iBAAkB,GAClB,iBAAkB,CAAE,MAAO,OAAQ,IAAK,SAAW,CACvD,EAGMC,GAA6B,CAC/B,SAAUF,GACV,UAAWA,GACX,SAAUA,GACV,YAAaA,GACb,YAAaA,GACb,aAAcA,GACd,WAAYA,GACZ,gBAAiBA,GACjB,gBAAiBA,GACjB,OAAQA,GACR,SAAUA,GACV,QAASA,GAET,SAAUA,GACV,aAAcA,GACd,YAAaA,GACb,aAAcA,GACd,eAAgBA,GAChB,QAASA,GACT,eAAgBA,EACpB,EAGMG,GAA2B,CAC7B,WAAYH,GACZ,YAAaA,GACb,MAAOA,GACP,QAASA,GACT,cAAeA,GACf,OAAQA,GACR,aAAcA,EAClB,EACMI,GAA6B,CAC/B,cAAeC,GACf,cAAeA,GACf,WAAYA,GACZ,YAAaA,GACb,YAAaA,GACb,cAAeA,GACf,QAASC,GACT,OAAQA,GACR,aAAcA,GACb,UAAcA,EACnB,EACA,SAASD,GAAoBlxF,EAAGC,EAAG,CAC/B,OAAI,OAAOD,GAAM,UAAY,OAAOC,GAAM,UAAYD,GAAKC,EAChD8sF,GAAa/sF,EAAGC,CAAC,EAErBD,IAAMC,CACjB,CACA,SAASkxF,GAAmBnxF,EAAGC,EAAG,CAC9B,OAAI,MAAM,QAAQD,CAAC,GAAK,MAAM,QAAQC,CAAC,EAC5BqpF,GAActpF,EAAGC,CAAC,EAEtBD,IAAMC,CACjB,CAGA,MAAMmxF,IAAuB,CACzB,KAAM,OACN,UAAWP,GACX,WAAY,OACZ,cAAe,OACf,0BAA2BA,GAC3B,eAAgB,QAChB,WAAYA,GACZ,QAASA,GACT,SAAUA,GACV,YAAaA,EACjB,EAGA,SAASQ,GAAgBC,EAAY,CACjC,OAAOlsE,GAAWksE,EAAYL,EAA0B,CAC5D,CACA,SAASM,GAAY79C,EAAO89C,EAAU,CAClC,IAAIC,EAAU,CAAE,EACZC,EAAQ,CAAE,EACd,QAAS1uC,KAAYwuC,EACbxuC,KAAYtP,IACZ+9C,EAAQzuC,CAAQ,EAAIwuC,EAASxuC,CAAQ,EAAEtP,EAAMsP,CAAQ,CAAC,GAG9D,QAASA,KAAYtP,EACXsP,KAAYwuC,IACdE,EAAM1uC,CAAQ,EAAItP,EAAMsP,CAAQ,GAGxC,MAAO,CAAE,QAAAyuC,EAAS,MAAAC,CAAO,CAC7B,CACA,SAASb,GAASp9F,EAAK,CACnB,OAAOA,CACX,CAEA,KAAM,gBAAEpJ,EAAc,EAAK,OAAO,UAGlC,SAAS+6B,GAAWusE,EAAUC,EAAiB,CAC3C,IAAIC,EAAO,CAAE,EACb,GAAID,GACA,QAASlkG,KAAQkkG,EACb,GAAIA,EAAgBlkG,CAAI,IAAMwjG,GAAqB,CAC/C,IAAIY,EAAc,CAAE,EAEpB,QAAS1nG,EAAIunG,EAAS,OAAS,EAAGvnG,GAAK,EAAGA,GAAK,EAAG,CAC9C,IAAIX,EAAMkoG,EAASvnG,CAAC,EAAEsD,CAAI,EAC1B,GAAI,OAAOjE,GAAQ,UAAYA,EAC3BqoG,EAAY,QAAQroG,CAAG,UAElBA,IAAQ,OAAW,CACxBooG,EAAKnkG,CAAI,EAAIjE,EACb,KACxB,CACA,CAEoBqoG,EAAY,SACZD,EAAKnkG,CAAI,EAAI03B,GAAW0sE,CAAW,EAEvD,EAII,QAAS1nG,EAAIunG,EAAS,OAAS,EAAGvnG,GAAK,EAAGA,GAAK,EAAG,CAC9C,IAAIwD,EAAQ+jG,EAASvnG,CAAC,EACtB,QAASsD,KAAQE,EACPF,KAAQmkG,IACVA,EAAKnkG,CAAI,EAAIE,EAAMF,CAAI,EAGvC,CACI,OAAOmkG,CACX,CACA,SAASE,GAAWz9D,EAAMgrC,EAAM,CAC5B,IAAI0yB,EAAW,CAAE,EACjB,QAASxoG,KAAO8qC,EACRgrC,EAAKhrC,EAAK9qC,CAAG,EAAGA,CAAG,IACnBwoG,EAASxoG,CAAG,EAAI8qC,EAAK9qC,CAAG,GAGhC,OAAOwoG,CACX,CACA,SAASC,GAAQ39D,EAAMgrC,EAAM,CACzB,IAAI4yB,EAAU,CAAE,EAChB,QAAS1oG,KAAO8qC,EACZ49D,EAAQ1oG,CAAG,EAAI81E,EAAKhrC,EAAK9qC,CAAG,EAAGA,CAAG,EAEtC,OAAO0oG,CACX,CACA,SAASC,GAAYnyF,EAAG,CACpB,IAAIs0B,EAAO,CAAE,EACb,QAAStnC,KAAQgT,EACbs0B,EAAKtnC,CAAI,EAAI,GAEjB,OAAOsnC,CACX,CAGA,SAAS89D,GAAkB7lG,EAAK,CAC5B,IAAIyT,EAAI,CAAE,EACV,QAASxW,KAAO+C,EACZyT,EAAE,KAAKzT,EAAI/C,CAAG,CAAC,EAEnB,OAAOwW,CACX,CACA,SAAS+sF,GAAajG,EAAMC,EAAM,CAC9B,GAAID,IAASC,EACT,MAAO,GAEX,QAASv9F,KAAOs9F,EACZ,GAAIz8F,GAAe,KAAKy8F,EAAMt9F,CAAG,GACzB,EAAEA,KAAOu9F,GACT,MAAO,GAInB,QAASv9F,KAAOu9F,EACZ,GAAI18F,GAAe,KAAK08F,EAAMv9F,CAAG,GACzBs9F,EAAKt9F,CAAG,IAAMu9F,EAAKv9F,CAAG,EACtB,MAAO,GAInB,MAAO,EACX,CACA,MAAM6oG,IAAa,WACnB,SAASC,IAAuBxL,EAAMC,EAAM,CACxC,MAAMx5E,EAAOglF,GAAgBzL,EAAMC,CAAI,EACvC,QAASv9F,KAAO+jB,EACZ,GAAI,CAAC8kF,IAAW,KAAK7oG,CAAG,EACpB,MAAO,GAGf,MAAO,EACX,CACA,SAAS+oG,GAAgBzL,EAAMC,EAAM,CACjC,IAAIx5E,EAAO,CAAE,EACb,QAAS/jB,KAAOs9F,EACRz8F,GAAe,KAAKy8F,EAAMt9F,CAAG,IACvBA,KAAOu9F,GACTx5E,EAAK,KAAK/jB,CAAG,GAIzB,QAASA,KAAOu9F,EACR18F,GAAe,KAAK08F,EAAMv9F,CAAG,GACzBs9F,EAAKt9F,CAAG,IAAMu9F,EAAKv9F,CAAG,GACtB+jB,EAAK,KAAK/jB,CAAG,EAIzB,OAAO+jB,CACX,CACA,SAASilF,GAAYz3E,EAAUC,EAAUy3E,EAAgB,GAAI,CACzD,GAAI13E,IAAaC,EACb,MAAO,GAEX,QAASxxB,KAAOwxB,EACZ,GAAI,EAAAxxB,KAAOuxB,GAAY23E,IAAe33E,EAASvxB,CAAG,EAAGwxB,EAASxxB,CAAG,EAAGipG,EAAcjpG,CAAG,CAAC,GAElF,MAAO,GAIf,QAASA,KAAOuxB,EACZ,GAAI,EAAEvxB,KAAOwxB,GACT,MAAO,GAGf,MAAO,EACX,CAIA,SAAS03E,IAAeC,EAAMC,EAAMC,EAAY,CAC5C,OAAIF,IAASC,GAAQC,IAAe,GACzB,GAEPA,EACOA,EAAWF,EAAMC,CAAI,EAEzB,EACX,CACA,SAASE,IAAgBx+D,EAAMy+D,EAAa,EAAGC,EAAUC,EAAO,EAAG,CAC/D,IAAIlmG,EAAM,CAAE,EACRimG,GAAY,OACZA,EAAW,OAAO,KAAK1+D,CAAI,EAAE,QAEjC,QAASlqC,EAAI2oG,EAAY3oG,EAAI4oG,EAAU5oG,GAAK6oG,EAAM,CAC9C,IAAIxpG,EAAM6qC,EAAKlqC,CAAC,EACZX,IAAQ,QACRsD,EAAI,KAAKtD,CAAG,CAExB,CACI,OAAOsD,CACX,CAEA,IAAImmG,GAAyB,CAAE,EAC/B,SAASC,IAAuBzlG,EAAM0lG,EAAU,CAC5CF,GAAuBxlG,CAAI,EAAI0lG,CACnC,CACA,SAASC,IAAqB3lG,EAAM,CAChC,OAAO,IAAIwlG,GAAuBxlG,CAAI,CAC1C,CACA,MAAM4lG,GAAwB,CAC1B,cAAcpnE,EAAG,CACb,OAAOA,EAAE,eAAgB,CACjC,CACI,eAAeA,EAAG,CACd,OAAOA,EAAE,YAAa,CAC9B,CACI,aAAaA,EAAG,CACZ,OAAOA,EAAE,WAAY,CAC7B,CACI,cAAchiC,EAAK,CACf,OAAO2/F,GAAe3/F,CAAG,CACjC,CACI,cAAc8gG,EAAQ,CAClB,OAAOpB,GAAeoB,CAAM,CACpC,CACA,CACAmI,IAAuB,UAAWG,GAAuB,EAEzD,MAAMC,IAAS,oHACf,SAAS14D,IAAMvxC,EAAK,CAChB,IAAI0pB,EAAIugF,IAAO,KAAKjqG,CAAG,EACvB,GAAI0pB,EAAG,CACH,IAAIg4E,EAAS,IAAI,KAAK,KAAK,IAAI,OAAOh4E,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,EAAI,OAAOA,EAAE,CAAC,CAAC,EAAI,EAAI,EAAG,OAAOA,EAAE,CAAC,GAAK,CAAC,EAAG,OAAOA,EAAE,CAAC,GAAK,CAAC,EAAG,OAAOA,EAAE,CAAC,GAAK,CAAC,EAAG,OAAOA,EAAE,EAAE,GAAK,CAAC,EAAGA,EAAE,EAAE,EAAI,CAAO,KAAKA,EAAE,EAAE,CAAC,GAAM,IAAO,CAAC,CAAC,EAC/L,GAAI24E,GAAYX,CAAM,EAAG,CACrB,IAAIhsC,EAAiB,KACrB,OAAIhsC,EAAE,EAAE,IACJgsC,GAAkBhsC,EAAE,EAAE,IAAM,IAAM,GAAK,IAAM,OAAOA,EAAE,EAAE,GAAK,CAAC,EAAI,GAC9D,OAAOA,EAAE,EAAE,GAAK,CAAC,IAElB,CACH,OAAAg4E,EACA,kBAAmB,CAACh4E,EAAE,CAAC,EACvB,eAAAgsC,CACH,CACb,CACA,CACI,OAAO,IACX,CAEA,MAAMw0C,GAAQ,CACV,YAAYC,EAAU,CAClB,IAAIh3C,EAAW,KAAK,SAAWg3C,EAAS,SACpCC,EAAkBj3C,IAAa,SAAWA,IAAa,MACvDg3C,EAAS,mBAAqBC,IAC9B,KAAK,kBAAoB,IAAID,EAAS,kBAAkBh3C,CAAQ,GAEpE,KAAK,iBAAmB,GAAQ,CAACi3C,GAAmB,KAAK,mBACzD,KAAK,eAAiBL,IAAqBI,EAAS,cAAc,EAClE,KAAK,OAASA,EAAS,OACvB,KAAK,QAAUA,EAAS,OAAO,KAAK,IACpC,KAAK,QAAUA,EAAS,OAAO,KAAK,IAChCA,EAAS,wBAA0B,QACnC,KAAK,QAAU,EACf,KAAK,QAAU,GAEf,OAAOA,EAAS,UAAa,WAC7B,KAAK,QAAUA,EAAS,UAExB,OAAOA,EAAS,uBAA0B,aAC1C,KAAK,eAAiBA,EAAS,uBAEnC,KAAK,SAAWA,EAAS,UAAY,KAAOA,EAAS,SAAWA,EAAS,OAAO,QAAQ,SACxF,KAAK,cAAgBA,EAAS,cAAgB,KAAOA,EAAS,aAAeA,EAAS,OAAO,QAAQ,eAAiB,KAAK,SAC3H,KAAK,aAAeA,EAAS,aAC7B,KAAK,iBAAmBA,EAAS,gBACzC,CAEI,aAAa//C,EAAO,CAChB,IAAIlV,EAAO,KAAK,iBAAiBkV,CAAK,EACtC,OAAIlV,IAAS,KACF,KAEJA,EAAK,MACpB,CACI,iBAAkB,CACd,OAAI,KAAK,iBACE,KAAK,kBAAkB,IAAI,KAAM,EAAC,QAAO,CAAE,EAI/CqrD,GAAe4B,GAAiB,IAAI,IAAM,CAAC,CAC1D,CACI,iBAAiB/3C,EAAO,CACpB,GAAI,OAAOA,GAAU,SACjB,OAAO,KAAK,MAAMA,CAAK,EAE3B,IAAIs3C,EAAS,KAab,OAZI,OAAOt3C,GAAU,SACjBs3C,EAAS,KAAK,kBAAkBt3C,CAAK,EAEhCA,aAAiB,MACtBA,EAAQA,EAAM,QAAS,EAClB,MAAMA,CAAK,IACZs3C,EAAS,KAAK,kBAAkBt3C,CAAK,IAGpC,MAAM,QAAQA,CAAK,IACxBs3C,EAASnB,GAAen2C,CAAK,GAE7Bs3C,IAAW,MAAQ,CAACW,GAAYX,CAAM,EAC/B,KAEJ,CAAE,OAAAA,EAAQ,kBAAmB,GAAO,UAAW,IAAM,CACpE,CACI,MAAMruF,EAAG,CACL,IAAI+3C,EAAQ7Z,IAAMl+B,CAAC,EACnB,GAAI+3C,IAAU,KACV,OAAO,KAEX,GAAI,CAAE,OAAAs2C,CAAM,EAAKt2C,EACbi/C,EAAY,KAChB,OAAIj/C,EAAM,iBAAmB,OACrB,KAAK,iBACLs2C,EAAS,KAAK,kBAAkBA,EAAO,QAAS,EAAGt2C,EAAM,eAAiB,GAAK,GAAI,EAGnFi/C,EAAYj/C,EAAM,gBAGnB,CAAE,OAAAs2C,EAAQ,kBAAmBt2C,EAAM,kBAAmB,UAAAi/C,CAAW,CAChF,CAEI,QAAQ3I,EAAQ,CACZ,OAAO,KAAK,eAAe,cAAcA,CAAM,CACvD,CACI,SAASA,EAAQ,CACb,OAAO,KAAK,eAAe,eAAeA,CAAM,CACxD,CACI,OAAOA,EAAQ,CACX,OAAO,KAAK,eAAe,aAAaA,CAAM,CACtD,CAEI,IAAIA,EAAQpC,EAAK,CACb,IAAI5oF,EAAI,KAAK,eAAe,cAAcgrF,CAAM,EAChD,OAAAhrF,EAAE,CAAC,GAAK4oF,EAAI,MACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,OACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,KACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,aACL,KAAK,eAAe,cAAc5oF,CAAC,CAClD,CACI,SAASgrF,EAAQpC,EAAK,CAClB,IAAI5oF,EAAI,KAAK,eAAe,cAAcgrF,CAAM,EAChD,OAAAhrF,EAAE,CAAC,GAAK4oF,EAAI,MACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,OACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,KACZ5oF,EAAE,CAAC,GAAK4oF,EAAI,aACL,KAAK,eAAe,cAAc5oF,CAAC,CAClD,CACI,SAASgrF,EAAQt+F,EAAG,CAChB,IAAIsT,EAAI,KAAK,eAAe,cAAcgrF,CAAM,EAChD,OAAAhrF,EAAE,CAAC,GAAKtT,EACD,KAAK,eAAe,cAAcsT,CAAC,CAClD,CACI,UAAUgrF,EAAQt+F,EAAG,CACjB,IAAIsT,EAAI,KAAK,eAAe,cAAcgrF,CAAM,EAChD,OAAAhrF,EAAE,CAAC,GAAKtT,EACD,KAAK,eAAe,cAAcsT,CAAC,CAClD,CAEI,eAAegqF,EAAIC,EAAI,CACnB,GAAI,CAAE,eAAAmG,CAAc,EAAK,KACzB,OAAIzF,GAASX,CAAE,IAAMW,GAASV,CAAE,GAC5BmG,EAAe,aAAapG,CAAE,IAAMoG,EAAe,aAAanG,CAAE,GAClEmG,EAAe,eAAepG,CAAE,IAAMoG,EAAe,eAAenG,CAAE,EAC/DmG,EAAe,cAAcnG,CAAE,EAAImG,EAAe,cAAcpG,CAAE,EAEtE,IACf,CACI,gBAAgBA,EAAIC,EAAI,CACpB,GAAI,CAAE,eAAAmG,CAAc,EAAK,KACzB,OAAIzF,GAASX,CAAE,IAAMW,GAASV,CAAE,GAC5BmG,EAAe,aAAapG,CAAE,IAAMoG,EAAe,aAAanG,CAAE,EAC1DmG,EAAe,eAAenG,CAAE,EAAImG,EAAe,eAAepG,CAAE,GACvEoG,EAAe,cAAcnG,CAAE,EAAImG,EAAe,cAAcpG,CAAE,GAAK,GAEzE,IACf,CAEI,kBAAkBA,EAAIC,EAAI,CACtB,IAAI,EAAI,KAAK,eAAeD,EAAIC,CAAE,EAClC,OAAI,IAAM,KACC,CAAE,KAAM,OAAQ,MAAO,CAAG,GAErC,EAAI,KAAK,gBAAgBD,EAAIC,CAAE,EAC3B,IAAM,KACC,CAAE,KAAM,QAAS,MAAO,CAAG,GAEtC,EAAIQ,IAAeT,EAAIC,CAAE,EACrB,IAAM,KACC,CAAE,KAAM,OAAQ,MAAO,CAAG,GAErC,EAAIS,GAAcV,EAAIC,CAAE,EACpB,IAAM,KACC,CAAE,KAAM,MAAO,MAAO,CAAG,GAEpC,EAAIE,IAAUH,EAAIC,CAAE,EAChBxC,GAAM,CAAC,EACA,CAAE,KAAM,OAAQ,MAAO,CAAG,GAErC,EAAI2C,IAAYJ,EAAIC,CAAE,EAClBxC,GAAM,CAAC,EACA,CAAE,KAAM,SAAU,MAAO,CAAG,GAEvC,EAAI4C,IAAYL,EAAIC,CAAE,EAClBxC,GAAM,CAAC,EACA,CAAE,KAAM,SAAU,MAAO,CAAG,EAEhC,CAAE,KAAM,cAAe,MAAOwC,EAAG,QAAS,EAAGD,EAAG,SAAW,OAC1E,CACI,sBAAsBA,EAAIC,EAAI/9D,EAAG,CAE7B,IAAIiP,EACJ,OAAIjP,EAAE,QACFiP,EAAO,KAAK,eAAe6uD,EAAIC,CAAE,EAC7B9uD,IAAS,MACFA,EAAOwtD,IAAaz8D,CAAC,EAGhCA,EAAE,SACFiP,EAAO,KAAK,gBAAgB6uD,EAAIC,CAAE,EAC9B9uD,IAAS,MACFA,EAAO2tD,IAAc58D,CAAC,EAGjCA,EAAE,OACFiP,EAAOuvD,GAAcV,EAAIC,CAAE,EACvB9uD,IAAS,MACFA,EAAO0tD,GAAY38D,CAAC,GAG3B+9D,EAAG,QAAS,EAAGD,EAAG,QAAS,GAAIjB,GAAU78D,CAAC,CAC1D,CAGI,QAAQlZ,EAAGi1E,EAAM,CACb,OAAIA,IAAS,OACF,KAAK,YAAYj1E,CAAC,EAEzBi1E,IAAS,QACF,KAAK,aAAaj1E,CAAC,EAE1Bi1E,IAAS,OACF,KAAK,YAAYj1E,CAAC,EAEzBi1E,IAAS,MACFt9C,GAAW33B,CAAC,EAEnBi1E,IAAS,OACF2C,IAAY53E,CAAC,EAEpBi1E,IAAS,SACF4C,IAAc73E,CAAC,EAEtBi1E,IAAS,SACF6C,IAAc93E,CAAC,EAEnB,IACf,CACI,YAAYA,EAAG,CACX,OAAO,KAAK,eAAe,cAAc,CACrC,KAAK,eAAe,cAAcA,CAAC,CAC/C,CAAS,CACT,CACI,aAAaA,EAAG,CACZ,OAAO,KAAK,eAAe,cAAc,CACrC,KAAK,eAAe,cAAcA,CAAC,EACnC,KAAK,eAAe,eAAeA,CAAC,CAChD,CAAS,CACT,CACI,YAAYA,EAAG,CACX,OAAO,KAAK,eAAe,cAAc,CACrC,KAAK,eAAe,cAAcA,CAAC,EACnC,KAAK,eAAe,eAAeA,CAAC,EACpCA,EAAE,cAAiBA,EAAE,UAAW,EAAG,KAAK,QAAU,GAAK,CACnE,CAAS,CACT,CAEI,kBAAkBg4E,EAAQ,CACtB,OAAI,KAAK,eACE,KAAK,eAAe,KAAK,OAAOA,CAAM,CAAC,EAE3CD,IAAWC,EAAQ,KAAK,QAAS,KAAK,OAAO,CAC5D,CAEI,OAAOA,EAAQ/1C,EAAW2+C,EAAc,GAAI,CACxC,OAAO3+C,EAAU,OAAO,CACpB,OAAA+1C,EACA,eAAgB4I,EAAY,WAAa,KACrCA,EAAY,UACZ,KAAK,gBAAgB5I,CAAM,CAClC,EAAE,IAAI,CACf,CACI,YAAY/rF,EAAOC,EAAK+1C,EAAW2+C,EAAc,GAAI,CACjD,OAAIA,EAAY,iBACZ10F,EAAM4qF,GAAM5qF,EAAK,EAAE,GAEhB+1C,EAAU,YAAY,CACzB,OAAQh2C,EACR,eAAgB20F,EAAY,gBAAkB,KAC1CA,EAAY,eACZ,KAAK,gBAAgB30F,CAAK,CAC1C,EAAW,CACC,OAAQC,EACR,eAAgB00F,EAAY,cAAgB,KACxCA,EAAY,aACZ,KAAK,gBAAgB10F,CAAG,CACxC,EAAW,KAAM00F,EAAY,gBAAgB,CAC7C,CAKI,UAAU5I,EAAQthF,EAAe,GAAI,CACjC,IAAIs1C,EAAiB,KACrB,OAAKt1C,EAAa,qBACVA,EAAa,WAAa,KAC1Bs1C,EAAiBt1C,EAAa,UAG9Bs1C,EAAiB,KAAK,gBAAgBgsC,CAAM,GAG7CY,GAAeZ,EAAQhsC,EAAgBt1C,EAAa,QAAQ,CAC3E,CAEI,kBAAkB2/E,EAAI,CAClB,OAAI,KAAK,WAAa,QACXQ,GAAe4B,GAAiB,IAAI,KAAKpC,CAAE,CAAC,CAAC,EAEpD,KAAK,WAAa,OAAS,CAAC,KAAK,kBAC1B,IAAI,KAAKA,CAAE,EAEfQ,GAAe,KAAK,kBAAkB,iBAAiBR,CAAE,CAAC,CACzE,CACI,gBAAgBr2E,EAAG,CACf,OAAI,KAAK,WAAa,QACX,CAAC04E,GAAiB9B,GAAe52E,CAAC,CAAC,EAAE,kBAAiB,EAE7D,KAAK,WAAa,MACX,EAEP,KAAK,kBACE,KAAK,kBAAkB,eAAe42E,GAAe52E,CAAC,CAAC,EAE3D,IACf,CAEI,OAAOA,EAAG2gF,EAAW,CACjB,OAAI,KAAK,WAAa,QACXjI,GAAiB9B,GAAe52E,CAAC,CAAC,EAEzC,KAAK,WAAa,MACX,IAAI,KAAKA,EAAE,QAAS,GAE1B,KAAK,kBAGH,IAAI,KAAKA,EAAE,QAAS,EACvB,KAAK,kBAAkB,eAAe42E,GAAe52E,CAAC,CAAC,EAAI,IAAO,EAAE,EAH7D,IAAI,KAAKA,EAAE,QAAO,GAAM2gF,GAAa,EAAE,CAI1D,CACA,CAEA,MAAME,EAAM,CACR,YAAYC,EAAiB,CACrB,KAAK,oBACL,KAAK,gBAAgBA,EAAgB,KAAK,kBAAkB,CAAC,CAEzE,CACI,gBAAgBC,EAAkB,CAC9B,IAAIC,EACAC,EACJ,GAAI,OAAOF,GAAqB,UAAYA,EAAkB,CAC1DC,EAAkB,OAAO,OAAO,GAAI,KAAK,WAAW,EACpD,IAAKC,KAAcF,EACfC,EAAgBC,CAAU,EAAI,KAAK,wBAAwBF,EAAiBE,CAAU,CAAC,EAE3F,KAAK,YAAcD,CAC/B,MACiBD,IAAqB,KAC1B,KAAK,YAAc,CAAE,EAEjC,CACI,wBAAwBG,EAAW,CAC/B,IAAI9xC,EAAS,KAAK,mBAClB,OAAIA,GAAU8xC,EAAU,QAAQ9xC,CAAM,IAAM,IACxC8xC,EAAY9xC,EAAS8xC,GAElBA,CACf,CACI,SAAS1qG,EAAK,CACV,OAAO,KAAK,QAAQA,CAAG,GAAK,EACpC,CACI,aAAayqG,EAAYE,EAAO,CAC5B,IAAID,EAOJ,OANIC,GAAS,KAAK,eACdD,EAAY,KAAK,eAAeD,CAAU,GAAK,KAAK,YAAYA,CAAU,EAG1EC,EAAY,KAAK,YAAYD,CAAU,EAEvCC,EACO,GAAG,KAAK,aAAa,IAAIA,CAAS,GAEtC,EACf,CACI,yBAAyBE,EAAmB,CACxC,IAAIF,EACJ,OAAI,KAAK,iCACLA,EAAYE,EAAkB,KAAK,8BAA8B,EAC7DF,GACO,GAAG,KAAK,aAAa,IAAI,KAAK,wBAAwBA,CAAS,CAAC,GAGxE,EACf,CACA,CACAL,GAAM,UAAU,QAAU,CAAE,EAC5BA,GAAM,UAAU,YAAc,CAAE,EAChCA,GAAM,UAAU,cAAgB,GAChCA,GAAM,UAAU,mBAAqB,GAMrC,SAASQ,GAAUC,EAAgB,CAC/BA,EAAgB,EAChB,IAAIC,EAAuBC,GAAe,kBACtCC,EAAY,CAAE,EAClB,SAASC,EAAiB58F,EAAU,CAChC28F,EAAU,KAAK38F,CAAQ,CAC/B,CAGI,IAFA08F,GAAe,kBAAoBE,EACnCC,GAAcC,GAAqBC,IAAe,EAAE,EAAG,SAAS,cAAc,KAAK,CAAC,EAC7EJ,EAAU,QACbA,EAAU,MAAK,EAAI,EAEvBD,GAAe,kBAAoBD,CACvC,CACA,MAAMM,YAAsBC,EAAiB,CACzC,QAAS,CAAE,OAAOF,GAAqB,MAAO,CAAE,EAAE,CAClD,mBAAoB,CAAE,KAAK,SAAS,CAAE,EAAE,CAC5C,CAEA,SAASG,GAAcl6F,EAAc,CACjC,IAAIm6F,EAAcC,IAAqBp6F,CAAY,EAC/Cq6F,EAAeF,EAAY,SAC/B,OAAAA,EAAY,SAAW,UAAY,CAC/B,IAAIG,EAAQ,CAAC,KAAK,gBACd/xF,EAAW8xF,EAAa,MAAM,KAAM,SAAS,EACjD,GAAIC,EAAO,CACP,IAAIC,EAAO,CAAE,EACb,KAAK,sBAAyBC,GAAW,CACjC,KAAK,MAAM,QAAUA,EAAO,OAC5BD,EAAK,QAASxpG,GAAM,CAChBA,EAAE,QAAUypG,EAAO,MACnBzpG,EAAE,YAAa,CACvC,CAAqB,CAER,EACD,KAAK,IAAOA,GAAM,CACdwpG,EAAK,KAAKxpG,CAAC,EACX,IAAI4zE,EAAM5zE,EAAE,qBACZA,EAAE,qBAAuB,IAAM,CAC3BwpG,EAAK,OAAOA,EAAK,QAAQxpG,CAAC,EAAG,CAAC,EAC9B4zE,GAAOA,EAAI,KAAK5zE,CAAC,CACpB,CACJ,CACb,CACQ,OAAOwX,CACV,EACM4xF,CACX,CAEA,MAAMM,GAAgB,CAClB,YAAYC,EAAUC,EAASC,EAAYC,EAAiB,CACxD,KAAK,SAAWH,EAChB,KAAK,QAAUC,EACf,KAAK,WAAaC,EAClB,KAAK,gBAAkBC,EACvB,KAAK,oBAAuB9qC,GAAY,CACpC,KAAK,cAAgB,OAAO,OAAO,CAAE,EAAE,KAAK,eAAiB,CAAE,EAAEA,CAAO,EACxE,KAAK,MAAO,CACf,EACD4qC,EAAQ,GAAG,iBAAkB,KAAK,mBAAmB,EACrD,KAAK,kBAAmB,CAChC,CACI,QAAS,CACL,KAAK,QAAQ,IAAI,iBAAkB,KAAK,mBAAmB,CACnE,CACI,OAAOG,EAAY,CACXA,GAAc,KAAK,gBACnB,KAAK,kBAAiB,EAGtB,KAAK,MAAO,CAExB,CACI,mBAAoB,CAChB,KAAK,oBAAoB,CACrB,KAAM,KAAK,UACvB,CAAS,CACT,CACI,OAAQ,CACA,KAAK,eAAiB,KAAK,SAAS,KAAK,aAAa,IACtD,KAAK,cAAgB,KAEjC,CACA,CAEA,MAAMC,GAAkBb,GAAc,EAAE,EACxC,SAASc,IAAiBC,EAAUC,EAASC,EAAaC,EAAsBC,EAASC,EAAOC,EAAaC,EAAUC,EAAgBd,EAASe,EAAaC,EAA8BC,EAAgC,CACvN,MAAO,CACH,QAAAP,EACA,QAASF,EACT,YAAAI,EACA,QAAAZ,EACA,SAAAa,EACA,eAAAC,EACA,YAAAC,EACA,SAAAT,EACA,QAAAC,EACA,qBAAAE,EACA,MAAAE,EACA,MAAOH,EAAY,YAAc,MACjC,iBAAiBvjF,EAAS,CACtB+iF,EAAQ,GAAG,UAAW/iF,CAAO,CAChC,EACD,oBAAoBA,EAAS,CACzB+iF,EAAQ,IAAI,UAAW/iF,CAAO,CACjC,EACD,sBAAsB8iF,EAAU,CAC5B,OAAO,IAAID,IAAgBC,EAAUC,EAASxN,GAAegO,EAAY,UAAU,EAAGA,EAAY,eAAe,CACpH,EACD,6BAAAQ,EACA,+BAAAC,CACH,CACL,CAGA,MAAMC,WAAsB7pF,EAAU,CAClC,sBAAsBwW,EAAWszE,EAAW,CACxC,OAAI,KAAK,OAEL,QAAQ,IAAIpE,GAAgBlvE,EAAW,KAAK,KAAK,EAAGkvE,GAAgBoE,EAAW,KAAK,KAAK,CAAC,EAEvF,CAACnE,GAAY,KAAK,MAAOnvE,EAAW,KAAK,YAAY,GACxD,CAACmvE,GAAY,KAAK,MAAOmE,EAAW,KAAK,aAAa,CAClE,CAEI,aAAaC,EAAU,CACdpE,GAAY,KAAK,MAAO,OAAO,OAAO,OAAO,OAAO,GAAI,KAAK,KAAK,EAAGoE,CAAQ,EAAG,KAAK,aAAa,GACnG,KAAK,SAASA,CAAQ,CAElC,CACA,CACAF,GAAc,iBAAmBG,IACjCH,GAAc,iBAAmBI,IACjCJ,GAAc,YAAcd,GAC5Bc,GAAc,UAAU,aAAe,CAAE,EACzCA,GAAc,UAAU,cAAgB,CAAE,EAC1C,MAAMK,WAAsBL,EAAc,CAC1C,CACAK,GAAc,YAAcnB,GAC5B,SAASiB,IAAiBG,EAAc,CACpC,IAAI1iE,EAAO,OAAO,OAAO,KAAK,UAAU,YAAY,EACpD,OAAO,OAAOA,EAAM0iE,CAAY,EAChC,KAAK,UAAU,aAAe1iE,CAClC,CACA,SAASwiE,IAAiBG,EAAe,CACrC,IAAI3iE,EAAO,OAAO,OAAO,KAAK,UAAU,aAAa,EACrD,OAAO,OAAOA,EAAM2iE,CAAa,EACjC,KAAK,UAAU,cAAgB3iE,CACnC,CAEA,SAAS1qB,GAAOxQ,EAAK4R,EAAS,CACtB,OAAO5R,GAAQ,WACfA,EAAI4R,CAAO,EAEN5R,IAELA,EAAI,QAAU4R,EAEtB,CAEA,MAAMksF,WAAwBH,EAAc,CACxC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,GAAK3Q,GAAM,EAChB,KAAK,eAAiB,CAAE,EACxB,KAAK,gBAAkB,CAAE,EACzB,KAAK,SAAYj8F,GAAO,CACpB,KAAM,CAAE,QAAA0R,GAAY,KAAK,QACnB,CAAE,cAAAs7F,GAAkB,KAAK,OAC3B,CAACt7F,EAAQ,yBAA2B,CAACu7F,GAA0BD,EAAet7F,CAAO,IACrF,KAAK,YAAY1R,CAAE,CAE1B,EACD,KAAK,YAAeA,GAAO,CACnB,KAAK,MAAM,OACXyf,GAAO,KAAK,MAAM,MAAOzf,CAAE,CAElC,CACT,CACI,QAAS,CACL,KAAM,CAAE,MAAAyD,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACd,CAAE,gBAAAgjF,EAAiB,iBAAAC,EAAkB,YAAAC,CAAa,EAAG3pG,EACrD6nB,EAAQ+hF,GAAa5pG,EAAO,GAAI,KAAK,QAAQ,EACnD,IAAI6pG,EAAa,GACbC,EACAC,EAAiB,CAAE,EACnBC,EACJ,GAAIP,GAAmB,KAAM,CACzB,MAAMQ,EAAqB,OAAOR,GAAoB,WAClDA,EAAgBE,EAAaO,EAAa,EAC1CT,EACJ,GAAIQ,IAAuB,GACvBJ,EAAa,OAEZ,CACD,MAAM3sG,EAAW+sG,GAAsB,OAAOA,GAAuB,SACjE/sG,GAAa,SAAU+sG,EACvBpiF,EAAM,wBAA0B,CAAE,OAAQoiF,EAAmB,IAAM,EAE9D/sG,GAAa,aAAc+sG,EAChCF,EAAiB,MAAM,UAAU,MAAM,KAAKE,EAAmB,QAAQ,GAElE/sG,EACHitG,GAAeF,CAAkB,EACjC,OAAOA,GAAuB,YAGhCH,EAAeG,EAIfD,EAAuBC,CAE3C,CACA,MAEYJ,EAAa,CAACL,GAA0BxpG,EAAM,cAAeiO,CAAO,EAExE,OAAI47F,GAAcH,IACdI,EAAeJ,EAAiBC,CAAW,GAE/C,KAAK,eAAiBI,EACtB,KAAK,qBAAuBC,EACrBE,GAAclqG,EAAM,MAAO6nB,EAAOiiF,CAAY,CAC7D,CACI,mBAAoB,CAChB,KAAK,qBAAsB,EAC3B,KAAK,uBAAuB,EAAI,CACxC,CACI,oBAAqB,CACjB,KAAK,qBAAsB,EAC3B,KAAK,uBAAuB,EAAI,CACxC,CACI,sBAAuB,CACnB,KAAK,uBAAuB,EAAK,CACzC,CACI,uBAAuBj2D,EAAU,CAC7B,IAAI/yC,EACJ,KAAM,CAAE,MAAAd,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,sBAAA2jF,EAAuB,uBAAAC,CAAwB,EAAG5jF,EAAQ,QAClE,GAAI2jF,EAAuB,CACvB,MAAME,GAAiBxpG,EAAK,KAAK,wBAA0B,MAAQA,IAAO,OAASA,EAAKupG,GAA2B,KAA4C,OAASA,EAAuBrqG,EAAM,aAAa,EAC9MsqG,GACAF,EAAsB,OAAO,OAAO,OAAO,OAAO,CAAE,GAAI,KAAK,GAAI,SAAAv2D,EAAU,YAAa,KAAK,KAAM,qBAAsB,KAAK,YAC1H,cAAAy2D,GAAiBtqG,CAAK,EAAG,CAAE,WAAYA,EAAM,WAAa,IAAI,OAAOuqG,GAAQ,CAAG,EAAC,CAErG,CACA,CACI,sBAAuB,CACnB,KAAM,CAAE,eAAAR,EAAgB,gBAAAS,CAAe,EAAK,KACtCjuG,EAAK,KAAK,KAChB,GAAI,CAACm/F,GAAcqO,EAAgBS,CAAe,EAAG,CACjDA,EAAgB,QAAQjU,EAAa,EACrC,QAASkU,KAAWV,EAChBxtG,EAAG,YAAYkuG,CAAO,EAE1B,KAAK,gBAAkBV,CACnC,CACA,CACA,CACAT,GAAgB,iBAAiB,CAC7B,UAAW5N,GACX,QAASyD,GACT,QAASuF,IACT,YAAavF,EACjB,CAAC,EAOD,SAASqK,GAA0BD,EAAet7F,EAAS,CACvD,IAAInN,EACJ,MAAO,GAAQmN,EAAQ,uBACnBs7F,IACE,GAAAzoG,EAAKmN,EAAQ,0BAA4B,MAAQnN,IAAO,SAAkBA,EAAGyoG,CAAa,GACpG,CACA,SAASK,GAAa5pG,EAAO0qG,EAAiBC,EAAO,CACjD,MAAM9iF,EAAQ,OAAO,OAAO,OAAO,OAAO,GAAI7nB,EAAM,OAAO,EAAG,CAAE,IAAK2qG,CAAK,CAAE,EAC5E,OAAI3qG,EAAM,WAAa0qG,KACnB7iF,EAAM,WAAa7nB,EAAM,WAAa,CAAE,GACnC,OAAO0qG,GAAmB,CAAE,GAC5B,OAAO7iF,EAAM,WAAa,CAAE,GAC5B,OAAO,OAAO,EACd,KAAK,GAAG,GAEb7nB,EAAM,UACN6nB,EAAM,MAAQ7nB,EAAM,SAEjB6nB,CACX,CACA,SAAS0iF,IAAS1uG,EAAK,CACnB,MAAO,EAAQA,CACnB,CAEA,MAAM+uG,GAAWzD,GAAc,CAAC,EAEhC,MAAM0D,WAAyB5rF,EAAU,CACrC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,aAAe6rF,IAAqB,KAAK,OAAW,IAAI,EAC7D,KAAK,SAAYvuG,GAAO,CACpB,KAAK,GAAKA,EACN,KAAK,MAAM,QACXyf,GAAO,KAAK,MAAM,MAAOzf,CAAE,EACvBA,GAAM,KAAK,iBACX,KAAK,kBAAmB,EAGnC,CACT,CACI,QAAS,CACL,KAAM,CAAE,MAAAyD,CAAK,EAAK,KACZ+qG,EAAsBC,IAAmBhrG,EAAM,mBAAoBA,EAAM,WAAW,EAC1F,GAAIA,EAAM,SAAU,CAChB,MAAMirG,EAAUrB,GAAa5pG,EAAO+qG,EAAqB,KAAK,QAAQ,EAChEv1F,EAAWxV,EAAM,SAAS,KAAK,aAAcA,EAAM,YAAairG,CAAO,EAC7E,OAAIjrG,EAAM,MACCkqG,GAAclqG,EAAM,MAAOirG,EAASz1F,CAAQ,EAG5CA,CAEvB,KAEY,QAAO00F,GAAeZ,GAAkB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEtpG,CAAK,EAAG,CAAE,MAAO,KAAK,SAAU,MAAOA,EAAM,OAAS,MAAO,WAAYA,EAAM,WAAa,IAAI,OAAO+qG,CAAmB,EAAG,SAAU,KAAK,OAAS,EAAC,CAE1O,CACI,mBAAoB,CAChB,IAAIjqG,EAAIs7C,EACJ,KAAK,IACJA,GAAMt7C,EAAK,KAAK,OAAO,YAAc,MAAQs7C,IAAO,QAAkBA,EAAG,KAAKt7C,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,KAAK,MAAM,WAAW,EAAG,CAAE,GAAI,KAAK,EAAI,EAAC,EAG5J,KAAK,gBAAkB,EAEnC,CACI,sBAAuB,CACnB,IAAIA,EAAIs7C,GACPA,GAAMt7C,EAAK,KAAK,OAAO,eAAiB,MAAQs7C,IAAO,QAAkBA,EAAG,KAAKt7C,EAAI,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE,KAAK,MAAM,WAAW,EAAG,CAAE,GAAI,KAAK,EAAI,EAAC,CACvK,CACA,CACA+pG,GAAiB,YAAcD,GAC/B,SAASE,IAAqBI,EAAoBlrG,EAAO,CACrD,MAAMmrG,EAAcD,EAAmB,MACvC,OAAOhB,GAAeZ,GAAkB,OAAO,OAAO,CAAE,YAAa6B,EAAY,YAAa,cAAeA,EAAY,cAAe,gBAAiBA,EAAY,gBAAiB,iBAAkBA,EAAY,iBAAkB,SAAUD,EAAmB,SAAWlrG,CAAK,CAAC,CACxR,CAEA,SAASgrG,IAAmBI,EAAoBzB,EAAa,CACzD,MAAM0B,EAAa,OAAOD,GAAuB,WAC7CA,EAAmBzB,CAAW,EAC9ByB,GAAsB,CAAE,EAC5B,OAAO,OAAOC,GAAe,SAAW,CAACA,CAAU,EAAIA,CAC3D,CAEA,MAAMC,WAAsBnC,EAAc,CACtC,QAAS,CACL,GAAI,CAAE,MAAAnpG,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACdkjF,EAAc,CAAE,KAAMljF,EAAQ,OAAS,EAC3C,OAAQyjF,GAAcW,GAAkB,OAAO,OAAO,CAAE,EAAE7qG,EAAO,CAAE,MAAOA,EAAM,OAAS,MAAO,UAAW,CACnG,GAAGurG,GAAoBvrG,EAAM,QAAQ,EACrC,GAAIA,EAAM,WAAa,EACvC,EAAe,YAAa2pG,EAAa,mBAAoB17F,EAAQ,eAAgB,cAAe,OAAW,SAAUA,EAAQ,aAAc,YAAaA,EAAQ,eAAe,CAAE,EAAG,IAAMjO,EAAM,QAAQ,CAC5M,CACA,CACA,SAASurG,GAAoBrD,EAAU,CACnC,MAAO,CACH,MAAMA,EAAS,IAAI,QACnB,SACH,CACL,CAEA,SAASsD,IAAW1lD,EAAOwiD,EAAS,CAChC,IAAIj3F,EAAQ,KACRC,EAAM,KAUV,OATIw0C,EAAM,QACNz0C,EAAQi3F,EAAQ,aAAaxiD,EAAM,KAAK,GAExCA,EAAM,MACNx0C,EAAMg3F,EAAQ,aAAaxiD,EAAM,GAAG,GAEpC,CAACz0C,GAAS,CAACC,GAGXD,GAASC,GAAOA,EAAMD,EACf,KAEJ,CAAE,MAAAA,EAAO,IAAAC,CAAK,CACzB,CAGA,SAASm6F,GAAaC,EAAQC,EAAiB,CAC3C,IAAIC,EAAiB,CAAE,EACnB,CAAE,MAAAv6F,CAAO,EAAGs6F,EACZ,EACAE,EAGJ,IADAH,EAAO,KAAKI,GAAa,EACpB,EAAI,EAAG,EAAIJ,EAAO,OAAQ,GAAK,EAChCG,EAAYH,EAAO,CAAC,EAEhBG,EAAU,MAAQx6F,GAClBu6F,EAAe,KAAK,CAAE,MAAAv6F,EAAO,IAAKw6F,EAAU,MAAO,EAEnDA,EAAU,IAAMx6F,IAChBA,EAAQw6F,EAAU,KAI1B,OAAIx6F,EAAQs6F,EAAgB,KACxBC,EAAe,KAAK,CAAE,MAAAv6F,EAAO,IAAKs6F,EAAgB,IAAK,EAEpDC,CACX,CACA,SAASE,IAAcC,EAAQC,EAAQ,CACnC,OAAOD,EAAO,MAAM,QAAO,EAAKC,EAAO,MAAM,SACjD,CACA,SAASC,GAAgBF,EAAQC,EAAQ,CACrC,GAAI,CAAE,MAAA36F,EAAO,IAAAC,CAAG,EAAKy6F,EACjBG,EAAW,KACf,OAAIF,EAAO,QAAU,OACb36F,IAAU,KACVA,EAAQ26F,EAAO,MAGf36F,EAAQ,IAAI,KAAK,KAAK,IAAIA,EAAM,QAAO,EAAI26F,EAAO,MAAM,QAAS,EAAC,GAGtEA,EAAO,KAAO,OACV16F,IAAQ,KACRA,EAAM06F,EAAO,IAGb16F,EAAM,IAAI,KAAK,KAAK,IAAIA,EAAI,QAAO,EAAI06F,EAAO,IAAI,QAAS,EAAC,IAGhE36F,IAAU,MAAQC,IAAQ,MAAQD,EAAQC,KAC1C46F,EAAW,CAAE,MAAA76F,EAAO,IAAAC,CAAK,GAEtB46F,CACX,CACA,SAASC,IAAYJ,EAAQC,EAAQ,CACjC,OAAQD,EAAO,QAAU,KAAO,KAAOA,EAAO,MAAM,QAAS,MAAOC,EAAO,QAAU,KAAO,KAAOA,EAAO,MAAM,aAC3GD,EAAO,MAAQ,KAAO,KAAOA,EAAO,IAAI,QAAO,MAASC,EAAO,MAAQ,KAAO,KAAOA,EAAO,IAAI,UACzG,CACA,SAASI,GAAgBL,EAAQC,EAAQ,CACrC,OAAQD,EAAO,MAAQ,MAAQC,EAAO,QAAU,MAAQD,EAAO,IAAMC,EAAO,SACvED,EAAO,QAAU,MAAQC,EAAO,MAAQ,MAAQD,EAAO,MAAQC,EAAO,IAC/E,CACA,SAASK,GAAmBC,EAAYC,EAAY,CAChD,OAAQD,EAAW,QAAU,MAASC,EAAW,QAAU,MAAQA,EAAW,OAASD,EAAW,SAC7FA,EAAW,MAAQ,MAASC,EAAW,MAAQ,MAAQA,EAAW,KAAOD,EAAW,IAC7F,CACA,SAASE,GAAoBC,EAAOxxD,EAAM,CACtC,OAAQwxD,EAAM,QAAU,MAAQxxD,GAAQwxD,EAAM,SACzCA,EAAM,MAAQ,MAAQxxD,EAAOwxD,EAAM,IAC5C,CAGA,SAASC,IAAuBzxD,EAAMwxD,EAAO,CACzC,OAAIA,EAAM,OAAS,MAAQxxD,EAAOwxD,EAAM,MAC7BA,EAAM,MAEbA,EAAM,KAAO,MAAQxxD,GAAQwxD,EAAM,IAC5B,IAAI,KAAKA,EAAM,IAAI,QAAO,EAAK,CAAC,EAEpCxxD,CACX,CAMA,SAAS0xD,GAAuBC,EAAY,CACxC,IAAIC,EAAS,KAAK,MAAMvQ,GAASsQ,EAAW,MAAOA,EAAW,GAAG,CAAC,GAAK,EACnEv7F,EAAQ0rC,GAAW6vD,EAAW,KAAK,EACnCt7F,EAAM4pC,GAAQ7pC,EAAOw7F,CAAM,EAC/B,MAAO,CAAE,MAAAx7F,EAAO,IAAAC,CAAK,CACzB,CAGA,SAASw7F,GAAuBF,EAAYG,EAAmB3S,GAAe,CAAC,EAAG,CAC9E,IAAI4S,EAAW,KACXC,EAAS,KACb,GAAIL,EAAW,IAAK,CAChBK,EAASlwD,GAAW6vD,EAAW,GAAG,EAClC,IAAIM,EAAYN,EAAW,IAAI,QAAO,EAAKK,EAAO,UAI9CC,GAAaA,GAAa/R,GAAU4R,CAAgB,IACpDE,EAAS/xD,GAAQ+xD,EAAQ,CAAC,EAEtC,CACI,OAAIL,EAAW,QACXI,EAAWjwD,GAAW6vD,EAAW,KAAK,EAElCK,GAAUA,GAAUD,IACpBC,EAAS/xD,GAAQ8xD,EAAU,CAAC,IAG7B,CAAE,MAAOA,EAAU,IAAKC,CAAQ,CAC3C,CAMA,SAASE,GAAUC,EAAOC,EAAO/E,EAASgF,EAAW,CACjD,OAAIA,IAAc,OACPlT,GAAekO,EAAQ,eAAe8E,EAAOC,CAAK,EAAG,MAAM,EAElEC,IAAc,QACPlT,GAAekO,EAAQ,gBAAgB8E,EAAOC,CAAK,EAAG,OAAO,EAEjE3Q,IAAe0Q,EAAOC,CAAK,CACtC,CAEA,SAASE,IAAkBC,EAAaxwB,EAAQ,CAC5C,OAAQA,EAAO,KAAI,CACf,IAAK,cACD,OAAOA,EAAO,WAClB,QACI,OAAOwwB,CACnB,CACA,CACA,SAASC,IAAex/F,EAASq6F,EAAS,CACtC,IAAIoF,EAAmBz/F,EAAQ,YAE/B,OAAIy/F,GAAoB,KACbpF,EAAQ,aAAaoF,CAAgB,EAEzC1sE,GAAO/yB,EAAQ,IAAKq6F,CAAO,CACtC,CACA,SAAStnE,GAAO2sE,EAAUrF,EAAS,CAI/B,OAHI,OAAOqF,GAAa,aACpBA,EAAWA,EAAU,GAErBA,GAAY,KACLrF,EAAQ,gBAAiB,EAE7BA,EAAQ,aAAaqF,CAAQ,CACxC,CAEA,MAAMC,EAAqB,CACvB,YAAY5tG,EAAO,CACf,KAAK,MAAQA,EACb,KAAK,QAAUghC,GAAOhhC,EAAM,SAAUA,EAAM,OAAO,EACnD,KAAK,eAAgB,CAC7B,CAII,UAAU6tG,EAAoBL,EAAaM,EAAc,CACrD,GAAI,CAAE,QAAAxF,GAAY,KAAK,MACnByF,EAAWzF,EAAQ,SAASA,EAAQ,QAAQkF,EAAaK,EAAmB,gBAAgB,EAChGA,EAAmB,aAAa,EAChC,OAAO,KAAK,MAAME,EAAU,GAAID,CAAY,CACpD,CAEI,UAAUD,EAAoBL,EAAaM,EAAc,CACrD,GAAI,CAAE,QAAAxF,GAAY,KAAK,MACnB0F,EAAW1F,EAAQ,IAAIA,EAAQ,QAAQkF,EAAaK,EAAmB,gBAAgB,EAC3FA,EAAmB,aAAa,EAChC,OAAO,KAAK,MAAMG,EAAU,EAAGF,CAAY,CACnD,CAII,MAAMN,EAAaS,EAAWH,EAAe,GAAM,CAC/C,GAAI,CAAE,MAAA9tG,CAAK,EAAK,KACZkuG,EACAC,EACAC,EACAC,EACAC,EACArwD,EACJ,OAAAiwD,EAAa,KAAK,gBAAiB,EACnCA,EAAa,KAAK,eAAeA,CAAU,EACvCJ,IACAN,EAAcd,IAAuBc,EAAaU,CAAU,GAEhEC,EAAc,KAAK,sBAAsBX,EAAaS,CAAS,EAC/DG,EAAgB,0BAA0B,KAAKD,EAAY,IAAI,EAC/DE,EAAc,KAAK,iBAAiB,KAAK,eAAeF,EAAY,KAAK,EAAGA,EAAY,KAAMC,CAAa,EAC3GC,EAAc,KAAK,eAAeA,CAAW,EAC7CC,EAAcD,EACTruG,EAAM,sBACPsuG,EAAcrC,GAAgBqC,EAAaH,EAAY,KAAK,GAEhEG,EAAc,KAAK,kBAAkBA,CAAW,EAChDA,EAAcrC,GAAgBqC,EAAaJ,CAAU,EAGrDjwD,EAAUmuD,GAAgB+B,EAAY,MAAOD,CAAU,EAElD1B,GAAoB6B,EAAab,CAAW,IAC7CA,EAAca,EAAY,OAEvB,CACH,YAAAb,EAGA,WAAAU,EAGA,aAAcC,EAAY,MAE1B,iBAAkBA,EAAY,KAC9B,cAAAC,EAGA,YAAAE,EAGA,YAAAD,EAEA,YAAaruG,EAAM,YAEnB,YAAaA,EAAM,YACnB,QAAAi+C,EAEA,cAAe,KAAK,mBAAmBkwD,EAAY,QAAQ,CAE9D,CACT,CAII,iBAAkB,CACd,IAAIroD,EAAQ,KAAK,MAAM,gBACnByoD,EAAc,OAAOzoD,GAAU,WAC7BA,EAAM,KAAK,KAAK,MAAM,YAAa,KAAK,OAAO,EAC/CA,EACN,OAAO,KAAK,YAAYyoD,CAAW,GAC/B,CAAE,MAAO,KAAM,IAAK,IAAI,CACpC,CAKI,sBAAsBtzD,EAAMgzD,EAAW,CACnC,GAAI,CAAE,MAAAjuG,CAAK,EAAK,KACZs7B,EAAW,KACX++D,EAAO,KACPoS,EAAQ,KACR+B,EACJ,OAAIxuG,EAAM,UACNs7B,EAAWt7B,EAAM,SACjBq6F,EAAOr6F,EAAM,aACbysG,EAAQ,KAAK,uBAAuBxxD,EAAMgzD,EAAW3yE,EAAU++D,CAAI,IAE7DmU,EAAW,KAAK,MAAM,WAC5BnU,EAAO,MACPoS,EAAQ,KAAK,uBAAuBxxD,EAAMgzD,EAAWO,CAAQ,IAEvD/B,EAAQ,KAAK,wBAAwBxxD,CAAI,GAC/Co/C,EAAOr6F,EAAM,QAAQ,kBAAkBysG,EAAM,MAAOA,EAAM,GAAG,EAAE,MAG/DnxE,EAAW,KAAK,oBAAqB,EACrC++D,EAAOmB,GAA4BlgE,CAAQ,EAAE,KAC7CmxE,EAAQ,KAAK,uBAAuBxxD,EAAMgzD,EAAW3yE,EAAU++D,CAAI,GAEhE,CAAE,SAAA/+D,EAAU,KAAA++D,EAAM,MAAAoS,CAAO,CACxC,CACI,qBAAsB,CAClB,OAAOrS,GAAe,CAAE,IAAK,EAAG,CACxC,CAGI,kBAAkBqS,EAAO,CACrB,GAAI,CAAE,QAAAnE,EAAS,eAAAmG,EAAgB,YAAAC,EAAa,YAAAC,CAAW,EAAK,KAAK,MAC7D,CAAE,MAAAt9F,EAAO,IAAAC,CAAG,EAAKm7F,EACrB,OAAIgC,IAEIxT,GAAYyT,CAAW,EAAI,IAC3Br9F,EAAQ0rC,GAAW1rC,CAAK,EACxBA,EAAQi3F,EAAQ,IAAIj3F,EAAOq9F,CAAW,GAGtCzT,GAAY0T,CAAW,EAAI,IAC3Br9F,EAAMyrC,GAAWzrC,CAAG,EACpBA,EAAM4pC,GAAQ5pC,EAAK,EAAE,EACrBA,EAAMg3F,EAAQ,IAAIh3F,EAAKq9F,CAAW,IAGnC,CAAE,MAAAt9F,EAAO,IAAAC,CAAK,CAC7B,CAGI,uBAAuB2pC,EAAMgzD,EAAW3yE,EAAU++D,EAAM,CACpD,GAAI,CAAE,QAAAiO,EAAS,cAAAsG,CAAe,EAAG,KAAK,MAClCv9F,EACAC,EACAnS,EAEJ,GAAI,CAACyvG,EAAe,CAChB,GAAI,CAAE,cAAAC,GAAkB,KAAK,MACzBA,GAEI1T,GAAU0T,CAAa,EAAI1T,GAAU7/D,CAAQ,EAC7CszE,EAAgBpT,GAA4BqT,CAAa,EAAE,KAO/DD,EAAgBvU,CAEhC,CAEYY,GAAY3/D,CAAQ,GAAK,GACrB,KAAK,YAAYjqB,CAAK,IACtBA,EAAQ,KAAK,eAAeA,EAAO48F,CAAS,EAC5C58F,EAAQ0rC,GAAW1rC,CAAK,GAGhC,SAASy9F,GAAa,CAClBz9F,EAAQi3F,EAAQ,QAAQrtD,EAAM2zD,CAAa,EAC3Ct9F,EAAMg3F,EAAQ,IAAIj3F,EAAOiqB,CAAQ,EACjCn8B,EAAM,CAAE,MAAAkS,EAAO,IAAAC,CAAK,CAChC,CACQ,OAAAw9F,EAAY,EAEP,KAAK,eAAe3vG,CAAG,IACxB87C,EAAO,KAAK,eAAeA,EAAMgzD,CAAS,EAC1Ca,EAAY,GAET3vG,CACf,CAEI,uBAAuB87C,EAAMgzD,EAAWO,EAAU,CAC9C,GAAI,CAAE,QAAAlG,EAAS,cAAAsG,CAAe,EAAG,KAAK,MAClCG,EAAe,EACf19F,EAAQ4pC,EACR3pC,EACAs9F,IACAv9F,EAAQi3F,EAAQ,QAAQj3F,EAAOu9F,CAAa,GAEhDv9F,EAAQ0rC,GAAW1rC,CAAK,EACxBA,EAAQ,KAAK,eAAeA,EAAO48F,CAAS,EAC5C38F,EAAMD,EACN,GACIC,EAAM4pC,GAAQ5pC,EAAK,CAAC,EACf,KAAK,YAAYA,CAAG,IACrBy9F,GAAgB,SAEfA,EAAeP,GACxB,MAAO,CAAE,MAAAn9F,EAAO,IAAAC,CAAK,CAC7B,CAGI,wBAAwB2pC,EAAM,CAC1B,GAAI,CAAE,MAAAj7C,CAAK,EAAK,KACZ8lD,EAAQ9lD,EAAM,kBACduuG,EAAc,OAAOzoD,GAAU,WAC7BA,EAAM,KAAK9lD,EAAM,YAAaA,EAAM,QAAQ,OAAOi7C,CAAI,CAAC,EACxD6K,EACF2mD,EAAQ,KAAK,YAAY8B,CAAW,EACxC,OAAI9B,IAAUA,EAAM,OAAS,MAAQA,EAAM,KAAO,MACvC,KAEJA,CACf,CAII,iBAAiBuC,EAAcC,EAAkBb,EAAe,CAC5D,OAAOY,CACf,CAGI,mBAAmBnvF,EAAU,CACzB,GAAI,CAAE,cAAAgvF,GAAkB,KAAK,MACzBK,EACJ,OAAIL,KAGCK,EAAkB,KAAK,MAAM,eACvB9U,GAAe,EAAG8U,CAAe,EAExCrvF,GAGGu6E,GAAe,CAAE,KAAM,EAAG,EACzC,CACI,YAAY+U,EAAY,CACpB,GAAIA,EAAY,CACZ,IAAI1C,EAAQjB,IAAW2D,EAAY,KAAK,MAAM,OAAO,EACrD,OAAI1C,IACAA,EAAQK,GAAuBL,CAAK,GAEjCA,CACnB,CACQ,OAAO,IACf,CAII,gBAAiB,CACb,IAAI2C,EAAa,KAAK,MAAM,YAAc,GACtCC,EAAkB,GAClBxC,EAAS,EACT,EAIJ,IAHI,KAAK,MAAM,WAAa,IACxBuC,EAAW,KAAK,EAAG,CAAC,EAEnB,EAAI,EAAG,EAAI,EAAG,GAAK,GACdC,EAAgB,CAAC,EAAID,EAAW,QAAQ,CAAC,IAAM,MACjDvC,GAAU,GAGlB,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,oBAAoB,EAExC,KAAK,gBAAkBwC,CAC/B,CAGI,eAAe5C,EAAO,CAClB,GAAI,CAAE,MAAAp7F,EAAO,IAAAC,CAAG,EAAKm7F,EAOrB,OANIp7F,IACAA,EAAQ,KAAK,eAAeA,CAAK,GAEjCC,IACAA,EAAM,KAAK,eAAeA,EAAK,GAAI,EAAI,GAEvCD,GAAS,MAAQC,GAAO,MAAQD,EAAQC,EACjC,CAAE,MAAAD,EAAO,IAAAC,CAAK,EAElB,IACf,CAGI,YAAYirC,EAAK,CACb,OAAIA,aAAe,OACfA,EAAMA,EAAI,UAAW,GAElB,KAAK,gBAAgBA,CAAG,CACvC,CAMI,eAAetB,EAAMq0D,EAAM,EAAGC,EAAc,GAAO,CAC/C,KAAO,KAAK,iBAAiBt0D,EAAK,UAAW,GAAIs0D,EAAcD,EAAM,GAAK,GAAK,CAAC,GAC5Er0D,EAAOC,GAAQD,EAAMq0D,CAAG,EAE5B,OAAOr0D,CACf,CACA,CAEA,SAASu0D,GAAoBC,EAAOhD,EAAOiD,EAAgBC,EAAc,CACrE,MAAO,CACH,WAAYnX,GAAM,EAClB,MAAAiX,EACA,MAAAhD,EACA,eAAgBiD,GAAyB,KACzC,aAAcC,GAAuB,IACxC,CACL,CAEA,SAASC,IAAe/L,EAASgM,EAAevH,EAASwH,EAAgB,CACrE,QAAS,EAAI,EAAG,EAAIA,EAAe,OAAQ,GAAK,EAAG,CAC/C,IAAIzgD,EAASygD,EAAe,CAAC,EAAE,MAAMjM,EAASyE,CAAO,EACrD,GAAIj5C,EAAQ,CACR,GAAI,CAAE,OAAA0gD,CAAM,EAAKlM,EACjB,OAAIkM,GAAU,OACVA,EAASF,EACLE,GAAU,OACVA,EAAS1gD,EAAO,YACZ0gD,GAAU,OACVA,EAAS,MAId,CACH,OAAAA,EACA,SAAU1gD,EAAO,SACjB,SAAUA,EAAO,SACjB,OAAQ,CACX,CACb,CACA,CACI,OAAO,IACX,CACA,SAAS2gD,GAAgBC,EAAYC,EAAczpF,EAAS,CACxD,GAAI,CAAE,QAAA6hF,EAAS,YAAAE,EAAa,QAAAv6F,CAAS,EAAGwY,EACpC,CAAE,KAAA0pF,EAAM,UAAAC,CAAS,EAAKH,EAG1BG,EAAYjM,GAAWiM,EAAYxgG,GAAa,CAACugG,EAAKvgG,EAAS,KAAK,EAAE,YAAY,EAClF,QAAS6/F,KAASU,EAAM,CACpB,IAAIzxG,EAAMyxG,EAAKV,CAAK,EACpB,GAAI/wG,EAAI,aAAc,CAClB,GAAI,CAAE,SAAA48B,GAAa58B,EAAI,aAClB48B,IACDA,EAAW58B,EAAI,OACXuP,EAAQ,2BACRA,EAAQ,2BAEhB,IAAIoiG,EAASC,IAAsB5xG,EAAK48B,EAAU40E,EAAc5H,EAASE,EAAY,cAAc,EACnG,QAASn3F,KAASg/F,EAAQ,CACtB,IAAIzgG,EAAW4/F,GAAoBC,EAAO,CACtC,MAAAp+F,EACA,IAAKi3F,EAAQ,IAAIj3F,EAAOiqB,CAAQ,CACpD,CAAiB,EACD80E,EAAUxgG,EAAS,UAAU,EAAIA,CACjD,CACA,CACA,CACI,MAAO,CAAE,KAAAugG,EAAM,UAAAC,CAAW,CAC9B,CAIA,SAASE,IAAsBC,EAAUj1E,EAAU40E,EAAc5H,EAASwH,EAAgB,CAEtF,IAAIU,EADUV,EAAeS,EAAS,aAAa,MAAM,EACnC,OAAOA,EAAS,aAAa,SAAU,CACzD,MAAOjI,EAAQ,SAAS4H,EAAa,MAAO50E,CAAQ,EACpD,IAAK40E,EAAa,GACrB,EAAE5H,CAAO,EAEV,OAAIiI,EAAS,SACTC,EAAUA,EAAQ,IAAIzzD,EAAU,GAE7ByzD,CACX,CAEA,MAAMC,GAA0B,CAC5B,GAAI,OACJ,QAAS,OACT,MAAO,OACP,IAAK,OACL,YAAa,OACjB,EACMC,GAAsB,CACxB,MAAOzN,GACP,IAAKA,GACL,KAAMA,GACN,OAAQ,OACZ,EACM0N,IAAiB,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAIF,EAAuB,EAAGC,EAAmB,EAAG,CAAE,cAAezN,EAAQ,CAAE,EAChJ,SAAS2N,GAAW/qG,EAAKgrG,EAAapqF,EAASqqF,EAAgBlN,EAAWmN,GAAmBtqF,CAAO,EAAGuqF,EAAUC,EAAe,CAC5H,GAAI,CAAE,QAAApN,EAAS,MAAAC,CAAO,EAAGoN,GAAerrG,EAAK4gB,EAASm9E,CAAQ,EAC1DiM,EAAgBsB,IAAuBN,EAAapqF,CAAO,EAC3D2qF,EAAexB,IAAe/L,EAASgM,EAAeppF,EAAQ,QAASA,EAAQ,YAAY,cAAc,EAC7G,GAAI2qF,EAAc,CACd,IAAI1yG,EAAM2yG,GAAcxN,EAASC,EAAO+M,EAAcA,EAAY,SAAW,GAAIO,EAAa,OAAQ,EAAQA,EAAa,SAAW3qF,EAASuqF,CAAQ,EACvJ,OAAAtyG,EAAI,aAAe,CACf,OAAQ0yG,EAAa,OACrB,SAAUA,EAAa,SACvB,SAAUA,EAAa,QAC1B,EACM,CAAE,IAAA1yG,EAAK,SAAU,IAAM,CACtC,CACI,IAAI4yG,EAAYC,IAAY1N,EAASgM,EAAeppF,EAASqqF,CAAc,EAC3E,GAAIQ,EAAW,CACX,IAAI5yG,EAAM2yG,GAAcxN,EAASC,EAAO+M,EAAcA,EAAY,SAAW,GAAIS,EAAU,OAAQA,EAAU,OAAQ7qF,EAASuqF,CAAQ,EAClIphG,EAAW4/F,GAAoB9wG,EAAI,MAAO4yG,EAAU,MAAOA,EAAU,eAAgBA,EAAU,YAAY,EAC/G,OAAIL,GAAiBvyG,EAAI,UAAYuyG,EAAcvyG,EAAI,QAAQ,IAC3DkR,EAAS,WAAaqhG,EAAcvyG,EAAI,QAAQ,GAE7C,CAAE,IAAAA,EAAK,SAAAkR,CAAU,CAChC,CACI,OAAO,IACX,CACA,SAASshG,GAAerrG,EAAK4gB,EAASm9E,EAAWmN,GAAmBtqF,CAAO,EAAG,CAC1E,OAAOk9E,GAAY99F,EAAK+9F,CAAQ,CACpC,CACA,SAASmN,GAAmBtqF,EAAS,CACjC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAI+qF,EAAiB,EAAGb,GAAc,EAAGlqF,EAAQ,YAAY,aAAa,CAC/H,CAKA,SAAS4qF,GAAcxN,EAASC,EAAO2N,EAAU1B,EAAQ2B,EAAQjrF,EAASuqF,EAAU,CAChF,IAAItyG,EAAM,CACN,MAAOmlG,EAAQ,OAAS,GACxB,QAASA,EAAQ,SAAW,GAC5B,SAAUA,EAAQ,IAAM,GACxB,IAAKA,EAAQ,KAAO,GACpB,aAAc,KACd,OAASmN,GAAYnN,EAAQ,GAAMmN,EAASnN,EAAQ,EAAE,EAAI,KAAOrL,GAAM,EACvE,SAAAiZ,EACA,OAAA1B,EACA,OAAA2B,EACA,YAAa7N,EAAQ,YACrB,GAAI8N,GAAc9N,EAASp9E,CAAO,EAClC,cAAe,OAAO,OAAO,OAAO,OAAO,GAAKo9E,EAAQ,eAAiB,EAAI,EAAEC,CAAK,CACvF,EACD,QAAS8N,KAAenrF,EAAQ,YAAY,qBACxC,OAAO,OAAO/nB,EAAKkzG,EAAY/N,CAAO,CAAC,EAG3C,cAAO,OAAOnlG,EAAI,GAAG,UAAU,EAC/B,OAAO,OAAOA,EAAI,aAAa,EACxBA,CACX,CACA,SAAS6yG,IAAY1N,EAASgM,EAAeppF,EAASqqF,EAAgB,CAClE,GAAI,CAAE,OAAAf,CAAM,EAAKlM,EACbgO,EACAC,EAAc,KACdJ,EAAS,GACTK,EACAC,EAAY,KACZC,EAAapO,EAAQ,OAAS,KAAOA,EAAQ,MAAQA,EAAQ,KAEjE,GADAgO,EAAYprF,EAAQ,QAAQ,iBAAiBwrF,CAAU,EACnDJ,EACAC,EAAcD,EAAU,eAEnB,CAACf,EACN,OAAO,KAEX,OAAIjN,EAAQ,KAAO,OACfkO,EAAUtrF,EAAQ,QAAQ,iBAAiBo9E,EAAQ,GAAG,GAEtDkM,GAAU,OACNF,GAAiB,KACjBE,EAASF,EAITE,GAAU,CAAC8B,GAAaA,EAAU,qBAC7B,CAACE,GAAWA,EAAQ,oBAG7BhC,GAAU+B,IACVA,EAAc/0D,GAAW+0D,CAAW,GAEpCC,IACAC,EAAYD,EAAQ,OAChBhC,IACAiC,EAAYj1D,GAAWi1D,CAAS,GAEhCF,GAAeE,GAAaF,IAC5BE,EAAY,OAGhBA,EACAN,EAAS,GAEHZ,IACNY,EAASjrF,EAAQ,QAAQ,oBAAsB,GAC/CurF,EAAYvrF,EAAQ,QAAQ,IAAIqrF,EAAa/B,EACzCtpF,EAAQ,QAAQ,2BAChBA,EAAQ,QAAQ,yBAAyB,GAE1C,CACH,OAAAspF,EACA,OAAA2B,EACA,MAAO,CAAE,MAAOI,EAAa,IAAKE,CAAW,EAC7C,eAAgBH,EAAYA,EAAU,UAAY,KAClD,aAAcE,EAAUA,EAAQ,UAAY,IAC/C,CACL,CACA,SAASZ,IAAuBN,EAAapqF,EAAS,CAClD,IAAItnB,EAAM,KACV,OAAI0xG,IACA1xG,EAAM0xG,EAAY,eAElB1xG,GAAO,OACPA,EAAMsnB,EAAQ,QAAQ,eAEnBtnB,CACX,CAEA,SAAS+yG,GAAYC,EAAWtB,EAAapqF,EAASqqF,EAAgBE,EAAUC,EAAe,CAC3F,IAAIhB,EAAamC,GAAuB,EACpCC,EAAgBtB,GAAmBtqF,CAAO,EAC9C,QAAS6rF,KAAYH,EAAW,CAC5B,IAAII,EAAQ3B,GAAW0B,EAAUzB,EAAapqF,EAASqqF,EAAgBuB,EAAerB,EAAUC,CAAa,EACzGsB,GACAC,GAAkBD,EAAOtC,CAAU,CAE/C,CACI,OAAOA,CACX,CACA,SAASuC,GAAkBD,EAAOtC,EAAamC,KAAyB,CACpE,OAAAnC,EAAW,KAAKsC,EAAM,IAAI,KAAK,EAAIA,EAAM,IACrCA,EAAM,WACNtC,EAAW,UAAUsC,EAAM,SAAS,UAAU,EAAIA,EAAM,UAErDtC,CACX,CAIA,SAASwC,GAAkBxC,EAAYyC,EAAY,CAC/C,IAAI9iG,EAAWqgG,EAAW,UAAUyC,CAAU,EAC9C,GAAI9iG,EAAU,CACV,IAAIlR,EAAMuxG,EAAW,KAAKrgG,EAAS,KAAK,EAEpC+iG,EAAWC,GAAqB3C,EAAa4C,GAAYC,IAAmBp0G,EAAKm0G,CAAO,CAAC,EAG7F,OAAAF,EAAS,KAAKj0G,EAAI,KAAK,EAAIA,EAC3Bi0G,EAAS,UAAU/iG,EAAS,UAAU,EAAIA,EACnC+iG,CACf,CACI,OAAOP,GAAuB,CAClC,CACA,SAASU,IAAmBC,EAAMC,EAAM,CACpC,MAAO,GAAQD,EAAK,SAAWA,EAAK,UAAYC,EAAK,QACzD,CACA,SAASZ,IAAwB,CAC7B,MAAO,CAAE,KAAM,GAAI,UAAW,EAAI,CACtC,CACA,SAASa,GAAiBC,EAAQC,EAAQ,CACtC,MAAO,CACH,KAAM,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,IAAI,EAAGC,EAAO,IAAI,EAC/D,UAAW,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,SAAS,EAAGC,EAAO,SAAS,CACjF,CACL,CACA,SAASP,GAAqB3C,EAAYmD,EAAY,CAClD,IAAIjD,EAAOhM,GAAW8L,EAAW,KAAMmD,CAAU,EAC7ChD,EAAYjM,GAAW8L,EAAW,UAAYrgG,GAAcugG,EAAKvgG,EAAS,KAAK,CAClF,EACD,MAAO,CAAE,KAAAugG,EAAM,UAAAC,CAAW,CAC9B,CACA,SAASiD,IAAqBC,EAAQ5wG,EAAK,CACvC,GAAI,CAAE,KAAAytG,EAAM,UAAAC,CAAS,EAAKkD,EACtBC,EAAe,CAAE,EACjBC,EAAoB,CAAE,EAC1B,QAAS/D,KAASU,EACTztG,EAAI,KAAK+sG,CAAK,IACf8D,EAAa9D,CAAK,EAAIU,EAAKV,CAAK,GAGxC,QAASiD,KAActC,EACf,CAAC1tG,EAAI,UAAUgwG,CAAU,GACzBa,EAAanD,EAAUsC,CAAU,EAAE,KAAK,IAExCc,EAAkBd,CAAU,EAAItC,EAAUsC,CAAU,GAG5D,MAAO,CACH,KAAMa,EACN,UAAWC,CACd,CACL,CAEA,SAASC,IAAoB3tD,EAAOr/B,EAAS,CACzC,OAAI,MAAM,QAAQq/B,CAAK,EACZosD,GAAYpsD,EAAO,KAAMr/B,EAAS,EAAI,EAE7C,OAAOq/B,GAAU,UAAYA,EACtBosD,GAAY,CAACpsD,CAAK,EAAG,KAAMr/B,EAAS,EAAI,EAE/Cq/B,GAAS,KACF,OAAOA,CAAK,EAEhB,IACX,CAEA,SAAS4tD,GAAgB7tG,EAAK,CAC1B,OAAI,MAAM,QAAQA,CAAG,EACVA,EAEP,OAAOA,GAAQ,SACRA,EAAI,MAAM,KAAK,EAEnB,CAAE,CACb,CAKA,MAAM2rG,GAAoB,CACtB,QAAS,OACT,SAAU,QACV,cAAe,QACf,iBAAkB,QAClB,WAAYvO,GACZ,QAASA,GACT,MAAOA,GACP,UAAWyQ,GACX,WAAYA,GACZ,MAAO,OACP,gBAAiB,OACjB,YAAa,OACb,UAAW,MACf,EACMC,IAAiB,CACnB,QAAS,KACT,cAAe,KACf,iBAAkB,KAClB,YAAa,CAAE,EACf,QAAS,KACT,OAAQ,CAAE,EACV,gBAAiB,GACjB,YAAa,GACb,UAAW,GACX,WAAY,CAAE,CAClB,EACA,SAAShC,GAAc9N,EAASp9E,EAAS,CACrC,IAAImtF,EAAaH,IAAoB5P,EAAQ,WAAYp9E,CAAO,EAChE,MAAO,CACH,QAASo9E,EAAQ,SAAW,KAC5B,cAAeA,EAAQ,eAAiB,KAAOA,EAAQ,cAAgBA,EAAQ,SAC/E,iBAAkBA,EAAQ,kBAAoB,KAAOA,EAAQ,iBAAmBA,EAAQ,SACxF,YAAa+P,GAAc,KAAO,CAACA,CAAU,EAAI,CAAE,EACnD,QAAS/P,EAAQ,SAAW,KAAOA,EAAQ,QAAU,KACrD,OAAQA,EAAQ,OAAS,KAAO,CAACA,EAAQ,KAAK,EAAI,CAAE,EACpD,gBAAiBA,EAAQ,iBAAmBA,EAAQ,OAAS,GAC7D,YAAaA,EAAQ,aAAeA,EAAQ,OAAS,GACrD,UAAWA,EAAQ,WAAa,GAChC,YAAaA,EAAQ,WAAa,IAAI,OAAOA,EAAQ,YAAc,EAAE,CACxE,CACL,CAEA,SAASgQ,GAAgBC,EAAK,CAC1B,OAAOA,EAAI,OAAOC,IAAoBJ,GAAc,CACxD,CACA,SAASI,IAAmBC,EAAOC,EAAO,CACtC,MAAO,CACH,QAASA,EAAM,SAAW,KAAOA,EAAM,QAAUD,EAAM,QACvD,cAAeC,EAAM,eAAiB,KAAOA,EAAM,cAAgBD,EAAM,cACzE,iBAAkBC,EAAM,kBAAoB,KAAOA,EAAM,iBAAmBD,EAAM,iBAClF,YAAaA,EAAM,YAAY,OAAOC,EAAM,WAAW,EACvD,QAAS,OAAOA,EAAM,SAAY,UAAYA,EAAM,QAAUD,EAAM,QACpE,OAAQA,EAAM,OAAO,OAAOC,EAAM,MAAM,EACxC,gBAAiBA,EAAM,iBAAmBD,EAAM,gBAChD,YAAaC,EAAM,aAAeD,EAAM,YACxC,UAAWC,EAAM,WAAaD,EAAM,UACpC,WAAYA,EAAM,WAAW,OAAOC,EAAM,UAAU,CACvD,CACL,CAEA,MAAMC,IAAwB,CAC1B,GAAI,OACJ,cAAe,QACf,IAAK,OACL,OAAQ,OACR,OAAQjR,GACR,mBAAoBA,GAEpB,QAASA,GACT,QAASA,EACb,EACA,SAASkR,GAAiBtuG,EAAK4gB,EAASm9E,EAAWwQ,GAAyB3tF,CAAO,EAAG,CAClF,IAAI4tF,EAUJ,GATI,OAAOxuG,GAAQ,SACfwuG,EAAS,CAAE,IAAKxuG,CAAK,EAEhB,OAAOA,GAAQ,YAAc,MAAM,QAAQA,CAAG,EACnDwuG,EAAS,CAAE,OAAQxuG,CAAK,EAEnB,OAAOA,GAAQ,UAAYA,IAChCwuG,EAASxuG,GAETwuG,EAAQ,CACR,GAAI,CAAE,QAAAxQ,EAAS,MAAAC,CAAK,EAAKH,GAAY0Q,EAAQzQ,CAAQ,EACjD0Q,EAAUC,IAAqB1Q,EAASp9E,CAAO,EACnD,GAAI6tF,EACA,MAAO,CACH,KAAMzuG,EACN,WAAY,GACZ,cAAe,GACf,WAAY,KACZ,cAAeg+F,EAAQ,cACvB,mBAAoBA,EAAQ,mBAC5B,QAASA,EAAQ,QACjB,QAASA,EAAQ,QACjB,SAAUA,EAAQ,IAAM,GACxB,SAAUrL,GAAM,EAChB,YAAa8b,EAAQ,YACrB,KAAMA,EAAQ,KACd,GAAI3C,GAAc9N,EAASp9E,CAAO,EAClC,cAAeq9E,CAClB,CAEb,CACI,OAAO,IACX,CACA,SAASsQ,GAAyB3tF,EAAS,CACvC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAI+qF,EAAiB,EAAG0C,GAAqB,EAAGztF,EAAQ,YAAY,mBAAmB,CAC5I,CACA,SAAS8tF,IAAqB1uG,EAAK4gB,EAAS,CACxC,IAAI0pF,EAAO1pF,EAAQ,YAAY,gBAC/B,QAASjqB,EAAI2zG,EAAK,OAAS,EAAG3zG,GAAK,EAAGA,GAAK,EAAG,CAE1C,IAAIo0C,EADMu/D,EAAK3zG,CAAC,EACD,UAAUqJ,CAAG,EAC5B,GAAI+qC,EACA,MAAO,CAAE,YAAap0C,EAAG,KAAAo0C,CAAM,CAE3C,CACI,OAAO,IACX,CAEA,SAAS4jE,IAAiBvE,EAAYjzB,EAAQy3B,EAAcC,EAAajuF,EAAS,CAC9E,OAAQu2D,EAAO,KAAI,CACf,IAAK,iBACD,OAAO23B,IAAiB1E,EAAYwE,EAAaz3B,EAAO,QAAQ,EAAGA,EAAO,QAASA,EAAO,WAAYA,EAAO,UAAWv2D,CAAO,EACnI,IAAK,mBACD,OAAOmuF,IAAe3E,EAAYwE,EAAaz3B,EAAO,QAAQ,EAAGA,EAAO,UAAW03B,EAAY,YAAajuF,CAAO,EACvH,IAAK,aACD,OAAOouF,IAAS5E,EAAYjzB,EAAO,WACnC03B,EAAcA,EAAY,YAAc,KAAMjuF,CAAO,EACzD,IAAK,eACD,OAAOu2D,EAAO,WAClB,IAAK,eACD,OAAOi2B,GAAiBhD,EAAYjzB,EAAO,UAAU,EACzD,IAAK,OACL,IAAK,OACL,IAAK,cACL,IAAK,mBACD,OAAI03B,EACO1E,GAAgBC,EAAYyE,EAAY,YAAajuF,CAAO,EAEhEwpF,EACX,IAAK,gBACD,OAAOoD,IAAqBpD,EAAYjzB,EAAO,UAAU,EAC7D,IAAK,sBACD,OAAO83B,GAAwB7E,EAAYjzB,EAAO,QAAQ,EAC9D,IAAK,2BACD,OAAO41B,GAAqB3C,EAAaM,GAAc,CAACA,EAAS,QAChE,EACL,IAAK,oBACD,OAAO6B,GAAuB,EAClC,QACI,OAAOnC,CACnB,CACA,CACA,SAAS0E,IAAiB1E,EAAYY,EAAakE,EAASC,EAAY7C,EAAW1rF,EAAS,CACxF,GAAIoqF,GACAkE,IAAYlE,EAAY,cAC1B,CACE,IAAIoE,EAAS/C,GAAYgD,GAAmB/C,EAAWtB,EAAapqF,CAAO,EAAGoqF,EAAapqF,CAAO,EAClG,OAAIuuF,IACAC,EAASjF,GAAgBiF,EAAQD,EAAYvuF,CAAO,GAEjDwsF,GAAiB6B,GAAwB7E,EAAYY,EAAY,QAAQ,EAAGoE,CAAM,CACjG,CACI,OAAOhF,CACX,CACA,SAAS2E,IAAeO,EAAoBtE,EAAasB,EAAW7D,EAAa7nF,EAAS,CACtF,KAAM,CAAE,SAAAuqF,EAAU,cAAAC,GAAkBmE,IAAkBD,CAAkB,EACxE,IAAIE,EAAgBnD,GAAYgD,GAAmB/C,EAAWtB,EAAapqF,CAAO,EAAGoqF,EAAapqF,EAAS,GAAOuqF,EAAUC,CAAa,EACzI,OAAOjB,GAAgBqF,EAAe/G,EAAa7nF,CAAO,CAC9D,CACA,SAASyuF,GAAmB/C,EAAWtB,EAAapqF,EAAS,CACzD,IAAI6uF,EAAmB7uF,EAAQ,QAAQ,mBACnC8uF,EAAsB1E,EAAcA,EAAY,mBAAqB,KACzE,OAAI0E,IACApD,EAAYqD,GAAsBrD,EAAWoD,CAAmB,GAEhED,IACAnD,EAAYqD,GAAsBrD,EAAWmD,CAAgB,GAE1DnD,CACX,CACA,SAASqD,GAAsBrD,EAAWzgC,EAAM,CAC5C,IAAI+jC,EACJ,GAAI,CAAC/jC,EACD+jC,EAAgBtD,MAEf,CACDsD,EAAgB,CAAE,EAClB,QAASnD,KAAYH,EAAW,CAC5B,IAAIuD,EAAehkC,EAAK4gC,CAAQ,EAC5BoD,EACAD,EAAc,KAAKC,CAAY,EAE1BA,GAAgB,MACrBD,EAAc,KAAKnD,CAAQ,CAE3C,CACA,CACI,OAAOmD,CACX,CACA,SAASZ,IAAS5E,EAAYgF,EAAQU,EAAalvF,EAAS,CACxD,OAAIkvF,IACAV,EAASjF,GAAgBiF,EAAQU,EAAalvF,CAAO,GAElDwsF,GAAiBhD,EAAYgF,CAAM,CAC9C,CACA,SAASW,GAAsB3F,EAAY4F,EAAYC,EAAY,CAC/D,GAAI,CAAE,KAAA3F,CAAI,EAAKF,EACXG,EAAY/L,GAAQ4L,EAAW,UAAYrgG,GACjCugG,EAAKvgG,EAAS,KAAK,EACrB,OACGA,EAEJ,OAAO,OAAO,OAAO,OAAO,GAAIA,CAAQ,EAAG,CAAE,MAAO,CACnD,MAAOkmG,EAAW,aAAaD,EAAW,OAAOjmG,EAAS,MAAM,MAAOA,EAAS,cAAc,CAAC,EAC/F,IAAKkmG,EAAW,aAAaD,EAAW,OAAOjmG,EAAS,MAAM,IAAKA,EAAS,YAAY,CAAC,CAC5F,EAAE,eAAgBkmG,EAAW,iBAAmB,KAAOlmG,EAAS,eAAgB,aAAckmG,EAAW,iBAAmB,KAAOlmG,EAAS,YAAY,CAAE,CAClK,EACD,MAAO,CAAE,KAAAugG,EAAM,UAAAC,CAAW,CAC9B,CACA,SAAS0E,GAAwB7E,EAAYwB,EAAU,CACnD,OAAOmB,GAAqB3C,EAAaM,GAAaA,EAAS,WAAakB,CAAQ,CACxF,CAEA,SAASsE,IAAiB9F,EAAY+F,EAAU,CAC5C,MAAO,CACH,KAAM/F,EAAW,KACjB,UAAW9L,GAAW8L,EAAW,UAAYrgG,GAAa,CAAComG,EAASpmG,EAAS,UAAU,CAAC,CAC3F,CACL,CACA,SAASwlG,IAAkBnF,EAAY,CACnC,KAAM,CAAE,KAAAE,EAAM,UAAAC,CAAS,EAAKH,EACtBe,EAAW,CAAE,EACbC,EAAgB,CAAE,EACxB,QAASxB,KAASU,EAAM,CACpB,MAAMzxG,EAAMyxG,EAAKV,CAAK,EAChB,CAAE,SAAAwG,CAAQ,EAAKv3G,EACjBu3G,IACAjF,EAASiF,CAAQ,EAAIxG,EAEjC,CACI,QAASiD,KAActC,EAAW,CAC9B,MAAMxgG,EAAWwgG,EAAUsC,CAAU,EAC/Bh0G,EAAMyxG,EAAKvgG,EAAS,KAAK,EACzB,CAAE,SAAAqmG,CAAQ,EAAKv3G,EACjBu3G,IACAhF,EAAcgF,CAAQ,EAAIvD,EAEtC,CACI,MAAO,CAAE,SAAA1B,EAAU,cAAAC,CAAe,CACtC,CAEA,MAAMiF,EAAQ,CACV,aAAc,CACV,KAAK,SAAW,CAAE,EAClB,KAAK,YAAc,IAC3B,CACI,eAAeC,EAAa,CACxB,KAAK,YAAcA,CAC3B,CACI,WAAWloG,EAAS,CAChB,KAAK,QAAUA,CACvB,CACI,GAAGnJ,EAAM+f,EAAS,CACduxF,IAAU,KAAK,SAAUtxG,EAAM+f,CAAO,CAC9C,CACI,IAAI/f,EAAM+f,EAAS,CACfwxF,IAAe,KAAK,SAAUvxG,EAAM+f,CAAO,CACnD,CACI,QAAQ/f,KAASsB,EAAM,CACnB,IAAIkwG,EAAmB,KAAK,SAASxxG,CAAI,GAAK,CAAE,EAC5CyxG,EAAgB,KAAK,SAAW,KAAK,QAAQzxG,CAAI,EACjDktC,EAAW,GAAG,OAAOukE,GAAiB,GAAID,CAAgB,EAC9D,QAASzxF,KAAWmtB,EAChBntB,EAAQ,MAAM,KAAK,YAAaze,CAAI,CAEhD,CACI,YAAYtB,EAAM,CACd,MAAO,GAAS,KAAK,SAASA,CAAI,GAAK,KAAK,SAASA,CAAI,EAAE,QACtD,KAAK,SAAW,KAAK,QAAQA,CAAI,EAC9C,CACA,CACA,SAASsxG,IAAU1vE,EAAM5hC,EAAM+f,EAAS,EACnC6hB,EAAK5hC,CAAI,IAAM4hC,EAAK5hC,CAAI,EAAI,KACxB,KAAK+f,CAAO,CACrB,CACA,SAASwxF,IAAe3vE,EAAM5hC,EAAM+f,EAAS,CACrCA,EACI6hB,EAAK5hC,CAAI,IACT4hC,EAAK5hC,CAAI,EAAI4hC,EAAK5hC,CAAI,EAAE,OAAQ4sE,GAASA,IAAS7sD,CAAO,GAI7D,OAAO6hB,EAAK5hC,CAAI,CAExB,CAEA,MAAM0xG,IAAe,CACjB,UAAW,QACX,QAAS,QACT,WAAY,CAAC,EAAG,EAAG,EAAG,EAAG,CAAC,EAC1B,QAAS,qBACT,WAAY,kBACZ,QAAS,gBACb,EAIA,SAASC,IAAmB3wD,EAAOr/B,EAAS,CACxC,OAAOyrF,GAAYwE,IAAa5wD,CAAK,EAAG,KAAMr/B,CAAO,CACzD,CACA,SAASiwF,IAAa5wD,EAAO,CACzB,IAAI6wD,EACJ,OAAI7wD,IAAU,GACV6wD,EAAU,CAAC,EAAE,EAER,MAAM,QAAQ7wD,CAAK,EAExB6wD,EAAU7wD,EAAM,OAAQ8wD,GAAWA,EAAO,UAAU,EAE/C,OAAO9wD,GAAU,UAAYA,EAClC6wD,EAAU,CAAC7wD,CAAK,EAGhB6wD,EAAU,CAAE,EAEhBA,EAAUA,EAAQ,IAAKC,GAAY,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEJ,GAAY,EAAGI,CAAM,CAAE,EACnFD,CACX,CAEA,SAASE,GAAkBC,EAAWC,EAAKtwF,EAAS,CAChDA,EAAQ,QAAQ,QAAQ,SAAU,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEuwF,GAA4BF,EAAWrwF,CAAO,CAAC,EAAG,CAAE,QAASswF,EAAMA,EAAI,UAAY,KAAM,KAAMtwF,EAAQ,SAAWA,EAAQ,YAAY,IAAM,EAAC,CACnN,CACA,SAASwwF,IAAoBF,EAAKtwF,EAAS,CACvCA,EAAQ,QAAQ,QAAQ,WAAY,CAChC,QAASswF,EAAMA,EAAI,UAAY,KAC/B,KAAMtwF,EAAQ,SAAWA,EAAQ,YAAY,IACrD,CAAK,CACL,CACA,SAASuwF,GAA4BE,EAAUzwF,EAAS,CACpD,IAAIzmB,EAAQ,CAAE,EACd,QAASm3G,KAAa1wF,EAAQ,YAAY,mBACtC,OAAO,OAAOzmB,EAAOm3G,EAAUD,EAAUzwF,CAAO,CAAC,EAErD,cAAO,OAAOzmB,EAAOo3G,IAAiBF,EAAUzwF,EAAQ,OAAO,CAAC,EACzDzmB,CACX,CAGA,SAASq3G,GAAmBtH,EAAQ3S,EAAQ32E,EAAS,CACjD,GAAI,CAAE,QAAA6hF,EAAS,QAAAr6F,CAAO,EAAKwY,EACvBnV,EAAM8rF,EACV,OAAI2S,GACAz+F,EAAMyrC,GAAWzrC,CAAG,EACpBA,EAAMg3F,EAAQ,IAAIh3F,EAAKrD,EAAQ,0BAA0B,GAGzDqD,EAAMg3F,EAAQ,IAAIh3F,EAAKrD,EAAQ,yBAAyB,EAErDqD,CACX,CAGA,SAASgmG,GAA0BrH,EAAYsH,EAAiBC,EAAU/wF,EAAS,CAC/E,IAAIgxF,EAAeC,GAAgBzH,EAAW,KAAMsH,CAAe,EAC/DtT,EAAOmO,GAAuB,EAClC,QAAS3C,KAASQ,EAAW,KAAM,CAC/B,IAAIvxG,EAAMuxG,EAAW,KAAKR,CAAK,EAC/BxL,EAAK,KAAKwL,CAAK,EAAIkI,IAAwBj5G,EAAK+4G,EAAahI,CAAK,EAAG+H,EAAU/wF,CAAO,CAC9F,CACI,QAASisF,KAAczC,EAAW,UAAW,CACzC,IAAIrgG,EAAWqgG,EAAW,UAAUyC,CAAU,EAC1Ch0G,EAAMulG,EAAK,KAAKr0F,EAAS,KAAK,EAClCq0F,EAAK,UAAUyO,CAAU,EAAIkF,IAA6BhoG,EAAUlR,EAAK+4G,EAAa7nG,EAAS,KAAK,EAAG4nG,EAAU/wF,CAAO,CAChI,CACI,OAAOw9E,CACX,CACA,SAAS0T,IAAwBpH,EAAUsH,EAAaL,EAAU/wF,EAAS,CACvE,IAAIqxF,EAAgBN,EAAS,eAAiB,CAAE,EAI5CM,EAAc,QAAU,MACxBD,EAAY,mBACXL,EAAS,YAAcA,EAAS,YACjCM,EAAc,OAAS,IAE3B,IAAIC,EAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAIxH,CAAQ,EAAGuH,CAAa,EAAG,CAAE,GAAI,OAAO,OAAO,OAAO,OAAO,GAAIvH,EAAS,EAAE,EAAGuH,EAAc,EAAE,CAAC,CAAE,EACvJN,EAAS,gBACTO,EAAK,cAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEA,EAAK,aAAa,EAAGP,EAAS,aAAa,GAEpG,QAASQ,KAAWvxF,EAAQ,YAAY,yBACpCuxF,EAAQD,EAAMP,EAAU/wF,CAAO,EAEnC,MAAI,CAACsxF,EAAK,QAAUtxF,EAAQ,QAAQ,qBAChCsxF,EAAK,OAAS,IAEXA,CACX,CACA,SAASH,IAA6BK,EAAe1H,EACrDsH,EAAaL,EAAU/wF,EAAS,CAC5B,GAAI,CAAE,QAAA6hF,CAAO,EAAK7hF,EACdyxF,EAAcV,EAAS,eAAiBA,EAAS,cAAc,SAAW,GAC1EW,EAAWX,EAAS,eAAiBA,EAAS,cAAc,SAAW,GACvEO,EAAO,OAAO,OAAO,GAAIE,CAAa,EAC1C,OAAIC,IACAH,EAAK,MAAQpL,GAAuBoL,EAAK,KAAK,GAE9CP,EAAS,YAAcK,EAAY,gBACnCE,EAAK,MAAQ,CACT,MAAOzP,EAAQ,IAAIyP,EAAK,MAAM,MAAOP,EAAS,UAAU,EACxD,IAAKlP,EAAQ,IAAIyP,EAAK,MAAM,IAAKP,EAAS,UAAU,CACvD,GAEDA,EAAS,YAAcK,EAAY,mBACnCE,EAAK,MAAQ,CACT,MAAOzP,EAAQ,IAAIyP,EAAK,MAAM,MAAOP,EAAS,UAAU,EACxD,IAAKO,EAAK,MAAM,GACnB,GAEDP,EAAS,UAAYK,EAAY,mBACjCE,EAAK,MAAQ,CACT,MAAOA,EAAK,MAAM,MAClB,IAAKzP,EAAQ,IAAIyP,EAAK,MAAM,IAAKP,EAAS,QAAQ,CACrD,GAEDW,IACAJ,EAAK,MAAQ,CACT,MAAOA,EAAK,MAAM,MAClB,IAAKV,GAAmB9G,EAAS,OAAQwH,EAAK,MAAM,MAAOtxF,CAAO,CACrE,GAID8pF,EAAS,SACTwH,EAAK,MAAQ,CACT,MAAOh7D,GAAWg7D,EAAK,MAAM,KAAK,EAClC,IAAKh7D,GAAWg7D,EAAK,MAAM,GAAG,CACjC,GAGDA,EAAK,MAAM,IAAMA,EAAK,MAAM,QAC5BA,EAAK,MAAM,IAAMV,GAAmB9G,EAAS,OAAQwH,EAAK,MAAM,MAAOtxF,CAAO,GAE3EsxF,CACX,CAEA,MAAMK,EAAgB,CAClB,YAAY3xF,EAAS4xF,EAAqB,CACtC,KAAK,QAAU5xF,EACf,KAAK,oBAAsB4xF,CACnC,CACI,QAAS,CACL,KAAK,QAAQ,SAAS,CAClB,KAAM,sBACN,SAAU,KAAK,oBAAoB,QAC/C,CAAS,CACT,CACI,SAAU,CACN,KAAK,QAAQ,SAAS,CAClB,KAAM,sBACN,UAAW,CAAC,KAAK,oBAAoB,QAAQ,EAC7C,UAAW,EACvB,CAAS,CACT,CACI,IAAI,IAAK,CACL,OAAO,KAAK,oBAAoB,QACxC,CACI,IAAI,KAAM,CACN,OAAO,KAAK,oBAAoB,KAAK,GAC7C,CACI,IAAI,QAAS,CACT,OAAO,KAAK,oBAAoB,KAAK,MAC7C,CACA,CAEA,MAAMC,EAAU,CAGZ,YAAY7xF,EAAS/nB,EAAKkR,EAAU,CAChC,KAAK,SAAW6W,EAChB,KAAK,KAAO/nB,EACZ,KAAK,UAAYkR,GAAY,IACrC,CAII,QAAQ9P,EAAMjE,EAAK,CACf,GAAIiE,KAAQ4wG,GACR,QAAQ,KAAK,sFAAwF,UAGhG5wG,IAAS,KACdjE,EAAM40G,GAAwB3wG,CAAI,EAAEjE,CAAG,EACvC,KAAK,OAAO,CACR,cAAe,CAAE,SAAUA,CAAK,CAChD,CAAa,UAEIiE,KAAQ2wG,GACb50G,EAAM40G,GAAwB3wG,CAAI,EAAEjE,CAAG,EACvC,KAAK,OAAO,CACR,cAAe,CAAE,CAACiE,CAAI,EAAGjE,CAAK,CAC9C,CAAa,UAEIiE,KAAQ0xG,GAAmB,CAChC,IAAI+G,EAAK/G,GAAkB1xG,CAAI,EAAEjE,CAAG,EAChCiE,IAAS,QACTy4G,EAAK,CAAE,gBAAiB18G,EAAK,YAAaA,CAAK,EAE1CiE,IAAS,WACdy4G,EAAK,CAAE,cAAe18G,EAAK,iBAAkBA,CAAK,EAGlD08G,EAAK,CAAE,CAACz4G,CAAI,EAAGjE,CAAK,EAExB,KAAK,OAAO,CACR,cAAe,CAAE,GAAA08G,CAAI,CACrC,CAAa,CACb,MAEY,QAAQ,KAAK,uBAAuBz4G,CAAI,iCAAiC,CAErF,CACI,gBAAgBA,EAAMjE,EAAK,CACvB,KAAK,OAAO,CACR,cAAe,CAAE,CAACiE,CAAI,EAAGjE,CAAK,CAC1C,CAAS,CACT,CACI,SAASo2G,EAAYhkG,EAAU,GAAI,CAC/B,GAAI,CAAE,QAAAq6F,GAAY,KAAK,SACnBj3F,EAAQi3F,EAAQ,aAAa2J,CAAU,EAC3C,GAAI5gG,GAAS,KAAK,UAAW,CACzB,IAAImnG,EAAgB,KAAK,UAAU,MAC/BC,EAAatL,GAAUqL,EAAc,MAAOnnG,EAAOi3F,EAASr6F,EAAQ,WAAW,EAC/EA,EAAQ,iBACR,KAAK,OAAO,CAAE,WAAYwqG,CAAU,CAAE,EAGtC,KAAK,OAAO,CAAE,WAAAA,EAAY,CAE1C,CACA,CACI,OAAOC,EAAUzqG,EAAU,GAAI,CAC3B,GAAI,CAAE,QAAAq6F,GAAY,KAAK,SACnBh3F,EACJ,GAAI,EAAAonG,GAAY,OACZpnG,EAAMg3F,EAAQ,aAAaoQ,CAAQ,EAC/B,CAACpnG,KAIL,KAAK,UACL,GAAIA,EAAK,CACL,IAAIqnG,EAAWxL,GAAU,KAAK,UAAU,MAAM,IAAK77F,EAAKg3F,EAASr6F,EAAQ,WAAW,EACpF,KAAK,OAAO,CAAE,SAAA0qG,EAAU,CACxC,MAEgB,KAAK,OAAO,CAAE,cAAe,CAAE,OAAQ,EAAK,EAAI,CAGhE,CACI,SAAS1G,EAAYyG,EAAUzqG,EAAU,GAAI,CACzC,GAAI,CAAE,QAAAq6F,GAAY,KAAK,SACnBwP,EAAgB,CAAE,OAAQ7pG,EAAQ,MAAQ,EAC1CoD,EAAQi3F,EAAQ,aAAa2J,CAAU,EACvC3gG,EACJ,GAAKD,GAGD,EAAAqnG,GAAY,OACZpnG,EAAMg3F,EAAQ,aAAaoQ,CAAQ,EAC/B,CAACpnG,KAIL,KAAK,UAAW,CAChB,IAAIknG,EAAgB,KAAK,UAAU,MAG/BvqG,EAAQ,SAAW,KACnBuqG,EAAgB7L,GAAuB6L,CAAa,GAExD,IAAIC,EAAatL,GAAUqL,EAAc,MAAOnnG,EAAOi3F,EAASr6F,EAAQ,WAAW,EACnF,GAAIqD,EAAK,CACL,IAAIqnG,EAAWxL,GAAUqL,EAAc,IAAKlnG,EAAKg3F,EAASr6F,EAAQ,WAAW,EACzEwsF,IAAege,EAAYE,CAAQ,EACnC,KAAK,OAAO,CAAE,WAAYF,EAAY,cAAAX,CAAa,CAAE,EAGrD,KAAK,OAAO,CAAE,WAAAW,EAAY,SAAAE,EAAU,cAAAb,CAAa,CAAE,CAEvE,MAEgBA,EAAc,OAAS,GACvB,KAAK,OAAO,CAAE,WAAYW,EAAY,cAAAX,CAAa,CAAE,CAErE,CACA,CACI,UAAUc,EAAY,CAClB,IAAI5vE,EAAQoxD,GAAewe,CAAU,EACjC5vE,GACA,KAAK,OAAO,CAAE,WAAYA,CAAK,CAAE,CAE7C,CACI,QAAQ4vE,EAAY,CAChB,IAAI5vE,EAAQoxD,GAAewe,CAAU,EACjC5vE,GACA,KAAK,OAAO,CAAE,SAAUA,CAAK,CAAE,CAE3C,CACI,UAAU4vE,EAAY,CAClB,IAAI5vE,EAAQoxD,GAAewe,CAAU,EACjC5vE,GACA,KAAK,OAAO,CAAE,WAAYA,CAAK,CAAE,CAE7C,CACI,UAAU+mE,EAAQ9hG,EAAU,GAAI,CAC5B,IAAI6pG,EAAgB,CAAE,OAAA/H,CAAQ,EAC1B,CAAE,iBAAA8I,CAAgB,EAAK5qG,EACvB4qG,GAAoB,OACpBA,EAAmB,KAAK,SAAS,QAAQ,wBAEzC,KAAK,KAAK,SAAW9I,IACrB+H,EAAc,OAASe,GAE3B,KAAK,OAAO,CAAE,cAAAf,EAAe,CACrC,CACI,YAAYgB,EAAa,CACrB,GAAI,CAAE,QAAAxQ,GAAY,KAAK,SACnB14F,EAAW,KAAK,UAChBy3C,EAAY07C,GAAgB+V,CAAW,EAC3C,OAAI,KAAK,KAAK,OACHxQ,EAAQ,YAAY14F,EAAS,MAAM,MAAOA,EAAS,MAAM,IAAKy3C,EAAW,CAC5E,eAAgBz3C,EAAS,eACzB,aAAcA,EAAS,YACvC,CAAa,EAEE04F,EAAQ,OAAO14F,EAAS,MAAM,MAAOy3C,EAAW,CACnD,UAAWz3C,EAAS,cAChC,CAAS,CACT,CACI,OAAO4nG,EAAU,CACb,IAAI5nG,EAAW,KAAK,UACpB,GAAIA,EAAU,CACV,IAAIlR,EAAM,KAAK,KACX+nB,EAAU,KAAK,SACf,CAAE,WAAAwpF,CAAU,EAAKxpF,EAAQ,eAAgB,EACzCsyF,EAAiBtG,GAAkBxC,EAAYrgG,EAAS,UAAU,EAetEmpG,EAAiBzB,GAA0ByB,EAdrB,CAClB,GAAI,CACA,QAAS,GACT,cAAe,GACf,iBAAkB,GAClB,YAAa,CAAE,EACf,QAAS,KACT,OAAQ,CAAE,EACV,gBAAiB,GACjB,YAAa,GACb,UAAW,GACX,WAAY,CAAE,CACjB,CACJ,EAC2EvB,EAAU/wF,CAAO,EAC7F,IAAIuyF,EAAW,IAAIV,GAAU7xF,EAAS/nB,EAAKkR,CAAQ,EACnD,KAAK,KAAOmpG,EAAe,KAAKr6G,EAAI,KAAK,EACzC,KAAK,UAAYq6G,EAAe,UAAUnpG,EAAS,UAAU,EAC7D6W,EAAQ,SAAS,CACb,KAAM,eACN,WAAYsyF,CAC5B,CAAa,EACDtyF,EAAQ,QAAQ,QAAQ,cAAe,CACnC,SAAAuyF,EACA,MAAO,KACP,cAAeC,GAAeF,EAAgBtyF,EAAS7W,CAAQ,EAC/D,QAAS,CACL6W,EAAQ,SAAS,CACb,KAAM,eACN,WAAAwpF,CACxB,CAAqB,CACJ,CACjB,CAAa,CACb,CACA,CACI,QAAS,CACL,IAAIxpF,EAAU,KAAK,SACfyyF,EAAUC,GAAgB,IAAI,EAClC1yF,EAAQ,SAAS,CACb,KAAM,gBACN,WAAYyyF,CACxB,CAAS,EACDzyF,EAAQ,QAAQ,QAAQ,cAAe,CACnC,MAAO,KACP,cAAe,CAAE,EACjB,QAAS,CACLA,EAAQ,SAAS,CACb,KAAM,eACN,WAAYyyF,CAChC,CAAiB,CACJ,CACb,CAAS,CACT,CACI,IAAI,QAAS,CACT,GAAI,CAAE,SAAAzH,GAAa,KAAK,KACxB,OAAIA,EACO,IAAI2G,GAAgB,KAAK,SAAU,KAAK,SAAS,eAAgB,EAAC,aAAa3G,CAAQ,CAAC,EAE5F,IACf,CACI,IAAI,OAAQ,CACR,OAAO,KAAK,UACR,KAAK,SAAS,QAAQ,OAAO,KAAK,UAAU,MAAM,KAAK,EACvD,IACZ,CACI,IAAI,KAAM,CACN,OAAQ,KAAK,WAAa,KAAK,KAAK,OAChC,KAAK,SAAS,QAAQ,OAAO,KAAK,UAAU,MAAM,GAAG,EACrD,IACZ,CACI,IAAI,UAAW,CACX,IAAI7hG,EAAW,KAAK,UACpB,OAAIA,EACO,KAAK,SAAS,QAAQ,UAAUA,EAAS,MAAM,MAAO,CACzD,SAAU,KAAK,KAAK,OACpB,UAAWA,EAAS,cACpC,CAAa,EAEE,EACf,CACI,IAAI,QAAS,CACT,IAAIA,EAAW,KAAK,UACpB,OAAIA,GAAY,KAAK,KAAK,OACf,KAAK,SAAS,QAAQ,UAAUA,EAAS,MAAM,IAAK,CACvD,SAAU,KAAK,KAAK,OACpB,UAAWA,EAAS,YACpC,CAAa,EAEE,EACf,CAGI,IAAI,IAAK,CAAE,OAAO,KAAK,KAAK,QAAS,CACrC,IAAI,SAAU,CAAE,OAAO,KAAK,KAAK,OAAQ,CACzC,IAAI,QAAS,CAAE,OAAO,KAAK,KAAK,MAAO,CACvC,IAAI,OAAQ,CAAE,OAAO,KAAK,KAAK,KAAM,CACrC,IAAI,KAAM,CAAE,OAAO,KAAK,KAAK,GAAI,CACjC,IAAI,SAAU,CAAE,OAAO,KAAK,KAAK,GAAG,SAAW,MAAS,CACxD,IAAI,eAAgB,CAAE,OAAO,KAAK,KAAK,GAAG,aAAc,CACxD,IAAI,kBAAmB,CAAE,OAAO,KAAK,KAAK,GAAG,gBAAiB,CAC9D,IAAI,YAAa,CAAE,OAAO,KAAK,KAAK,GAAG,YAAY,CAAC,GAAK,IAAK,CAC9D,IAAI,SAAU,CAAE,OAAO,KAAK,KAAK,GAAG,OAAQ,CAC5C,IAAI,OAAQ,CAAE,OAAO,KAAK,KAAK,GAAG,OAAO,CAAC,GAAK,IAAK,CACpD,IAAI,iBAAkB,CAAE,OAAO,KAAK,KAAK,GAAG,eAAgB,CAC5D,IAAI,aAAc,CAAE,OAAO,KAAK,KAAK,GAAG,WAAY,CACpD,IAAI,WAAY,CAAE,OAAO,KAAK,KAAK,GAAG,SAAU,CAEhD,IAAI,YAAa,CAAE,OAAO,KAAK,KAAK,GAAG,UAAW,CAClD,IAAI,eAAgB,CAAE,OAAO,KAAK,KAAK,aAAc,CACrD,cAAci2F,EAAW,GAAI,CACzB,IAAInnG,EAAM,KAAK,KACX,CAAE,GAAA65G,CAAE,EAAK75G,EACT,CAAE,SAAA06G,EAAU,OAAAC,CAAM,EAAK,KACvBl6G,EAAM,CACN,OAAQT,EAAI,MACf,EACD,OAAIA,EAAI,QACJS,EAAI,MAAQT,EAAI,OAEhB06G,IACAj6G,EAAI,MAAQi6G,GAEZC,IACAl6G,EAAI,IAAMk6G,GAEV36G,EAAI,WACJS,EAAI,GAAKT,EAAI,UAEbA,EAAI,UACJS,EAAI,QAAUT,EAAI,SAElBA,EAAI,MACJS,EAAI,IAAMT,EAAI,KAEd65G,EAAG,SAAWA,EAAG,UAAY,SAC7Bp5G,EAAI,QAAUo5G,EAAG,SAIjB1S,EAAS,eAAiB0S,EAAG,iBAAmBA,EAAG,kBAAoBA,EAAG,YAC1Ep5G,EAAI,MAAQo5G,EAAG,iBAGXA,EAAG,kBACHp5G,EAAI,gBAAkBo5G,EAAG,iBAEzBA,EAAG,cACHp5G,EAAI,YAAco5G,EAAG,cAGzBA,EAAG,YACHp5G,EAAI,UAAYo5G,EAAG,WAEnBA,EAAG,WAAW,SACdp5G,EAAI,WAAao5G,EAAG,YAEpB,OAAO,KAAK75G,EAAI,aAAa,EAAE,SAC3BmnG,EAAS,sBACT,OAAO,OAAO1mG,EAAKT,EAAI,aAAa,EAGpCS,EAAI,cAAgBT,EAAI,eAGzBS,CACf,CACI,QAAS,CACL,OAAO,KAAK,cAAe,CACnC,CACA,CACA,SAASg6G,GAAgBG,EAAU,CAC/B,IAAI56G,EAAM46G,EAAS,KACf1pG,EAAW0pG,EAAS,UACxB,MAAO,CACH,KAAM,CAAE,CAAC56G,EAAI,KAAK,EAAGA,CAAK,EAC1B,UAAWkR,EACL,CAAE,CAACA,EAAS,UAAU,EAAGA,CAAQ,EACjC,CAAE,CACX,CACL,CACA,SAASqpG,GAAehJ,EAAYxpF,EAAS8yF,EAAiB,CAC1D,GAAI,CAAE,KAAApJ,EAAM,UAAAC,CAAS,EAAKH,EACtBuJ,EAAY,CAAE,EACdC,EAAoBF,EAAkBA,EAAgB,WAAa,GACvE,QAASnoG,KAAMg/F,EAAW,CACtB,IAAIxgG,EAAWwgG,EAAUh/F,CAAE,EACvB1S,EAAMyxG,EAAKvgG,EAAS,KAAK,EACzBA,EAAS,aAAe6pG,GACxBD,EAAU,KAAK,IAAIlB,GAAU7xF,EAAS/nB,EAAKkR,CAAQ,CAAC,CAEhE,CACI,OAAO4pG,CACX,CAKA,SAASE,GAAgBzJ,EAAY0J,EAAczJ,EAAcnD,EAAkB,CAC/E,IAAI6M,EAAqB,CAAE,EACvBC,EAAmB,CAAE,EACrBC,EAAe,CAAE,EACjBC,EAAW,CAAE,EACbC,EAAW,CAAE,EACbC,EAAWvC,GAAgBzH,EAAW,KAAM0J,CAAY,EAC5D,QAASlK,KAASQ,EAAW,KAAM,CAC/B,IAAIvxG,EAAMuxG,EAAW,KAAKR,CAAK,EACtBwK,EAASv7G,EAAI,KAAK,EACpB,UAAY,uBACXA,EAAI,SACJk7G,EAAmBl7G,EAAI,OAAO,EAAI,CAAE,EAC/Bo7G,EAAap7G,EAAI,OAAO,IACzBo7G,EAAap7G,EAAI,OAAO,EAAIA,IAIhCm7G,EAAiBpK,CAAK,EAAI,CAAE,EAG5C,CACI,QAASiD,KAAczC,EAAW,UAAW,CACzC,IAAIrgG,EAAWqgG,EAAW,UAAUyC,CAAU,EAC1Ch0G,EAAMuxG,EAAW,KAAKrgG,EAAS,KAAK,EACpC2oG,EAAK0B,EAASv7G,EAAI,KAAK,EACvBw7G,EAAYtqG,EAAS,MACrBuqG,EAAe,CAACz7G,EAAI,QAAUquG,EAC9BD,GAAuBoN,EAAWnN,CAAgB,EAClDmN,EACAE,EAAcnO,GAAgBkO,EAAajK,CAAY,EACvDkK,IACI7B,EAAG,UAAY,qBACX75G,EAAI,QACJk7G,EAAmBl7G,EAAI,OAAO,EAAE,KAAK07G,CAAW,EAGhDP,EAAiBjqG,EAAS,KAAK,EAAE,KAAKwqG,CAAW,EAGhD7B,EAAG,UAAY,SACnBA,EAAG,UAAY,aAAewB,EAAWC,GAAU,KAAK,CACrD,IAAAt7G,EACA,GAAA65G,EACA,SAAA3oG,EACA,MAAOwqG,EACP,QAASD,EAAY,OAASA,EAAY,MAAM,YAAcC,EAAY,MAAM,QAAS,EACzF,MAAOD,EAAY,KAAOA,EAAY,IAAI,YAAcC,EAAY,IAAI,QAAS,CACrG,CAAiB,EAGjB,CACI,QAASC,KAAWT,EAAoB,CACpC,IAAIlO,EAASkO,EAAmBS,CAAO,EACnCzO,EAAiBH,GAAaC,EAAQwE,CAAY,EACtD,QAASoK,KAAiB1O,EAAgB,CACtC,IAAIltG,EAAMo7G,EAAaO,CAAO,EAC1B9B,EAAK0B,EAASv7G,EAAI,KAAK,EAC3Bq7G,EAAS,KAAK,CACV,IAAAr7G,EACA,GAAA65G,EACA,SAAU,KACV,MAAO+B,EACP,QAAS,GACT,MAAO,EACvB,CAAa,CACb,CACA,CACI,QAAS7K,KAASoK,EAAkB,CAChC,IAAInO,EAASmO,EAAiBpK,CAAK,EAC/B7D,EAAiBH,GAAaC,EAAQwE,CAAY,EACtD,QAASoK,KAAiB1O,EACtBmO,EAAS,KAAK,CACV,IAAK9J,EAAW,KAAKR,CAAK,EAC1B,GAAIwK,EAASxK,CAAK,EAClB,SAAU,KACV,MAAO6K,EACP,QAAS,GACT,MAAO,EACvB,CAAa,CAEb,CACI,MAAO,CAAE,GAAIP,EAAU,GAAIC,CAAU,CACzC,CACA,SAASO,IAAe77G,EAAK,CACzB,OAAOA,EAAI,GAAG,UAAY,cAAgBA,EAAI,GAAG,UAAY,oBACjE,CACA,SAAS87G,GAASj+G,EAAIk+G,EAAK,CACvBl+G,EAAG,MAAQk+G,CACf,CACA,SAASC,GAASn+G,EAAI,CAClB,OAAOA,EAAG,OACNA,EAAG,WAAW,OACd,IACR,CAEA,SAASm7G,GAAgBiD,EAAWhB,EAAc,CAC9C,OAAOtV,GAAQsW,EAAYpK,GAAaqK,GAAerK,EAAUoJ,CAAY,CAAC,CAClF,CACA,SAASiB,GAAerK,EAAUoJ,EAAc,CAC5C,IAAI7F,EAAM,CAAE,EACZ,OAAI6F,EAAa,EAAE,GACf7F,EAAI,KAAK6F,EAAa,EAAE,CAAC,EAEzBA,EAAapJ,EAAS,KAAK,GAC3BuD,EAAI,KAAK6F,EAAapJ,EAAS,KAAK,CAAC,EAEzCuD,EAAI,KAAKvD,EAAS,EAAE,EACbsD,GAAgBC,CAAG,CAC9B,CACA,SAAS+G,GAAcC,EAAMC,EAAiB,CAC1C,IAAIC,EAAOF,EAAK,IAAIG,GAAkB,EACtC,OAAAD,EAAK,KAAK,CAAC9hB,EAAMC,IAASF,IAAoBC,EAAMC,EAAM4hB,CAAe,CAAC,EACnEC,EAAK,IAAKh9G,GAAMA,EAAE,IAAI,CACjC,CAEA,SAASi9G,IAAmBR,EAAK,CAC7B,GAAI,CAAE,WAAAS,CAAU,EAAKT,EACjBlK,EAAW2K,EAAW,IACtBzO,EAAQyO,EAAW,SAAWA,EAAW,SAAS,MAAQA,EAAW,MACrE7pG,EAAQo7F,EAAM,MAAQA,EAAM,MAAM,QAAS,EAAG,EAC9Cn7F,EAAMm7F,EAAM,IAAMA,EAAM,IAAI,QAAS,EAAG,EAC5C,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE8D,EAAS,aAAa,EAAGA,CAAQ,EAAG,CAAE,GAAIA,EAAS,SAAU,MAAAl/F,EAC9G,IAAAC,EAAK,SAAUA,EAAMD,EAAO,OAAQ,OAAOk/F,EAAS,MAAM,EAAG,KAAMkK,CAAG,CAAE,CAChF,CACA,SAASU,IAAoBV,EAAKh0F,EAAS,CACvC,GAAI,CAAE,YAAA+hF,CAAW,EAAK/hF,EAClB20F,EAAe5S,EAAY,wBAC3B,CAAE,IAAA9pG,EAAK,GAAA65G,CAAI,EAAGkC,EAAI,WAClB5+G,EAAM08G,EAAG,cACb,QAAS8C,KAAeD,EACpBv/G,EAAMw/G,EAAYx/G,EAAK6C,EAAK65G,EAAI9xF,CAAO,EAE3C,OAAO5qB,CACX,CACA,SAASy/G,IAAyBb,EAAKh0F,EAAS,CAC5C,OAAOg0F,EAAI,SAAWA,EAAI,WAAW,GAAG,kBAAoBh0F,EAAQ,QAAQ,uBAChF,CACA,SAAS80F,IAAuBd,EAAKh0F,EAAS,CAC1C,OAAOg0F,EAAI,OAASA,EAAI,WAAW,GAAG,gBAC1C,CACA,SAASe,GAAiBf,EAAKgB,EAAYh1F,EAASi1F,EACpDC,EACAC,EAAeC,EAAa,CACxB,GAAI,CAAE,QAAAvT,EAAS,QAAAr6F,CAAO,EAAKwY,EACvB,CAAE,iBAAAq1F,EAAkB,gBAAAC,CAAe,EAAK9tG,EACxCsiG,EAAWkK,EAAI,WAAW,IAC1BxC,EAAgBwC,EAAI,WAAW,SAC/BqB,GAAoB,OACpBA,EAAmBJ,IAA4B,IAE/CK,GAAmB,OACnBA,EAAkBJ,IAA2B,IAEjD,IAAIK,EAAkB/D,EAAc,MAAM,MACtCgE,EAAgBhE,EAAc,MAAM,IACpCiE,EAA4BzB,EAAI,OAASA,EAAI,WAAW,MAAM,MAC9D0B,EAAwB1B,EAAI,KAAOA,EAAI,WAAW,MAAM,IACxD2B,EAAar/D,GAAWi/D,CAAe,EAAE,QAAO,IAAOj/D,GAAWm/D,CAAQ,EAAE,QAAS,EACrFG,EAAWt/D,GAAWm/C,GAAM+f,EAAe,EAAE,CAAC,EAAE,QAAO,IAAOl/D,GAAWm/C,GAAMigB,EAAQ,EAAE,CAAC,EAAE,QAAS,EACzG,OAAIL,GAAoB,CAACvL,EAAS,SAAW6L,GAAcC,IACvDH,EAAWE,EAAaJ,EAAkBE,EAC1CC,EAASE,EAAWJ,EAAgBE,EAChCJ,GAAmBxL,EAAS,OACrBjI,EAAQ,YAAY4T,EAAUC,EAAQV,EAAY,CACrD,eAAuCxD,EAAc,eACrD,aAAmCA,EAAc,YACjE,CAAa,EAEE3P,EAAQ,OAAO4T,EAAUT,EAAY,CACxC,UAAkCxD,EAAc,cAC5D,CAAS,GAEE,EACX,CACA,SAASqE,GAAW7B,EAAK8B,EAAYC,EAAS,CAC1C,IAAIC,EAAWhC,EAAI,WAAW,MAC9B,MAAO,CACH,OAAQgC,EAAS,MAAQD,GAAWD,EAAW,OAC/C,SAAUE,EAAS,QAAUD,GAAWD,EAAW,KACnD,QAASA,GAAc/P,GAAoB+P,EAAYE,EAAS,KAAK,CACxE,CACL,CACA,SAASC,IAAmB18G,EAAO,CAC/B,IAAIqrG,EAAa,CAAC,UAAU,EAC5B,OAAIrrG,EAAM,UACNqrG,EAAW,KAAK,iBAAiB,EAEjCrrG,EAAM,aACNqrG,EAAW,KAAK,oBAAoB,GAEpCrrG,EAAM,kBAAoBA,EAAM,iBAChCqrG,EAAW,KAAK,oBAAoB,EAEpCrrG,EAAM,YACNqrG,EAAW,KAAK,mBAAmB,EAEnCrrG,EAAM,YACNqrG,EAAW,KAAK,mBAAmB,EAEnCrrG,EAAM,YACNqrG,EAAW,KAAK,mBAAmB,EAEnCrrG,EAAM,SACNqrG,EAAW,KAAK,gBAAgB,EAEhCrrG,EAAM,OACNqrG,EAAW,KAAK,cAAc,EAE9BrrG,EAAM,QACNqrG,EAAW,KAAK,eAAe,EAE/BrrG,EAAM,SACNqrG,EAAW,KAAK,gBAAgB,EAEhCrrG,EAAM,UACNqrG,EAAW,KAAK,iBAAiB,EAE9BA,CACX,CACA,SAASsR,GAAmBzB,EAAY,CACpC,OAAOA,EAAW,SACZA,EAAW,SAAS,WACpB,GAAGA,EAAW,IAAI,KAAK,IAAIA,EAAW,MAAM,MAAM,YAAW,CAAE,EAEzE,CACA,SAAS0B,GAAkBnC,EAAKh0F,EAAS,CACrC,GAAI,CAAE,IAAA/nB,EAAK,SAAAkR,CAAU,EAAG6qG,EAAI,WACxB,CAAE,IAAAvvE,CAAG,EAAKxsC,EACd,GAAIwsC,EACA,MAAO,CAAE,KAAMA,CAAK,EAExB,GAAI,CAAE,QAAA08D,EAAS,QAAA35F,CAAO,EAAKwY,EACvB,CAAE,iBAAAo2F,CAAgB,EAAK5uG,EAQ3B,OAPI4uG,GAAoB,OACpBA,EAAmBn+G,EAAI,YACnBm+G,GAAoB,OACpBA,EAAmB,EAAQjV,EAAQ,YAAY,YAAY,IAI/DiV,EAEOvkB,GAAyBrB,GAAO,CACnC2Q,EAAQ,QAAQ,aAAc,CAC1B,GAAI3Q,EAAG,OACP,MAAO,IAAIqhB,GAAU7xF,EAAS/nB,EAAKkR,CAAQ,EAC3C,QAASqnF,EACT,KAAMxwE,EAAQ,OAC9B,CAAa,CACb,CAAS,EAEE,CAAE,CACb,CAEA,MAAMq2F,IAAiB,CACnB,MAAO7Z,GACP,IAAKA,GACL,OAAQ,OACZ,EACA,SAAS8Z,IAAcl3G,EAAKyiG,EAAS0U,EAAiB,CAClD,IAAIC,EAAOC,IAAkBr3G,EAAKyiG,CAAO,EACrC,CAAE,MAAAmE,CAAK,EAAKwQ,EAChB,GAAI,CAACxQ,EAAM,MACP,OAAO,KAEX,GAAI,CAACA,EAAM,IAAK,CACZ,GAAIuQ,GAAmB,KACnB,OAAO,KAEXvQ,EAAM,IAAMnE,EAAQ,IAAImE,EAAM,MAAOuQ,CAAe,CAC5D,CACI,OAAOC,CACX,CAKA,SAASC,IAAkBr3G,EAAKyiG,EAAS,CACrC,GAAI,CAAE,QAASwP,EAAe,MAAAhU,CAAO,EAAGH,GAAY99F,EAAKi3G,GAAc,EACnEjL,EAAYiG,EAAc,MAAQxP,EAAQ,iBAAiBwP,EAAc,KAAK,EAAI,KAClF/F,EAAU+F,EAAc,IAAMxP,EAAQ,iBAAiBwP,EAAc,GAAG,EAAI,KAC5E,CAAE,OAAA/H,CAAM,EAAK+H,EACjB,OAAI/H,GAAU,OACVA,EAAU8B,GAAaA,EAAU,oBAC5B,CAACE,GAAWA,EAAQ,oBAEtB,OAAO,OAAO,CAAE,MAAO,CACtB,MAAOF,EAAYA,EAAU,OAAS,KACtC,IAAKE,EAAUA,EAAQ,OAAS,IAC5C,EAAW,OAAAhC,CAAQ,EAAEjM,CAAK,CAC1B,CACA,SAASqZ,IAAiBC,EAAOC,EAAO,CACpC,OAAOlR,IAAYiR,EAAM,MAAOC,EAAM,KAAK,GACvCD,EAAM,SAAWC,EAAM,QACvBC,IAAiBF,EAAOC,CAAK,CACrC,CAEA,SAASC,IAAiBF,EAAOC,EAAO,CACpC,QAASjoD,KAAYioD,EACjB,GAAIjoD,IAAa,SAAWA,IAAa,UACjCgoD,EAAMhoD,CAAQ,IAAMioD,EAAMjoD,CAAQ,EAClC,MAAO,GAMnB,QAASA,KAAYgoD,EACjB,GAAI,EAAEhoD,KAAYioD,GACd,MAAO,GAGf,MAAO,EACX,CACA,SAASjG,IAAiB6F,EAAM3U,EAAS,CACrC,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEiV,GAAcN,EAAK,MAAO3U,EAAS2U,EAAK,MAAM,CAAC,EAAG,CAAE,OAAQA,EAAK,OAAQ,CACpH,CACA,SAASO,GAA0B/Q,EAAOnE,EAASmV,EAAU,CACzD,OAAO,OAAO,OAAO,OAAO,OAAO,GAAIF,GAAc9Q,EAAOnE,EAASmV,CAAQ,CAAC,EAAG,CAAE,SAAUnV,EAAQ,QAAQ,CAAE,CACnH,CACA,SAASiV,GAAc9Q,EAAOnE,EAASmV,EAAU,CAC7C,MAAO,CACH,MAAOnV,EAAQ,OAAOmE,EAAM,KAAK,EACjC,IAAKnE,EAAQ,OAAOmE,EAAM,GAAG,EAC7B,SAAUnE,EAAQ,UAAUmE,EAAM,MAAO,CAAE,SAAAgR,EAAU,EACrD,OAAQnV,EAAQ,UAAUmE,EAAM,IAAK,CAAE,SAAAgR,EAAU,CACpD,CACL,CACA,SAASC,IAAoBxG,EAAUyC,EAAclzF,EAAS,CAC1D,IAAItnB,EAAM+xG,GAAe,CAAE,SAAU,EAAK,EAAIzqF,CAAO,EACjD/nB,EAAM2yG,GAAclyG,EAAI,QAASA,EAAI,MAAO,GAChD+3G,EAAS,OAAQ,GACjBzwF,CAAO,EACP,MAAO,CACH,IAAA/nB,EACA,GAAIk8G,GAAel8G,EAAKi7G,CAAY,EACpC,SAAUnK,GAAoB9wG,EAAI,MAAOw4G,EAAS,KAAK,EACvD,MAAOA,EAAS,MAChB,QAAS,GACT,MAAO,EACV,CACL,CAQA,SAASyG,IAAYjsC,EAAMksC,EAA2BC,EAA2B,CAG7E,IAAIC,EAAa,GACbC,EAAiB,SAAU5+G,EAAK,CAC3B2+G,IACDA,EAAa,GACbF,EAA0Bz+G,CAAG,EAEpC,EACG6+G,EAAiB,SAAUj7G,EAAO,CAC7B+6G,IACDA,EAAa,GACbD,EAA0B96G,CAAK,EAEtC,EACG5D,EAAMuyE,EAAKqsC,EAAgBC,CAAc,EACzC7+G,GAAO,OAAOA,EAAI,MAAS,YAC3BA,EAAI,KAAK4+G,EAAgBC,CAAc,CAE/C,CAEA,MAAMC,WAAyB,KAAM,CACjC,YAAYjwE,EAASivB,EAAU,CAC3B,MAAMjvB,CAAO,EACb,KAAK,SAAWivB,CACxB,CACA,CACA,SAASihD,IAAYp3G,EAAQokC,EAAKxG,EAAQ,CACtC59B,EAASA,EAAO,YAAa,EAC7B,MAAM0kE,EAAe,CACjB,OAAA1kE,CACH,EACD,OAAIA,IAAW,MACXokC,IAAQA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KACpC,IAAI,gBAAgBxG,CAAM,GAG9B8mC,EAAa,KAAO,IAAI,gBAAgB9mC,CAAM,EAC9C8mC,EAAa,QAAU,CACnB,eAAgB,mCACnB,GAEE,MAAMtgC,EAAKsgC,CAAY,EAAE,KAAM2yC,GAAa,CAC/C,GAAIA,EAAS,GACT,OAAOA,EAAS,KAAI,EAAG,KAAMC,GAClB,CAACA,EAAgBD,CAAQ,EACjC,IAAM,CACL,MAAM,IAAIF,GAAiB,uBAAwBE,CAAQ,CAC3E,CAAa,EAGD,MAAM,IAAIF,GAAiB,iBAAkBE,CAAQ,CAEjE,CAAK,CACL,CAEA,IAAIE,GACJ,SAASC,IAAwB,CAC7B,OAAID,IAAsB,OACtBA,GAAqBE,IAA2B,GAE7CF,EACX,CACA,SAASE,KAA4B,CAGjC,GAAI,OAAO,SAAa,IACpB,MAAO,GAEX,IAAIhiH,EAAK,SAAS,cAAc,KAAK,EACrCA,EAAG,MAAM,SAAW,WACpBA,EAAG,MAAM,IAAM,MACfA,EAAG,MAAM,KAAO,MAChBA,EAAG,UAAY,+CACfA,EAAG,cAAc,OAAO,EAAE,MAAM,OAAS,QACzCA,EAAG,cAAc,KAAK,EAAE,MAAM,OAAS,OACvC,SAAS,KAAK,YAAYA,CAAE,EAE5B,IAAIiiH,EADMjiH,EAAG,cAAc,KAAK,EACb,aAAe,EAClC,gBAAS,KAAK,YAAYA,CAAE,EACrBiiH,CACX,CAEA,MAAMC,YAAqBtV,EAAc,CACrC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQ,CACT,SAAU,EACb,EACD,KAAK,kBAAoB,IAAM,CAC3B1C,GAAU,IAAM,CACZ,KAAK,SAAS,CAAE,SAAU,EAAI,CAAE,CAChD,CAAa,CACJ,EACD,KAAK,iBAAmB,IAAM,CAC1BA,GAAU,IAAM,CACZ,KAAK,SAAS,CAAE,SAAU,EAAK,CAAE,CACjD,CAAa,CACJ,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAAzmG,CAAK,EAAK,KACZ,CAAE,QAAAiO,CAAO,EAAKjO,EACd,CAAE,SAAA0+G,GAAa,KAAK,MACpBC,EAAeD,GAAYzwG,EAAQ,SAAW,QAAUA,EAAQ,gBAAkB,OAClF2wG,EAAU,CAACD,GAAgB1wG,EAAQ,QAAU,KAAQA,EAAQ,OAAS,GACtEo9F,EAAa,CACb,KACAqT,EAAW,iBAAmB,kBAC9B,gBAAgBzwG,EAAQ,SAAS,GACjCjO,EAAM,MAAM,SAAS,MAAM,CAC9B,EACD,OAAKs+G,GAAqB,GACtBjT,EAAW,KAAK,gBAAgB,EAE7BrrG,EAAM,SAASqrG,EAAYuT,EAAQD,EAAcD,CAAQ,CACxE,CACI,mBAAoB,CAChB,GAAI,CAAE,QAAA9W,GAAY,KAAK,MACvBA,EAAQ,GAAG,eAAgB,KAAK,iBAAiB,EACjDA,EAAQ,GAAG,cAAe,KAAK,gBAAgB,CACvD,CACI,sBAAuB,CACnB,GAAI,CAAE,QAAAA,GAAY,KAAK,MACvBA,EAAQ,IAAI,eAAgB,KAAK,iBAAiB,EAClDA,EAAQ,IAAI,cAAe,KAAK,gBAAgB,CACxD,CACA,CAEA,MAAMiX,EAAY,CACd,YAAYhZ,EAAU,CAClB,KAAK,UAAYA,EAAS,UAC1B,KAAK,kBAAoBA,EAAS,mBAAqB,IAC/D,CACI,SAAU,CACd,CACA,CACA,SAASiZ,IAAyBhgG,EAAWgnC,EAAO,CAChD,MAAO,CACH,UAAAhnC,EACA,GAAIgnC,EAAM,GACV,eAAgBA,EAAM,gBAAkB,KAAOA,EAAM,eAAiB,GACtE,kBAAmBA,EAAM,mBAAqB,IACjD,CACL,CACA,SAASi5D,GAA2BlZ,EAAU,CAC1C,MAAO,CACH,CAACA,EAAS,UAAU,GAAG,EAAGA,CAC7B,CACL,CAEA,MAAMmZ,GAA2B,CAAE,EAEnC,MAAMC,GAAa,CACf,gBAAiB,CACb,OAAO,KAAK,mBAAmB,eAAgB,CACvD,CACI,SAASjiC,EAAQ,CACb,KAAK,mBAAmB,SAASA,CAAM,CAC/C,CACI,IAAI,MAAO,CAAE,OAAO,KAAK,eAAc,EAAG,OAAQ,CAClD,eAAe9yE,EAAU,CACrBA,EAAU,CAClB,CACI,YAAa,CACT,KAAK,QAAQ,UAAW,EAAI,CACpC,CAGI,UAAUpK,EAAMjE,EAAK,CACjB,KAAK,SAAS,CACV,KAAM,aACN,WAAYiE,EACZ,eAAgBjE,CAC5B,CAAS,CACT,CACI,UAAUiE,EAAM,CACZ,OAAO,KAAK,mBAAmB,4BAA4BA,CAAI,CACvE,CACI,yBAA0B,CACtB,OAAO,OAAO,KAAK,KAAK,eAAc,EAAG,mBAAmB,CACpE,CAGI,GAAG40B,EAAa7P,EAAS,CACrB,GAAI,CAAE,mBAAAq6F,CAAkB,EAAK,KACzBA,EAAmB,+BAA+BxqF,CAAW,EAC7DwqF,EAAmB,QAAQ,GAAGxqF,EAAa7P,CAAO,EAGlD,QAAQ,KAAK,0BAA0B6P,CAAW,GAAG,CAEjE,CACI,IAAIA,EAAa7P,EAAS,CACtB,KAAK,mBAAmB,QAAQ,IAAI6P,EAAa7P,CAAO,CAChE,CAEI,QAAQ6P,KAAgBtuB,EAAM,CAC1B,KAAK,mBAAmB,QAAQ,QAAQsuB,EAAa,GAAGtuB,CAAI,CACpE,CAGI,WAAW+4G,EAAUC,EAAa,CAC9B,KAAK,eAAe,IAAM,CAEtB,GADA,KAAK,SAAU,EACXA,EACA,GAAIA,EAAY,OAASA,EAAY,IACjC,KAAK,SAAS,CACV,KAAM,mBACN,SAAAD,CACxB,CAAqB,EACD,KAAK,SAAS,CACV,KAAM,aACN,WAAY,eACZ,eAAgBC,CACxC,CAAqB,MAEA,CACD,GAAI,CAAE,QAAA9W,CAAO,EAAK,KAAK,eAAgB,EACvC,KAAK,SAAS,CACV,KAAM,mBACN,SAAA6W,EACA,WAAY7W,EAAQ,aAAa8W,CAAW,CACpE,CAAqB,CACrB,MAGgB,KAAK,SAAS,CACV,KAAM,mBACN,SAAAD,CACpB,CAAiB,CAEjB,CAAS,CACT,CAII,OAAOE,EAAYF,EAAU,CACzB,IAAIpnG,EAAQ,KAAK,eAAgB,EAC7BunG,EACJH,EAAWA,GAAY,MACvBG,EAAOvnG,EAAM,UAAUonG,CAAQ,GAAK,KAAK,gBAAgBA,CAAQ,EACjE,KAAK,SAAU,EACXG,EACA,KAAK,SAAS,CACV,KAAM,mBACN,SAAUA,EAAK,KACf,WAAAD,CAChB,CAAa,EAGD,KAAK,SAAS,CACV,KAAM,cACN,WAAAA,CAChB,CAAa,CAEb,CAGI,gBAAgBhlB,EAAM,CAClB,GAAI,CAAE,UAAAklB,EAAW,cAAAC,GAAkB,KAAK,eAAgB,EACpDC,EAAY,GAAG,OAAOD,EAAc,OAASA,EAAc,OAAO,iBAAmB,CAAE,EAAEA,EAAc,OAASA,EAAc,OAAO,iBAAmB,EAAE,EAC1JhjH,EACA8iH,EACJ,QAASH,KAAYI,EACjBE,EAAU,KAAKN,CAAQ,EAE3B,IAAK3iH,EAAI,EAAGA,EAAIijH,EAAU,OAAQjjH,GAAK,EAEnC,GADA8iH,EAAOC,EAAUE,EAAUjjH,CAAC,CAAC,EACzB8iH,GACIA,EAAK,aAAejlB,EACpB,OAAOilB,EAInB,OAAO,IACf,CAGI,MAAO,CACH,KAAK,SAAU,EACf,KAAK,SAAS,CAAE,KAAM,MAAM,CAAE,CACtC,CACI,MAAO,CACH,KAAK,SAAU,EACf,KAAK,SAAS,CAAE,KAAM,MAAM,CAAE,CACtC,CACI,UAAW,CACP,IAAIvnG,EAAQ,KAAK,eAAgB,EACjC,KAAK,SAAU,EACf,KAAK,SAAS,CACV,KAAM,cACN,WAAYA,EAAM,QAAQ,SAASA,EAAM,YAAa,EAAE,CACpE,CAAS,CACT,CACI,UAAW,CACP,IAAIA,EAAQ,KAAK,eAAgB,EACjC,KAAK,SAAU,EACf,KAAK,SAAS,CACV,KAAM,cACN,WAAYA,EAAM,QAAQ,SAASA,EAAM,YAAa,CAAC,CACnE,CAAS,CACT,CACI,OAAQ,CACJ,IAAIA,EAAQ,KAAK,eAAgB,EACjC,KAAK,SAAU,EACf,KAAK,SAAS,CACV,KAAM,cACN,WAAYipB,GAAOjpB,EAAM,gBAAgB,IAAKA,EAAM,OAAO,CACvE,CAAS,CACT,CACI,SAAS2nG,EAAgB,CACrB,IAAI3nG,EAAQ,KAAK,eAAgB,EACjC,KAAK,SAAU,EACf,KAAK,SAAS,CACV,KAAM,cACN,WAAYA,EAAM,QAAQ,aAAa2nG,CAAc,CACjE,CAAS,CACT,CACI,cAAc9G,EAAY,CACtB,IAAI7gG,EAAQ,KAAK,eAAgB,EAC7BixB,EAAQoxD,GAAewe,CAAU,EACjC5vE,IACA,KAAK,SAAU,EACf,KAAK,SAAS,CACV,KAAM,cACN,WAAYjxB,EAAM,QAAQ,IAAIA,EAAM,YAAaixB,CAAK,CACtE,CAAa,EAEb,CACI,SAAU,CACN,IAAIjxB,EAAQ,KAAK,eAAgB,EACjC,OAAOA,EAAM,QAAQ,OAAOA,EAAM,WAAW,CACrD,CAGI,WAAWumB,EAAG+oB,EAAW,CACrB,GAAI,CAAE,QAAAihD,CAAO,EAAK,KAAK,eAAgB,EACvC,OAAOA,EAAQ,OAAOA,EAAQ,aAAahqE,CAAC,EAAGykE,GAAgB17C,CAAS,CAAC,CACjF,CAEI,YAAYqzC,EAAIC,EAAIkL,EAAU,CAC1B,GAAI,CAAE,QAAAyC,CAAO,EAAK,KAAK,eAAgB,EACvC,OAAOA,EAAQ,YAAYA,EAAQ,aAAa5N,CAAE,EAAG4N,EAAQ,aAAa3N,CAAE,EAAGoI,GAAgB8C,CAAQ,EAAGA,CAAQ,CAC1H,CACI,UAAUvnE,EAAGm/E,EAAU,CACnB,GAAI,CAAE,QAAAnV,CAAO,EAAK,KAAK,eAAgB,EACvC,OAAOA,EAAQ,UAAUA,EAAQ,aAAahqE,CAAC,EAAG,CAAE,SAAAm/E,EAAU,CACtE,CAGI,OAAOkC,EAAWC,EAAS,CACvB,IAAIC,EACAD,GAAW,KACPD,EAAU,OAAS,KACnBE,EAAiBF,EAGjBE,EAAiB,CACb,MAAOF,EACP,IAAK,IACR,EAILE,EAAiB,CACb,MAAOF,EACP,IAAKC,CACR,EAEL,IAAI7nG,EAAQ,KAAK,eAAgB,EAC7B++F,EAAYiG,IAAc8C,EAAgB9nG,EAAM,QAASqiF,GAAe,CAAE,KAAM,CAAC,CAAE,CAAC,EACpF0c,IACA,KAAK,SAAS,CAAE,KAAM,eAAgB,UAAAA,CAAS,CAAE,EACjDD,GAAkBC,EAAW,KAAM/+F,CAAK,EAEpD,CACI,SAASg/F,EAAK,CACV,IAAIh/F,EAAQ,KAAK,eAAgB,EAC7BA,EAAM,gBACN,KAAK,SAAS,CAAE,KAAM,gBAAgB,CAAE,EACxCk/F,IAAoBF,EAAKh/F,CAAK,EAE1C,CAGI,SAAS+nG,EAAYC,EAAa,CAC9B,GAAID,aAAsBxH,GAAW,CACjC,IAAI55G,EAAMohH,EAAW,KACjBlwG,EAAWkwG,EAAW,UAG1B,OAFkB,KAAK,eAAgB,EAEtB,WAAW,KAAKphH,EAAI,KAAK,IACtC,KAAK,SAAS,CACV,KAAM,aACN,WAAY8zG,GAAkB,CAAE,IAAA9zG,EAAK,SAAAkR,CAAQ,CAAE,CACnE,CAAiB,EACD,KAAK,gBAAgBkwG,CAAU,GAE5BA,CACnB,CACQ,IAAI/nG,EAAQ,KAAK,eAAgB,EAC7B84F,EACJ,GAAIkP,aAAuB3H,GACvBvH,EAAckP,EAAY,4BAErB,OAAOA,GAAgB,UACxBA,IACA,CAAClP,CAAW,EAAIrM,GAAkBzsF,EAAM,YAAY,WAGnDgoG,GAAe,KAAM,CAC1B,IAAIC,EAAY,KAAK,mBAAmBD,CAAW,EACnD,GAAI,CAACC,EACD,eAAQ,KAAK,2CAA2CD,CAAW,GAAG,EAC/D,KAEXlP,EAAcmP,EAAU,mBACpC,CACQ,IAAIzN,EAAQ3B,GAAWkP,EAAYjP,EAAa94F,EAAO,EAAK,EAC5D,GAAIw6F,EAAO,CACP,IAAI0N,EAAc,IAAI3H,GAAUvgG,EAAOw6F,EAAM,IAAKA,EAAM,IAAI,aAAe,KAAOA,EAAM,QAAQ,EAChG,YAAK,SAAS,CACV,KAAM,aACN,WAAYC,GAAkBD,CAAK,CACnD,CAAa,EACD,KAAK,gBAAgB0N,CAAW,EACzBA,CACnB,CACQ,OAAO,IACf,CACI,gBAAgB3G,EAAU,CACtB,GAAI,CAAE,QAAA1R,CAAO,EAAK,KAAK,eAAgB,EACvCA,EAAQ,QAAQ,WAAY,CACxB,MAAO0R,EACP,cAAe,CAAE,EACjB,OAAQ,IAAM,CACV,KAAK,SAAS,CACV,KAAM,gBACN,WAAYH,GAAgBG,CAAQ,CACxD,CAAiB,CACJ,CACb,CAAS,CACT,CAEI,aAAaloG,EAAI,CACb,IAAI2G,EAAQ,KAAK,eAAgB,EAC7B,CAAE,KAAAo4F,EAAM,UAAAC,CAAW,EAAGr4F,EAAM,WAChC3G,EAAK,OAAOA,CAAE,EACd,QAASq+F,KAASU,EAAM,CACpB,IAAIzxG,EAAMyxG,EAAKV,CAAK,EACpB,GAAI/wG,EAAI,WAAa0S,EAAI,CACrB,GAAI1S,EAAI,aACJ,OAAO,IAAI45G,GAAUvgG,EAAOrZ,EAAK,IAAI,EAEzC,QAASg0G,KAActC,EAAW,CAC9B,IAAIxgG,EAAWwgG,EAAUsC,CAAU,EACnC,GAAI9iG,EAAS,QAAUlR,EAAI,MACvB,OAAO,IAAI45G,GAAUvgG,EAAOrZ,EAAKkR,CAAQ,CAEjE,CACA,CACA,CACQ,OAAO,IACf,CACI,WAAY,CACR,IAAIswG,EAAc,KAAK,eAAgB,EACvC,OAAOjH,GAAeiH,EAAY,WAAYA,CAAW,CACjE,CACI,iBAAkB,CACd,KAAK,SAAS,CAAE,KAAM,mBAAmB,CAAE,CACnD,CAGI,iBAAkB,CACd,IAAInoG,EAAQ,KAAK,eAAgB,EAC7BooG,EAAapoG,EAAM,aACnBqoG,EAAa,CAAE,EACnB,QAASC,KAAcF,EACnBC,EAAW,KAAK,IAAIhI,GAAgBrgG,EAAOooG,EAAWE,CAAU,CAAC,CAAC,EAEtE,OAAOD,CACf,CACI,mBAAmBhvG,EAAI,CACnB,IAAI2G,EAAQ,KAAK,eAAgB,EAC7BooG,EAAapoG,EAAM,aACvB3G,EAAK,OAAOA,CAAE,EACd,QAASqgG,KAAY0O,EACjB,GAAIA,EAAW1O,CAAQ,EAAE,WAAargG,EAClC,OAAO,IAAIgnG,GAAgBrgG,EAAOooG,EAAW1O,CAAQ,CAAC,EAG9D,OAAO,IACf,CACI,eAAesO,EAAa,CACxB,IAAIhoG,EAAQ,KAAK,eAAgB,EACjC,GAAIgoG,aAAuB3H,GAEvB,OAAKrgG,EAAM,aAAagoG,EAAY,oBAAoB,QAAQ,GAC5D,KAAK,SAAS,CACV,KAAM,oBACN,QAAS,CAACA,EAAY,mBAAmB,CAC7D,CAAiB,EAEEA,EAEX,IAAIlP,EAAcsD,GAAiB4L,EAAahoG,CAAK,EACrD,OAAI84F,GACA,KAAK,SAAS,CAAE,KAAM,oBAAqB,QAAS,CAACA,CAAW,EAAG,EAC5D,IAAIuH,GAAgBrgG,EAAO84F,CAAW,GAE1C,IACf,CACI,uBAAwB,CACpB,KAAK,SAAS,CAAE,KAAM,0BAA0B,CAAE,CAC1D,CACI,eAAgB,CACZ,KAAK,SAAS,CAAE,KAAM,sBAAuB,UAAW,GAAM,CACtE,CAGI,aAAayP,EAAW,CACpB,IAAIzuD,EAAOuoC,GAAekmB,CAAS,EAC/BzuD,GACA,KAAK,QAAQ,iBAAkB,CAAE,KAAAA,CAAI,CAAE,CAEnD,CACA,CAEA,SAAS0uD,IAAgBC,EAAOC,EAAM,CAClC,OAAOD,EAAM,MAAQC,EAAK,MACtBD,EAAM,KAAOC,EAAK,OAClBD,EAAM,KAAOC,EAAK,KAClBD,EAAM,IAAMC,EAAK,MACzB,CAEA,SAASC,GAAeC,EAAOC,EAAO,CAClC,IAAIzhH,EAAM,CACN,KAAM,KAAK,IAAIwhH,EAAM,KAAMC,EAAM,IAAI,EACrC,MAAO,KAAK,IAAID,EAAM,MAAOC,EAAM,KAAK,EACxC,IAAK,KAAK,IAAID,EAAM,IAAKC,EAAM,GAAG,EAClC,OAAQ,KAAK,IAAID,EAAM,OAAQC,EAAM,MAAM,CAC9C,EACD,OAAIzhH,EAAI,KAAOA,EAAI,OAASA,EAAI,IAAMA,EAAI,OAC/BA,EAEJ,EACX,CAUA,SAAS0hH,IAAeL,EAAOC,EAAM,CACjC,MAAO,CACH,KAAM,KAAK,IAAI,KAAK,IAAID,EAAM,KAAMC,EAAK,IAAI,EAAGA,EAAK,KAAK,EAC1D,IAAK,KAAK,IAAI,KAAK,IAAID,EAAM,IAAKC,EAAK,GAAG,EAAGA,EAAK,MAAM,CAC3D,CACL,CAEA,SAASK,IAAcL,EAAM,CACzB,MAAO,CACH,MAAOA,EAAK,KAAOA,EAAK,OAAS,EACjC,KAAMA,EAAK,IAAMA,EAAK,QAAU,CACnC,CACL,CAEA,SAASM,IAAWC,EAAQC,EAAQ,CAChC,MAAO,CACH,KAAMD,EAAO,KAAOC,EAAO,KAC3B,IAAKD,EAAO,IAAMC,EAAO,GAC5B,CACL,CAEA,MAAMC,GAAoB9O,GAAqB,EAC/C,MAAM+O,GAAS,CACX,aAAc,CACV,KAAK,oBAAsB1iB,GAAQ,KAAK,oBAAoB,EAC5D,KAAK,mBAAqBA,GAAQ,KAAK,cAAc,EACrD,KAAK,gBAAkBA,GAAQ,KAAK,gBAAgB,EACpD,KAAK,kBAAoBA,GAAQ,KAAK,kBAAkB,EACxD,KAAK,eAAiBA,GAAQ,KAAK,iBAAiB,EACpD,KAAK,iBAAmBA,GAAQ,KAAK,iBAAiB,EACtD,KAAK,gBAAkB,EAC/B,CACI,WAAWz+F,EAAO,CACd,IAAIohH,EAAW,KAAK,WAAWphH,CAAK,EAChCqhH,EAAU,KAAK,oBAAoBrhH,EAAM,UAAU,EACnDshH,EAAiB,KAAK,mBAAmBthH,EAAM,aAAa,EAC5DuhH,EAAe,KAAK,kBAAkBvhH,EAAM,aAAcqhH,CAAO,EACjEG,EAAc,KAAK,gBAAgBxhH,EAAM,WAAYqhH,CAAO,EAC5DI,EAAa,KAAK,eAAezhH,EAAM,SAAS,EAChD0hH,EAAe,KAAK,iBAAiB1hH,EAAM,WAAW,EACtD2hH,EAAa,CAAE,EACnB,KAAK,gBAAkBtd,GAAQ+c,EAAU,CAACloE,EAAMt9C,IAAQ,KAAK,gBAAgBA,CAAG,GAAK6iG,GAAQmjB,GAAkB,CAAC,EAChH,QAAShmH,KAAOwlH,EAAU,CACtB,IAAIS,EAAUT,EAASxlH,CAAG,EACtBq0G,EAAauR,EAAY5lH,CAAG,GAAKslH,GACjCY,EAAe,KAAK,gBAAgBlmH,CAAG,EAC3C+lH,EAAW/lH,CAAG,EAAI,CACd,cAAeimH,EAAQ,eAAiB7hH,EAAM,cAC9C,cAAeshH,EAAe1lH,CAAG,GAAK,KACtC,WAAAq0G,EACA,aAAc6R,EAAa9hH,EAAM,aAAa,EAAE,EAAG6hH,EAAQ,GAAIN,EAAa3lH,CAAG,CAAC,EAChF,eAAgBq0G,EAAW,UAAUjwG,EAAM,cAAc,EAAIA,EAAM,eAAiB,GACpF,UAAWyhH,EAAW7lH,CAAG,GAAK,KAC9B,YAAa8lH,EAAa9lH,CAAG,GAAK,IACrC,CACb,CACQ,OAAO+lH,CACf,CACI,eAAezK,EAAU,CACrB,IAAI6K,EAAY,CAAE,EAClB,GAAI7K,EAAU,CACV,IAAIv3F,EAAO,KAAK,mBAAmBu3F,CAAQ,EAC3C,QAASt7G,KAAO+jB,EACZoiG,EAAUnmH,CAAG,EAAIs7G,CAEjC,CACQ,OAAO6K,CACf,CACI,qBAAqB9R,EAAY,CAC7B,OAAO5L,GAAQ4L,EAAW,KAAOM,GAAa,KAAK,mBAAmBA,CAAQ,CAAC,CACvF,CACI,iBAAiBN,EAAYoR,EAAS,CAClC,GAAI,CAAE,KAAAlR,EAAM,UAAAC,CAAS,EAAKH,EACtB+R,EAAc,CAAE,EACpB,QAASvS,KAASU,EACd,QAASv0G,KAAOylH,EAAQ5R,CAAK,EACpBuS,EAAYpmH,CAAG,IAChBomH,EAAYpmH,CAAG,EAAIw2G,GAAuB,GAE9C4P,EAAYpmH,CAAG,EAAE,KAAK6zG,CAAK,EAAIU,EAAKV,CAAK,EAGjD,QAASiD,KAActC,EAAW,CAC9B,IAAIxgG,EAAWwgG,EAAUsC,CAAU,EACnC,QAAS92G,KAAOylH,EAAQzxG,EAAS,KAAK,EAC9BoyG,EAAYpmH,CAAG,IACfomH,EAAYpmH,CAAG,EAAE,UAAU82G,CAAU,EAAI9iG,EAG7D,CACQ,OAAOoyG,CACf,CACI,mBAAmBrI,EAAc0H,EAAS,CACtC,IAAIY,EAAc,CAAE,EACpB,QAASxS,KAASkK,EACd,GAAIlK,EACA,QAAS7zG,KAAOylH,EAAQ5R,CAAK,EACpBwS,EAAYrmH,CAAG,IAChBqmH,EAAYrmH,CAAG,EAAI,CAAE,GAEzBqmH,EAAYrmH,CAAG,EAAE6zG,CAAK,EAAIkK,EAAalK,CAAK,EAIxD,OAAOwS,CACf,CACI,kBAAkBC,EAAa,CAC3B,IAAIC,EAAc,CAAE,EACpB,GAAID,EAAa,CACb,IAAIE,EAAiB,KAAK,iBAAiBF,EAAY,eAAgB,KAAK,qBAAqBA,EAAY,cAAc,CAAC,EAExHG,EAAqB,KAAK,qBAAqBH,EAAY,aAAa,EACxEI,EAAgB,KAAK,iBAAiBJ,EAAY,cAAeG,CAAkB,EACnFE,EAAY3mH,GAAQ,CACfumH,EAAYvmH,CAAG,IAChBumH,EAAYvmH,CAAG,EAAI,CACf,eAAgBwmH,EAAexmH,CAAG,GAAKslH,GACvC,cAAeoB,EAAc1mH,CAAG,GAAKslH,GACrC,QAASgB,EAAY,OACxB,EAER,EACD,QAAStmH,KAAOwmH,EACZG,EAAS3mH,CAAG,EAEhB,QAASA,KAAO0mH,EACZC,EAAS3mH,CAAG,CAE5B,CACQ,OAAOumH,CACf,CACA,CACA,SAASP,IAAmBY,EAAOC,EAAelB,EAAc,CAC5D,IAAImB,EAAY,CAAE,EACdF,GACAE,EAAU,KAAKF,CAAK,EAEpBC,GACAC,EAAU,KAAKD,CAAa,EAEhC,IAAIE,EAAQ,CACR,GAAI9O,GAAgB6O,CAAS,CAChC,EACD,OAAInB,GACA,OAAO,OAAOoB,EAAOpB,CAAY,EAE9BoB,CACX,CAEA,SAASC,GAAY3nE,EAAMshE,EAAYC,EAAS9H,EAAa,CACzD,MAAO,CACH,IAAKz5D,EAAK,UAAW,EACrB,WAAY,GAAQy5D,GAAe,CAAClI,GAAoBkI,EAAY,YAAaz5D,CAAI,GACrF,QAAS,GAAQy5D,GAAe,CAAClI,GAAoBkI,EAAY,aAAcz5D,CAAI,GACnF,QAAS,GAAQshE,GAAc/P,GAAoB+P,EAAYthE,CAAI,GACnE,OAAQ,GAAqCshE,GAActhE,EAAOshE,EAAW,OAC7E,SAAU,GAAqCA,GAActhE,GAAQshE,EAAW,IACnF,CACL,CACA,SAASsG,GAAiBjyE,EAAM23D,EAAO,CACnC,IAAI8C,EAAa,CACb,SACA,UAAUvP,IAAQlrD,EAAK,GAAG,CAAC,EAC9B,EACD,OAAIA,EAAK,WACLy6D,EAAW,KAAK,iBAAiB,GAG7Bz6D,EAAK,UACLy6D,EAAW,KAAK,cAAc,EAC9BA,EAAW,KAAK9C,EAAM,SAAS,OAAO,CAAC,GAEvC33D,EAAK,QACLy6D,EAAW,KAAK,aAAa,EAE7Bz6D,EAAK,UACLy6D,EAAW,KAAK,eAAe,EAE/Bz6D,EAAK,SACLy6D,EAAW,KAAK,cAAc,GAG/BA,CACX,CAwBA,MAAMyX,IAAa/f,GAAgB,CAAE,KAAM,UAAW,MAAO,OAAQ,IAAK,UAAW,EAC/EggB,IAAchgB,GAAgB,CAAE,KAAM,MAAM,CAAE,EACpD,SAASigB,GAAkBv8F,EAAS44F,EAAYF,EAAW,MAAO8D,EAAa,GAAM,CACjF,KAAM,CAAE,QAAA3a,EAAS,QAAAr6F,EAAS,YAAA06F,CAAa,EAAGliF,EAC1C,IAAIinC,EAAU46C,EAAQ,OAAO+W,EAAYF,IAAa,OAAS4D,IAAcD,GAAU,EACvF,GAAI70G,EAAQ,SAAU,CAClB,IAAIi1G,EAAY5a,EAAQ,OAAO+W,CAAU,EACzC,MAAM8D,EAAqBlsB,GAAO,CAC9B,IAAImsB,EAAejE,IAAa,MAAQlxG,EAAQ,gBAC5CkxG,IAAa,OAASlxG,EAAQ,iBAAmB,KACjD,OAAOm1G,GAAiB,WACxBA,EAAa,KAAKza,EAAaL,EAAQ,OAAO+W,CAAU,EAAGpoB,CAAE,GAGzD,OAAOmsB,GAAiB,WACxBjE,EAAWiE,GAEfza,EAAY,OAAO0W,EAAYF,CAAQ,EAE9C,EACD,OAAO,OAAO,OAAO,CAAE,MAAOzlB,GAAmBzrF,EAAQ,YAAa,CAACy/C,EAASw1D,CAAS,EAAGx1D,CAAO,EAAG,eAAgB,EAAE,EAAKu1D,EACvH5qB,GAAqB8qB,CAAiB,EACtC,CAAE,QAASA,EAAqB,CAC9C,CACI,MAAO,CAAE,aAAcz1D,CAAS,CACpC,CAEA,IAAI21D,GAAwB,KAC5B,SAASC,KAA0B,CAC/B,OAAID,KAA0B,OAC1BA,GAAwBE,IAA6B,GAElDF,EACX,CACA,SAASE,KAA8B,CACnC,IAAIC,EAAU,SAAS,cAAc,KAAK,EAC1C1sB,GAAW0sB,EAAS,CAChB,SAAU,WACV,IAAK,KACL,KAAM,EACN,OAAQ,EACR,QAAS,EACT,SAAU,SACV,UAAW,KACnB,CAAK,EACDA,EAAQ,UAAY,cACpB,SAAS,KAAK,YAAYA,CAAO,EAEjC,IAAIrkH,EADUqkH,EAAQ,WACJ,sBAAqB,EAAG,KAAOA,EAAQ,sBAAqB,EAAG,KACjF,OAAAjtB,GAAcitB,CAAO,EACdrkH,CACX,CAEA,IAAIskH,GACJ,SAASC,KAAqB,CAC1B,OAAKD,KACDA,GAAmBE,IAAwB,GAExCF,EACX,CACA,SAASE,KAAyB,CAC9B,IAAIpnH,EAAK,SAAS,cAAc,KAAK,EACrCA,EAAG,MAAM,SAAW,SACpBA,EAAG,MAAM,SAAW,WACpBA,EAAG,MAAM,IAAM,UACfA,EAAG,MAAM,KAAO,UAChB,SAAS,KAAK,YAAYA,CAAE,EAC5B,IAAI4C,EAAMykH,GAA4BrnH,CAAE,EACxC,gBAAS,KAAK,YAAYA,CAAE,EACrB4C,CACX,CAEA,SAASykH,GAA4BrnH,EAAI,CACrC,MAAO,CACH,EAAGA,EAAG,aAAeA,EAAG,aACxB,EAAGA,EAAG,YAAcA,EAAG,WAC1B,CACL,CAEA,SAASsnH,IAAatnH,EAAIunH,EAAa,GAAO,CAC1C,IAAIC,EAAgB,OAAO,iBAAiBxnH,CAAE,EAC1CynH,EAAa,SAASD,EAAc,gBAAiB,EAAE,GAAK,EAC5DE,EAAc,SAASF,EAAc,iBAAkB,EAAE,GAAK,EAC9DG,EAAY,SAASH,EAAc,eAAgB,EAAE,GAAK,EAC1DI,EAAe,SAASJ,EAAc,kBAAmB,EAAE,GAAK,EAChEK,EAAqBR,GAA4BrnH,CAAE,EACnD8nH,EAAqBD,EAAmB,EAAIJ,EAAaC,EACzDK,EAAkBF,EAAmB,EAAIF,EAAYC,EACrDhlH,EAAM,CACN,WAAA6kH,EACA,YAAAC,EACA,UAAAC,EACA,aAAAC,EACA,gBAAAG,EACA,cAAe,EACf,eAAgB,CACnB,EACD,OAAIhB,IAAyB,GAAIS,EAAc,YAAc,MACzD5kH,EAAI,cAAgBklH,EAGpBllH,EAAI,eAAiBklH,EAErBP,IACA3kH,EAAI,YAAc,SAAS4kH,EAAc,YAAa,EAAE,GAAK,EAC7D5kH,EAAI,aAAe,SAAS4kH,EAAc,aAAc,EAAE,GAAK,EAC/D5kH,EAAI,WAAa,SAAS4kH,EAAc,WAAY,EAAE,GAAK,EAC3D5kH,EAAI,cAAgB,SAAS4kH,EAAc,cAAe,EAAE,GAAK,GAE9D5kH,CACX,CACA,SAASolH,IAAiBhoH,EAAIioH,EAAkB,GAAOC,EAAsB,CACzE,IAAIC,EAAgEC,GAAYpoH,CAAE,EAC9EqoH,EAAQf,IAAatnH,EAAIioH,CAAe,EACxCrlH,EAAM,CACN,KAAMulH,EAAU,KAAOE,EAAM,WAAaA,EAAM,cAChD,MAAOF,EAAU,MAAQE,EAAM,YAAcA,EAAM,eACnD,IAAKF,EAAU,IAAME,EAAM,UAC3B,OAAQF,EAAU,OAASE,EAAM,aAAeA,EAAM,eACzD,EACD,OAAIJ,IACArlH,EAAI,MAAQylH,EAAM,YAClBzlH,EAAI,OAASylH,EAAM,aACnBzlH,EAAI,KAAOylH,EAAM,WACjBzlH,EAAI,QAAUylH,EAAM,eAEjBzlH,CACX,CACA,SAASwlH,GAAYpoH,EAAI,CACrB,IAAIkkH,EAAOlkH,EAAG,sBAAuB,EACrC,MAAO,CACH,KAAMkkH,EAAK,KAAO,OAAO,QACzB,IAAKA,EAAK,IAAM,OAAO,QACvB,MAAOA,EAAK,MAAQ,OAAO,QAC3B,OAAQA,EAAK,OAAS,OAAO,OAChC,CACL,CACA,SAASoE,IAAyBtoH,EAAI,CAClC,IAAIuoH,EAAkBC,GAAmBxoH,CAAE,EACvCkkH,EAAOlkH,EAAG,sBAAuB,EACrC,QAASyoH,KAAkBF,EAAiB,CACxC,IAAIG,EAAevE,GAAeD,EAAMuE,EAAe,sBAAqB,CAAE,EAC9E,GAAIC,EACAxE,EAAOwE,MAGP,QAAO,IAEnB,CACI,OAAOxE,CACX,CAEA,SAASsE,GAAmBxoH,EAAI,CAC5B,IAAI2oH,EAAU,CAAE,EAChB,KAAO3oH,aAAc,aAAa,CAC9B,IAAIwnH,EAAgB,OAAO,iBAAiBxnH,CAAE,EAC9C,GAAIwnH,EAAc,WAAa,QAC3B,MAEC,gBAAiB,KAAKA,EAAc,SAAWA,EAAc,UAAYA,EAAc,SAAS,GACjGmB,EAAQ,KAAK3oH,CAAE,EAEnBA,EAAKA,EAAG,UAChB,CACI,OAAO2oH,CACX,CAOA,MAAMC,EAAc,CAChB,YAAYC,EAAUC,EAAKC,EAAcC,EAAY,CACjD,KAAK,IAAMF,EACX,IAAIG,EAAmB,KAAK,iBAAmBJ,EAAS,sBAAqB,EACzEE,GACA,KAAK,mBAAmBE,EAAiB,IAAI,EAE7CD,GACA,KAAK,iBAAiBC,EAAiB,GAAG,CAEtD,CAEI,mBAAmBC,EAAkB,CACjC,IAAIC,EAAQ,CAAE,EACVC,EAAS,CAAE,EACf,QAASppH,KAAM,KAAK,IAAK,CACrB,IAAIkkH,EAAOlkH,EAAG,sBAAuB,EACrCmpH,EAAM,KAAKjF,EAAK,KAAOgF,CAAgB,EACvCE,EAAO,KAAKlF,EAAK,MAAQgF,CAAgB,CACrD,CACQ,KAAK,MAAQC,EACb,KAAK,OAASC,CACtB,CAEI,iBAAiBC,EAAiB,CAC9B,IAAIC,EAAO,CAAE,EACTC,EAAU,CAAE,EAChB,QAASvpH,KAAM,KAAK,IAAK,CACrB,IAAIkkH,EAAOlkH,EAAG,sBAAuB,EACrCspH,EAAK,KAAKpF,EAAK,IAAMmF,CAAe,EACpCE,EAAQ,KAAKrF,EAAK,OAASmF,CAAe,CACtD,CACQ,KAAK,KAAOC,EACZ,KAAK,QAAUC,CACvB,CAGI,YAAYC,EAAc,CACtB,GAAI,CAAE,MAAAL,EAAO,OAAAC,CAAM,EAAK,KACpBjzF,EAAMgzF,EAAM,OACZlpH,EACJ,IAAKA,EAAI,EAAGA,EAAIk2B,EAAKl2B,GAAK,EACtB,GAAIupH,GAAgBL,EAAMlpH,CAAC,GAAKupH,EAAeJ,EAAOnpH,CAAC,EACnD,OAAOA,CAIvB,CAGI,WAAWwpH,EAAa,CACpB,GAAI,CAAE,KAAAH,EAAM,QAAAC,CAAO,EAAK,KACpBpzF,EAAMmzF,EAAK,OACXrpH,EACJ,IAAKA,EAAI,EAAGA,EAAIk2B,EAAKl2B,GAAK,EACtB,GAAIwpH,GAAeH,EAAKrpH,CAAC,GAAKwpH,EAAcF,EAAQtpH,CAAC,EACjD,OAAOA,CAIvB,CAEI,SAASypH,EAAW,CAChB,OAAO,KAAK,OAAOA,CAAS,EAAI,KAAK,MAAMA,CAAS,CAC5D,CAEI,UAAUC,EAAU,CAChB,OAAO,KAAK,QAAQA,CAAQ,EAAI,KAAK,KAAKA,CAAQ,CAC1D,CACI,UAAUC,EAAY,CAClB,OAAOC,GAAiB,KAAK,MAAQ,CAAE,EAAED,EAAW,MAAQ,EAAE,GAC1DC,GAAiB,KAAK,SAAW,CAAE,EAAED,EAAW,SAAW,EAAE,GAC7DC,GAAiB,KAAK,OAAS,CAAE,EAAED,EAAW,OAAS,EAAE,GACzDC,GAAiB,KAAK,QAAU,CAAE,EAAED,EAAW,QAAU,EAAE,CACvE,CACA,CACA,SAASC,GAAiBh0G,EAAGC,EAAG,CAC5B,MAAMqgB,EAAMtgB,EAAE,OACd,GAAIsgB,IAAQrgB,EAAE,OACV,MAAO,GAEX,QAAS7V,EAAI,EAAGA,EAAIk2B,EAAKl2B,IACrB,GAAI,KAAK,MAAM4V,EAAE5V,CAAC,CAAC,IAAM,KAAK,MAAM6V,EAAE7V,CAAC,CAAC,EACpC,MAAO,GAGf,MAAO,EACX,CAQA,MAAM6pH,EAAiB,CACnB,iBAAkB,CACd,OAAO,KAAK,kBAAoB,KAAK,gBAAiB,CAC9D,CACI,kBAAmB,CACf,OAAO,KAAK,iBAAmB,KAAK,eAAgB,CAC5D,CACI,qBAAsB,CAClB,OAAO,KAAK,gBAAe,EAAK,CACxC,CACI,uBAAwB,CACpB,OAAO,KAAK,iBAAgB,EAAK,CACzC,CACI,aAAc,CACV,OAAO,KAAK,aAAY,EAAK,CACrC,CACI,eAAgB,CACZ,OAAO,KAAK,eAAiB,KAAK,gBAAiB,CAC3D,CACI,eAAgB,CACZ,OAAO,KAAK,cAAa,EAAK,CACtC,CACI,gBAAiB,CACb,OAAO,KAAK,gBAAkB,KAAK,iBAAkB,CAC7D,CACA,CACA,MAAMC,YAAgCD,EAAiB,CACnD,YAAY9pH,EAAI,CACZ,MAAO,EACP,KAAK,GAAKA,CAClB,CACI,cAAe,CACX,OAAO,KAAK,GAAG,SACvB,CACI,eAAgB,CACZ,OAAO,KAAK,GAAG,UACvB,CACI,aAAagqH,EAAK,CACd,KAAK,GAAG,UAAYA,CAC5B,CACI,cAAcC,EAAM,CAChB,KAAK,GAAG,WAAaA,CAC7B,CACI,gBAAiB,CACb,OAAO,KAAK,GAAG,WACvB,CACI,iBAAkB,CACd,OAAO,KAAK,GAAG,YACvB,CACI,iBAAkB,CACd,OAAO,KAAK,GAAG,YACvB,CACI,gBAAiB,CACb,OAAO,KAAK,GAAG,WACvB,CACA,CACA,MAAMC,YAA+BJ,EAAiB,CAClD,cAAe,CACX,OAAO,OAAO,OACtB,CACI,eAAgB,CACZ,OAAO,OAAO,OACtB,CACI,aAAavnH,EAAG,CACZ,OAAO,OAAO,OAAO,QAASA,CAAC,CACvC,CACI,cAAcA,EAAG,CACb,OAAO,OAAOA,EAAG,OAAO,OAAO,CACvC,CACI,gBAAiB,CACb,OAAO,SAAS,gBAAgB,WACxC,CACI,iBAAkB,CACd,OAAO,SAAS,gBAAgB,YACxC,CACI,iBAAkB,CACd,OAAO,SAAS,gBAAgB,YACxC,CACI,gBAAiB,CACb,OAAO,SAAS,gBAAgB,WACxC,CACA,CASA,MAAM4nH,WAAsBvd,EAAc,CACtC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,IAAM3Q,GAAM,CACzB,CAGI,aAAc,CAClB,CACI,SAASmuB,EAAcC,EAAaC,EAASC,EAAU,CACnD,OAAO,IACf,CAGI,iBAAiBvqH,EAAI,CACjB,MAAO,CAAC,KAAK,MAAM,WACf,CAAC,KAAK,MAAM,aACZ,CAACi6F,GAAej6F,EAAI,kBAAkB,CAClD,CACI,kBAAkBA,EAAI,CAClB,MAAO,CAACi6F,GAAej6F,EAAI,6BAA6B,GACpD,CAACi6F,GAAej6F,EAAI,eAAe,GACnC,CAACi6F,GAAej6F,EAAI,iBAAiB,GACrC,CAACi6F,GAAej6F,EAAI,aAAa,CAC7C,CACA,CAQA,MAAMwqH,EAAa,CACf,YAAYC,EAAqBC,GAEtBA,EAAM,WAAa,EAC3B,CACC,KAAK,kBAAoBD,EAEzB,KAAK,YAAc,GACnB,KAAK,eAAiB,GACtB,KAAK,SAAW,GAChB,KAAK,YAAc,GACnB,KAAK,YAAc,GACnB,KAAK,eAAiB,GACtB,KAAK,UAAY,EACzB,CACI,QAAQE,EAAQ,CACZ,IAAIC,EAAgB,CAAE,EACtB,QAASrhE,KAASohE,EACd,KAAK,YAAYphE,EAAOqhE,CAAa,EAEzC,OAAOA,CACf,CACI,YAAYF,EAAOE,EAAe,CAC9B,IAAIvmB,EAAY,KAAK,cAAcqmB,CAAK,EACpC,KAAK,iBAAiBrmB,EAAWqmB,CAAK,EACtC,KAAK,cAAcA,EAAOrmB,CAAS,EAGnC,KAAK,uBAAuBA,EAAWqmB,EAAOE,CAAa,CAEvE,CACI,iBAAiBvmB,EAAWqmB,EAAO,CAC/B,OAAQ,KAAK,WAAa,IAAMrmB,EAAU,WAAa,KAAK,kBAAkBqmB,CAAK,GAAK,KAAK,YACxF,KAAK,cAAgB,IAAMrmB,EAAU,SAAW,KAAK,YAClE,CACI,uBAAuBA,EAAWqmB,EAAOE,EAAe,CACpD,GAAI,KAAK,gBAAkBvmB,EAAU,cAAe,CAChD,MAAMwmB,EAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEH,CAAK,EAAG,CAAE,KAAMI,GAAeJ,EAAM,KAAMrmB,EAAU,cAAc,IAAI,EAAG,EAC9HumB,EAAc,KAAKC,CAAW,EAC9B,KAAK,WAAWH,EAAOrmB,EAAU,cAAeumB,CAAa,CACzE,MAEYA,EAAc,KAAKF,CAAK,CAEpC,CAII,WAAWA,EAAOK,EAASH,EAAe,CACtC,IAAII,EAAYN,EAAM,KAClBO,EAAcF,EAAQ,KACtBC,EAAU,MAAQC,EAAY,OAC9B,KAAK,YAAY,CACb,MAAOP,EAAM,MACb,UAAWA,EAAM,UACjB,KAAM,CAAE,MAAOM,EAAU,MAAO,IAAKC,EAAY,KAAO,CAC3D,EAAEL,CAAa,EAEhBI,EAAU,IAAMC,EAAY,KAC5B,KAAK,YAAY,CACb,MAAOP,EAAM,MACb,UAAWA,EAAM,UACjB,KAAM,CAAE,MAAOO,EAAY,IAAK,IAAKD,EAAU,GAAK,CACvD,EAAEJ,CAAa,CAE5B,CACI,cAAcF,EAAOrmB,EAAW,CAC5B,GAAI,CAAE,eAAA6mB,EAAgB,YAAAC,CAAW,EAAK,KAClC9mB,EAAU,UAAY,IAEtB+mB,GAASD,EAAa9mB,EAAU,MAAOA,EAAU,UAAU,EAC3D+mB,GAASF,EAAgB7mB,EAAU,MAAO,CAACqmB,CAAK,CAAC,GAIjDU,GAASF,EAAe7mB,EAAU,KAAK,EAAGA,EAAU,QAASqmB,CAAK,EAEtE,KAAK,UAAUW,GAAcX,CAAK,CAAC,EAAIrmB,EAAU,QACzD,CAII,cAAcinB,EAAU,CACpB,GAAI,CAAE,YAAAH,EAAa,eAAAD,EAAgB,YAAAK,EAAa,UAAAC,CAAW,EAAG,KAC1DC,EAAWN,EAAY,OACvBO,EAAiB,EACjBC,EAAgB,GAChBC,EAAkB,GAClBC,EAAgB,KAChBC,EAAW,EACf,QAASC,EAAgB,EAAGA,EAAgBN,EAAUM,GAAiB,EAAG,CACtE,MAAMC,EAAgBb,EAAYY,CAAa,EAG/C,GAAI,CAACR,GAAeS,GAAiBN,EAAiB,KAAK,kBAAkBJ,CAAQ,EACjF,MAEJ,IAAIW,EAAkBf,EAAea,CAAa,EAC9CG,EACAC,EAAYC,GAAaH,EAAiBX,EAAS,KAAK,MAAOe,EAAe,EAC9EC,EAAeH,EAAU,CAAC,EAAIA,EAAU,CAAC,EAC7C,MACCD,EAAgBD,EAAgBK,CAAY,IACzCJ,EAAc,KAAK,MAAQZ,EAAS,KAAK,KAC3C,CACE,IAAIiB,EAAsBP,EAAgB,KAAK,kBAAkBE,CAAa,EAE1EK,EAAsBb,IACtBA,EAAiBa,EACjBV,EAAgBK,EAChBP,EAAgBI,EAChBH,EAAkBU,GAGlBC,IAAwBb,IAExBI,EAAW,KAAK,IAAIA,EAAUN,EAAUH,GAAca,CAAa,CAAC,EAAI,CAAC,GAE7EI,GAAgB,CAChC,CACA,CAEQ,IAAIE,EAAY,EAChB,GAAIX,EAEA,IADAW,EAAYb,EAAgB,EACrBa,EAAYf,GAAYN,EAAYqB,CAAS,EAAId,GACpDc,GAAa,EAIrB,IAAIC,EAAc,GAClB,OAAID,EAAYf,GAAYN,EAAYqB,CAAS,IAAMd,IACnDe,EAAcL,GAAalB,EAAesB,CAAS,EAAGlB,EAAS,KAAK,IAAKe,EAAe,EAAE,CAAC,GAExF,CACH,cAAAV,EACA,gBAAAC,EACA,cAAAC,EACA,SAAAC,EACA,WAAYJ,EACZ,MAAOc,EACP,QAASC,CACZ,CACT,CAEI,SAAU,CACN,GAAI,CAAE,eAAAvB,EAAgB,YAAAC,CAAW,EAAK,KAClCM,EAAWP,EAAe,OAC1BwB,EAAQ,CAAE,EACd,QAASC,EAAQ,EAAGA,EAAQlB,EAAUkB,GAAS,EAAG,CAC9C,IAAIxoH,EAAU+mH,EAAeyB,CAAK,EAC9BC,EAAazB,EAAYwB,CAAK,EAClC,QAASjC,KAASvmH,EACduoH,EAAM,KAAK,OAAO,OAAO,OAAO,OAAO,GAAIhC,CAAK,EAAG,CAAE,UAAW,KAAK,kBAAkBA,CAAK,EAAG,WAAAkC,CAAU,CAAE,CAAC,CAE5H,CACQ,OAAOF,CACf,CACA,CACA,SAASL,GAAgB3B,EAAO,CAC5B,OAAOA,EAAM,KAAK,GACtB,CACA,SAASW,GAAcX,EAAO,CAC1B,OAAOA,EAAM,MAAQ,IAAMA,EAAM,KAAK,KAC1C,CAEA,SAASmC,IAAyB1oH,EAAS,CACvC,IAAI2oH,EAAS,CAAE,EACf,QAASpC,KAASvmH,EAAS,CACvB,IAAI4oH,EAAiB,CAAE,EACnBC,EAAc,CACd,KAAMtC,EAAM,KACZ,QAAS,CAACA,CAAK,CAClB,EACD,QAAS1tD,KAAS8vD,EACVhC,GAAe9tD,EAAM,KAAMgwD,EAAY,IAAI,EAC3CA,EAAc,CACV,QAAShwD,EAAM,QAAQ,OAAOgwD,EAAY,OAAO,EACjD,KAAMC,IAAUjwD,EAAM,KAAMgwD,EAAY,IAAI,CAC/C,EAGDD,EAAe,KAAK/vD,CAAK,EAGjC+vD,EAAe,KAAKC,CAAW,EAC/BF,EAASC,CACjB,CACI,OAAOD,CACX,CACA,SAASG,IAAUpM,EAAOC,EAAO,CAC7B,MAAO,CACH,MAAO,KAAK,IAAID,EAAM,MAAOC,EAAM,KAAK,EACxC,IAAK,KAAK,IAAID,EAAM,IAAKC,EAAM,GAAG,CACrC,CACL,CACA,SAASgK,GAAejK,EAAOC,EAAO,CAClC,IAAIhsG,EAAQ,KAAK,IAAI+rG,EAAM,MAAOC,EAAM,KAAK,EACzC/rG,EAAM,KAAK,IAAI8rG,EAAM,IAAKC,EAAM,GAAG,EACvC,OAAIhsG,EAAQC,EACD,CAAE,MAAAD,EAAO,IAAAC,CAAK,EAElB,IACX,CAGA,SAASq2G,GAASrrH,EAAKkL,EAAOpI,EAAM,CAChC9C,EAAI,OAAOkL,EAAO,EAAGpI,CAAI,CAC7B,CACA,SAASupH,GAAav2G,EAAGq3G,EAAWC,EAAY,CAC5C,IAAIvkB,EAAa,EACbC,EAAWhzF,EAAE,OACjB,GAAI,CAACgzF,GAAYqkB,EAAYC,EAAWt3G,EAAE+yF,CAAU,CAAC,EACjD,MAAO,CAAC,EAAG,CAAC,EAEhB,GAAIskB,EAAYC,EAAWt3G,EAAEgzF,EAAW,CAAC,CAAC,EACtC,MAAO,CAACA,EAAU,CAAC,EAEvB,KAAOD,EAAaC,GAAU,CAC1B,IAAIukB,EAAc,KAAK,MAAMxkB,GAAcC,EAAWD,GAAc,CAAC,EACjEykB,EAAYF,EAAWt3G,EAAEu3G,CAAW,CAAC,EACzC,GAAIF,EAAYG,EACZxkB,EAAWukB,UAENF,EAAYG,EACjBzkB,EAAawkB,EAAc,MAG3B,OAAO,CAACA,EAAa,CAAC,CAElC,CACI,MAAO,CAACxkB,EAAY,CAAC,CACzB,CAeA,MAAM0kB,GAAgB,CAClB,YAAYttH,EAAIg+B,EAAU,CACtB,KAAK,QAAU,IAAI27E,EAC3B,CACI,SAAU,CACd,CACI,mBAAmB4T,EAAM,CAE7B,CACI,qBAAqBA,EAAM,CAE/B,CACI,qBAAqBA,EAAM,CAE/B,CACA,CAIA,MAAM/sD,GAAS,CAAE,EAwBjB,SAASgtD,IAA4BC,EAAsBnd,EAAQ,CAG/D,MAAI,CAACmd,GAAwBnd,EAAS,GAC3B9J,GAAgB,CAAE,QAAS,OAAS,GAE3C8J,EAAS,EACF9J,GAAgB,CAAE,QAAS,QAAS,MAAO,UAAW,IAAK,UAAW,WAAY,EAAM,GAE5FA,GAAgB,CAAE,QAAS,MAAQ,EAC9C,CAEA,MAAMknB,GAAa,qBACnB,SAASC,GAAcvgB,EAAa,CAChC,OAAOA,EAAY,IACvB,CAGA,MAAMwgB,YAAsBhhB,EAAc,CACtC,QAAS,CACL,GAAI,CAAE,QAAAb,EAAS,QAAAr6F,EAAS,MAAAs6F,EAAO,QAAAJ,CAAO,EAAK,KAAK,QAC5C,CAAE,MAAAnoG,CAAK,EAAK,KACZ,CAAE,KAAAi7C,EAAM,YAAAy5D,CAAW,EAAK10G,EACxBoqH,EAAUxH,GAAY3nE,EAAMj7C,EAAM,WAAY,KAAM00G,CAAW,EAC/DrJ,EAAa,CAAC4e,EAAU,EAAE,OAAOpH,GAAiBuH,EAAS7hB,CAAK,CAAC,EACjE7wE,EAAO4wE,EAAQ,OAAOrtD,EAAMj7C,EAAM,eAAe,EAEjDqqH,EAAgB,CAACD,EAAQ,YAAcpqH,EAAM,OAAS,EACpDgjH,GAAkB,KAAK,QAAS/nE,CAAI,EACpC,CAAE,EACJ0uD,EAAc,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,KAAMrB,EAAQ,OAAOrtD,CAAI,EAAG,KAAMktD,GAAWnoG,EAAM,gBAAgB,EAAG,CAAE,KAAA03B,EAAM,EAAG0yF,CAAO,EACtJ,OAAQlgB,GAAcW,GAAkB,CAAE,MAAO,KAAM,UAAWQ,EAAY,QAAS,OAAO,OAAO,CAAE,KAAM,eAAgB,QAASrrG,EAAM,QAAS,YAAcoqH,EAAQ,WAAqC,OAAxBjsB,GAAgBljD,CAAI,CAAe,EAAEj7C,EAAM,cAAc,EAAG,YAAa2pG,EAAa,cAAe,mBAAoB,gBAAiB17F,EAAQ,iBAAkB,iBAAkBi8G,GAAe,mBAAoBj8G,EAAQ,oBAAqB,SAAUA,EAAQ,kBAAmB,YAAaA,EAAQ,oBAAoB,EAAKq8G,GAAoBpgB,GAAc,MAAO,CAAE,UAAW,0BAA0B,EAAI,CAACkgB,EAAQ,YAAelgB,GAAcogB,EAAgB,CAAE,MAAO,IAAK,QAASD,EAAc,UAAW,CACnrB,6BACArqH,EAAM,UAAY,WAClC,CAAe,EAAE,CAAE,CACnB,CACA,CAEA,MAAMuqH,IAAiBxnB,GAAgB,CAAE,QAAS,MAAM,CAAE,EAC1D,MAAMynB,YAAqBrhB,EAAc,CACrC,QAAS,CACL,GAAI,CAAE,MAAAnpG,CAAK,EAAK,KACZ,CAAE,QAAAsoG,EAAS,MAAAC,EAAO,QAAAJ,EAAS,QAAAl6F,CAAO,EAAK,KAAK,QAC5CgtC,EAAOC,GAAQ,IAAI,KAAK,MAAS,EAAGl7C,EAAM,GAAG,EAC7CyqH,EAAW,CACX,IAAKzqH,EAAM,IACX,WAAY,GACZ,SAAU,GACV,OAAQ,GACR,QAAS,GACT,QAAS,EACZ,EACG03B,EAAO4wE,EAAQ,OAAOrtD,EAAMj7C,EAAM,eAAe,EACjD2pG,EAAc,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CACtE,KAAA1uD,GAAQwvE,CAAQ,EAAG,CAAE,KAAMtiB,EAAS,EAAGnoG,EAAM,gBAAgB,EAAG,CAAE,KAAA03B,CAAI,CAAE,EAC5E,OAAQwyE,GAAcW,GAAkB,CAAE,MAAO,KAAM,UAAW,CAC1Dof,GACA,GAAGpH,GAAiB4H,EAAUliB,CAAK,EACnC,GAAIvoG,EAAM,iBAAmB,EAC7C,EAAe,QAAS,OAAO,OAAO,CAAE,KAAM,eAAgB,QAASA,EAAM,OAAS,EAAEA,EAAM,cAAc,EAAG,YAAa2pG,EAAa,cAAe,mBAAoB,gBAAiB17F,EAAQ,iBAAkB,iBAAkBi8G,GAAe,mBAAoBj8G,EAAQ,oBAAqB,SAAUA,EAAQ,kBAAmB,YAAaA,EAAQ,oBAAsB,EAAGy8G,GAAkBxgB,GAAc,MAAO,CAAE,UAAW,0BAA4B,EAChcA,GAAcwgB,EAAc,CAAE,MAAO,IAAK,UAAW,CAC7C,6BACA1qH,EAAM,UAAY,WACrB,EAAE,QAAS,CACR,aAAcsoG,EAAQ,OAAOrtD,EAAMsvE,GAAc,CACrE,CAAmB,EAAC,CAAE,CACtB,CACA,CAEA,MAAMI,WAAiB1rG,EAAU,CAC7B,YAAYjf,EAAOymB,EAAS,CACxB,MAAMzmB,EAAOymB,CAAO,EACpB,KAAK,eAAiBua,GAAOva,EAAQ,QAAQ,IAAKA,EAAQ,OAAO,EACjE,KAAK,oBAAsB,IAAI,KAAI,EAAG,QAAS,EAC/C,KAAK,MAAQ,KAAK,cAAe,EAAC,YAC1C,CACI,QAAS,CACL,GAAI,CAAE,MAAAzmB,EAAO,MAAA+X,CAAK,EAAK,KACvB,OAAO/X,EAAM,SAAS+X,EAAM,QAASA,EAAM,UAAU,CAC7D,CACI,mBAAoB,CAChB,KAAK,WAAY,CACzB,CACI,mBAAmB2X,EAAW,CACtBA,EAAU,OAAS,KAAK,MAAM,OAC9B,KAAK,aAAc,EACnB,KAAK,WAAY,EAE7B,CACI,sBAAuB,CACnB,KAAK,aAAc,CAC3B,CACI,eAAgB,CACZ,GAAI,CAAE,MAAA1vB,EAAO,QAAAymB,CAAO,EAAK,KACrBmkG,EAAe1uB,GAAM,KAAK,eAAgB,IAAI,KAAI,EAAG,QAAO,EAAK,KAAK,mBAAmB,EACzF2uB,EAAmBpkG,EAAQ,QAAQ,QAAQmkG,EAAc5qH,EAAM,IAAI,EACnE8qH,EAAgBrkG,EAAQ,QAAQ,IAAIokG,EAAkBzwB,GAAe,EAAGp6F,EAAM,IAAI,CAAC,EACnF+qH,EAASD,EAAc,QAAO,EAAKF,EAAa,QAAS,EAG7D,OAAAG,EAAS,KAAK,IAAI,IAAO,GAAK,GAAK,GAAIA,CAAM,EACtC,CACH,aAAc,CAAE,QAASF,EAAkB,WAAYG,GAAcH,CAAgB,CAAG,EACxF,UAAW,CAAE,QAASC,EAAe,WAAYE,GAAcF,CAAa,CAAG,EAC/E,OAAAC,CACH,CACT,CACI,YAAa,CACT,GAAI,CAAE,UAAAhiB,EAAW,OAAAgiB,GAAW,KAAK,cAAe,EAChD,KAAK,UAAY,WAAW,IAAM,CAC9B,KAAK,SAAShiB,EAAW,IAAM,CAC3B,KAAK,WAAY,CACjC,CAAa,CACJ,EAAEgiB,CAAM,CACjB,CACI,cAAe,CACP,KAAK,WACL,aAAa,KAAK,SAAS,CAEvC,CACA,CACAJ,GAAS,YAAc3iB,GACvB,SAASgjB,GAAc/vE,EAAM,CACzB,IAAI5pC,EAAQ0rC,GAAW9B,CAAI,EACvB3pC,EAAM4pC,GAAQ7pC,EAAO,CAAC,EAC1B,MAAO,CAAE,MAAAA,EAAO,IAAAC,CAAK,CACzB,CAEA,MAAM25G,WAAkB9hB,EAAc,CAClC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,yBAA2B1K,GAAQysB,GAAwB,CACxE,CACI,QAAS,CACL,GAAI,CAAE,QAAAzkG,CAAO,EAAK,KACd,CAAE,MAAA0kG,EAAO,YAAAzW,EAAa,qBAAAsV,EAAsB,YAAAoB,CAAW,EAAK,KAAK,MACjEC,EAAkB,KAAK,yBAAyB5kG,EAAQ,QAAQ,gBAAiBujG,EAAsBmB,EAAM,MAAM,EACvH,OAAQjhB,GAAcygB,GAAU,CAAE,KAAM,KAAK,EAAI,CAACnO,EAASD,IAAgBrS,GAAc,KAAM,CAAE,KAAM,KAAO,EAC1GkhB,GAAeA,EAAY,KAAK,EAChCD,EAAM,IAAKlwE,GAAU+uE,EAAwB9f,GAAcigB,IAAe,CAAE,IAAKlvE,EAAK,cAAe,KAAMA,EAAM,YAAay5D,EAAa,WAAY6H,EAAY,OAAQ4O,EAAM,OAAQ,gBAAiBE,CAAe,CAAE,EAAMnhB,GAAcsgB,IAAc,CAAE,IAAKvvE,EAAK,UAAS,EAAI,IAAKA,EAAK,UAAS,EAAI,gBAAiBowE,CAAe,CAAE,CAAG,CAAC,CAAE,CACjW,CACA,CACA,SAASH,IAAyBI,EAAgBtB,EAAsBuB,EAAS,CAC7E,OAAOD,GAAkBvB,IAA4BC,EAAsBuB,CAAO,CACtF,CAEA,MAAMC,EAAe,CACjB,YAAY/e,EAAOpE,EAAsB,CACrC,IAAIptD,EAAOwxD,EAAM,MACb,CAAE,IAAAn7F,CAAG,EAAKm7F,EACVgf,EAAU,CAAE,EACZN,EAAQ,CAAE,EACV9/D,EAAW,GACf,KAAOpQ,EAAO3pC,GACN+2F,EAAqB,YAAYptD,CAAI,EACrCwwE,EAAQ,KAAKpgE,EAAW,EAAG,GAG3BA,GAAY,EACZogE,EAAQ,KAAKpgE,CAAQ,EACrB8/D,EAAM,KAAKlwE,CAAI,GAEnBA,EAAOC,GAAQD,EAAM,CAAC,EAE1B,KAAK,MAAQkwE,EACb,KAAK,QAAUM,EACf,KAAK,IAAMN,EAAM,MACzB,CACI,WAAW1e,EAAO,CACd,IAAIif,EAAa,KAAK,gBAAgBjf,EAAM,KAAK,EAC7CpyC,EAAY,KAAK,gBAAgBnf,GAAQuxD,EAAM,IAAK,EAAE,CAAC,EACvDkf,EAAoB,KAAK,IAAI,EAAGD,CAAU,EAC1CE,EAAmB,KAAK,IAAI,KAAK,IAAM,EAAGvxD,CAAS,EAIvD,OAFAsxD,EAAoB,KAAK,KAAKA,CAAiB,EAC/CC,EAAmB,KAAK,MAAMA,CAAgB,EAC1CD,GAAqBC,EACd,CACH,WAAYD,EACZ,UAAWC,EACX,QAASF,IAAeC,EACxB,MAAOtxD,IAAcuxD,CACxB,EAEE,IACf,CAMI,gBAAgB3wE,EAAM,CAClB,GAAI,CAAE,QAAAwwE,CAAO,EAAK,KACdI,EAAY,KAAK,MAAMvvB,GAAS,KAAK,MAAM,CAAC,EAAGrhD,CAAI,CAAC,EACxD,OAAI4wE,EAAY,EACLJ,EAAQ,CAAC,EAAI,EAEpBI,GAAaJ,EAAQ,OACdA,EAAQA,EAAQ,OAAS,CAAC,EAAI,EAElCA,EAAQI,CAAS,CAChC,CACA,CAEA,MAAMC,EAAc,CAChB,YAAYC,EAAWC,EAAc,CACjC,GAAI,CAAE,MAAAb,CAAK,EAAKY,EACZE,EACAC,EACAC,EACJ,GAAIH,EAAc,CAGd,IADAE,EAAWf,EAAM,CAAC,EAAE,UAAW,EAC1Bc,EAAa,EAAGA,EAAad,EAAM,QAChCA,EAAMc,CAAU,EAAE,UAAS,IAAOC,EADMD,GAAc,EAC1D,CAIJE,EAAS,KAAK,KAAKhB,EAAM,OAASc,CAAU,CACxD,MAEYE,EAAS,EACTF,EAAad,EAAM,OAEvB,KAAK,OAASgB,EACd,KAAK,OAASF,EACd,KAAK,UAAYF,EACjB,KAAK,MAAQ,KAAK,WAAY,EAC9B,KAAK,YAAc,KAAK,iBAAkB,CAClD,CACI,YAAa,CACT,IAAIK,EAAO,CAAE,EACb,QAASC,EAAM,EAAGA,EAAM,KAAK,OAAQA,GAAO,EAAG,CAC3C,IAAIC,EAAQ,CAAE,EACd,QAASC,EAAM,EAAGA,EAAM,KAAK,OAAQA,GAAO,EACxCD,EAAM,KAAK,KAAK,UAAUD,EAAKE,CAAG,CAAC,EAEvCH,EAAK,KAAKE,CAAK,CAC3B,CACQ,OAAOF,CACf,CACI,UAAUC,EAAKE,EAAK,CAChB,IAAItxE,EAAO,KAAK,UAAU,MAAMoxE,EAAM,KAAK,OAASE,CAAG,EACvD,MAAO,CACH,IAAKtxE,EAAK,YAAa,EACvB,KAAAA,CACH,CACT,CACI,kBAAmB,CACf,IAAIkwE,EAAQ,CAAE,EACd,QAASoB,EAAM,EAAGA,EAAM,KAAK,OAAQA,GAAO,EACxCpB,EAAM,KAAK,KAAK,MAAM,CAAC,EAAEoB,CAAG,EAAE,IAAI,EAEtC,OAAOpB,CACf,CACI,WAAW1e,EAAO,CACd,GAAI,CAAE,OAAA+f,CAAM,EAAK,KACbC,EAAY,KAAK,UAAU,WAAWhgB,CAAK,EAC3CqO,EAAO,CAAE,EACb,GAAI2R,EAAW,CACX,GAAI,CAAE,WAAAf,EAAY,UAAArxD,CAAS,EAAKoyD,EAC5BjlH,EAAQkkH,EACZ,KAAOlkH,GAAS6yD,GAAW,CACvB,IAAIgyD,EAAM,KAAK,MAAM7kH,EAAQglH,CAAM,EAC/Bn7F,EAAY,KAAK,KAAKg7F,EAAM,GAAKG,EAAQnyD,EAAY,CAAC,EAC1DygD,EAAK,KAAK,CACN,IAAAuR,EACA,SAAU7kH,EAAQglH,EAClB,SAAUn7F,EAAY,GAAKm7F,EAC3B,QAASC,EAAU,SAAWjlH,IAAUkkH,EACxC,MAAOe,EAAU,OAAUp7F,EAAY,IAAOgpC,CAClE,CAAiB,EACD7yD,EAAQ6pB,CACxB,CACA,CACQ,OAAOypF,CACf,CACA,CAEA,MAAM4R,EAAO,CACT,aAAc,CACV,KAAK,mBAAqBjuB,GAAQ,KAAK,mBAAmB,EAC1D,KAAK,mBAAqBA,GAAQ,KAAK,cAAc,EACrD,KAAK,gBAAkBA,GAAQ,KAAK,gBAAgB,EACpD,KAAK,eAAiBA,GAAQ,KAAK,iBAAiB,EACpD,KAAK,iBAAmBA,GAAQ,KAAK,iBAAiB,EACtD,KAAK,mBAAqB,EAClC,CACI,WAAWz+F,EAAO00G,EAAa3H,EAAkBtmF,KAAYkmG,EAAW,CACpE,GAAI,CAAE,aAAAhT,CAAY,EAAK35G,EACnB4sH,EAAY,KAAK,gBAAgB5sH,EAAM,WAAY25G,EAAcjF,EAAa3H,EAAkB,GAAG4f,CAAS,EAChH,MAAO,CACH,kBAAmB,KAAK,mBAAmB3sH,EAAM,cAAe00G,EAAa3H,EAAkB4M,EAAclzF,EAAS,GAAGkmG,CAAS,EAClI,iBAAkB,KAAK,mBAAmB3sH,EAAM,cAAe00G,EAAa3H,EAAkBtmF,EAAS,GAAGkmG,CAAS,EACnH,YAAaC,EAAU,GACvB,YAAaA,EAAU,GACvB,UAAW,KAAK,eAAe5sH,EAAM,UAAW25G,EAAcjF,EAAa3H,EAAkB,GAAG4f,CAAS,EACzG,YAAa,KAAK,iBAAiB3sH,EAAM,YAAa25G,EAAcjF,EAAa3H,EAAkB,GAAG4f,CAAS,EAC/G,eAAgB3sH,EAAM,cAClC,CACA,CACI,aACAi7C,EAAMy5D,EAAa3H,EAAkBtmF,KAAYkmG,EAAW,CACxD,OAAO,KAAK,eAAe,CAAE,MAAO,CAAE,MAAO1xE,EAAM,IAAKihD,GAAMjhD,EAAM,CAAC,CAAC,EAAI,OAAQ,EAAO,EACzFy5D,EAAa3H,EAAkB,GAAItmF,EAAS,GAAGkmG,CAAS,CAChE,CACI,oBAAoBE,EAAenY,EAAa3H,EAAkBtmF,KAAYkmG,EAAW,CACrF,OAAKE,EAGE,KAAK,iBAAiB7c,GAAgB6c,EAAeC,GAAmBpY,EAAa,EAAQ3H,CAAiB,EAAGtmF,CAAO,EAAG,GAAIiuF,EAAa3H,EAAkB,GAAG4f,CAAS,EAAE,GAFxK,CAAE,CAGrB,CACI,iBAAiB1c,EAAY0J,EAAcjF,EAAa3H,KAAqB4f,EAAW,CACpF,GAAI1c,EAAY,CACZ,IAAI8c,EAAWrT,GAAgBzJ,EAAY0J,EAAcmT,GAAmBpY,EAAa,EAAQ3H,CAAiB,EAAGA,CAAgB,EACrI,MAAO,CACH,GAAI,KAAK,iBAAiBggB,EAAS,GAAIJ,CAAS,EAChD,GAAI,KAAK,iBAAiBI,EAAS,GAAIJ,CAAS,CACnD,CACb,CACQ,MAAO,CAAE,GAAI,GAAI,GAAI,EAAI,CACjC,CACI,kBAAkBzK,EAAavI,EAAcjF,EAAa3H,KAAqB4f,EAAW,CACtF,GAAI,CAACzK,EACD,OAAO,KAEX,IAAI6K,EAAWrT,GAAgBwI,EAAY,cAAevI,EAAcmT,GAAmBpY,EAAa,EAAQ3H,CAAiB,EAAGA,CAAgB,EACpJ,MAAO,CACH,KAAM,KAAK,iBAAiBggB,EAAS,GAAIJ,CAAS,EAClD,kBAAmBzK,EAAY,eAAe,UAC9C,QAASA,EAAY,OACxB,CACT,CACI,eAAehL,EAAUxC,EAAa3H,EAAkB4M,EAAclzF,KAAYkmG,EAAW,CACzF,GAAI,CAACzV,EACD,MAAO,CAAE,EAEb,IAAI5I,EAAcwe,GAAmBpY,EAAa,EAAQ3H,CAAiB,EACvEigB,EAAsB/gB,GAAgBiL,EAAS,MAAO5I,CAAW,EACrE,GAAI0e,EAAqB,CACrB9V,EAAW,OAAO,OAAO,OAAO,OAAO,GAAIA,CAAQ,EAAG,CAAE,MAAO8V,EAAqB,EACpF,IAAI9R,EAAawC,IAAoBxG,EAAUyC,EAAclzF,CAAO,EAChEq0F,EAAO,KAAK,WAAW5D,EAAS,MAAO,GAAGyV,CAAS,EACvD,QAASlS,KAAOK,EACZL,EAAI,WAAaS,EAErB,OAAOJ,CACnB,CACQ,MAAO,CAAE,CACjB,CAII,iBAAiBmS,EAAaN,EAAW,CACrC,IAAI7R,EAAO,CAAE,EACb,QAASI,KAAc+R,EACnBnS,EAAK,KAAK,GAAG,KAAK,gBAAgBI,EAAYyR,CAAS,CAAC,EAE5D,OAAO7R,CACf,CAII,gBAAgBI,EAAYyR,EAAW,CACnC,IAAI9gB,EAAYqP,EAAW,MAEvB,KAAK,oBAAsBA,EAAW,GAAG,UAAY,cACrDrP,EAAY,CACR,MAAOA,EAAU,MACjB,IAAK3wD,GAAQ2wD,EAAU,MAAO,CAAC,CAClC,GAEL,IAAIiP,EAAO,KAAK,WAAWjP,EAAW,GAAG8gB,CAAS,EAClD,QAASlS,KAAOK,EACZL,EAAI,WAAaS,EACjBT,EAAI,QAAUS,EAAW,SAAWT,EAAI,QACxCA,EAAI,MAAQS,EAAW,OAAST,EAAI,MAExC,OAAOK,CACf,CACA,CAMA,SAASgS,GAAmBpY,EAAawY,EAAmB,CACxD,IAAIzgB,EAAQiI,EAAY,YACxB,OAAIwY,EACOzgB,EAEJ,CACH,MAAOvQ,GAAMuQ,EAAM,MAAOiI,EAAY,YAAY,YAAY,EAC9D,IAAKxY,GAAMuQ,EAAM,IAAKiI,EAAY,YAAY,aAAe,KAAK,CACrE,CACL,CAIA,SAASyY,GAAmBjL,EAAaxN,EAAajuF,EAAS,CAC3D,GAAI,CAAE,UAAA2pF,GAAc8R,EAAY,cAChC,QAASxP,KAActC,EACnB,GAAI,CAAC/D,GAAmBqI,EAAY,WAAYtE,EAAUsC,CAAU,EAAE,KAAK,EACvE,MAAO,GAGf,OAAO0a,GAAgB,CAAE,UAAWlL,CAAa,EAAEz7F,CAAO,CAC9D,CACA,SAAS4mG,IAAqBC,EAAe5Y,EAAajuF,EAAS,CAC/D,OAAK4lF,GAAmBqI,EAAY,WAAY4Y,EAAc,KAAK,EAG5DF,GAAgB,CAAE,cAAAE,CAAe,EAAE7mG,CAAO,EAFtC,EAGf,CACA,SAAS2mG,GAAgBhgG,EAAU3G,EAAS,CACxC,IAAI8mG,EAAgB9mG,EAAQ,eAAgB,EACxCzmB,EAAQ,OAAO,OAAO,CAAE,cAAeutH,EAAc,cAAe,cAAe,GAAI,WAAYA,EAAc,WAAY,aAAcA,EAAc,aAAc,eAAgB,GAAI,UAAW,KAAM,YAAa,IAAM,EAAEngG,CAAQ,EAC7O,OAAQ3G,EAAQ,YAAY,cAAgB+mG,KAAcxtH,EAAOymB,CAAO,CAC5E,CACA,SAAS+mG,IAAaz1G,EAAO0O,EAASgnG,EAAe,GAAIC,EAAc,CAInE,MAHI,EAAA31G,EAAM,WAAa,CAAC41G,IAAwB51G,EAAO0O,EAASgnG,EAAcC,CAAY,GAGtF31G,EAAM,eAAiB,CAAC61G,IAA0B71G,EAAO0O,EAASgnG,EAAcC,CAAY,EAIpG,CAGA,SAASC,IAAwB51G,EAAO0O,EAASgnG,EAAcC,EAAc,CACzE,IAAItiF,EAAe3kB,EAAQ,eAAgB,EACvCy7F,EAAcnqG,EAAM,UACpB81G,EAAoB3L,EAAY,cAChC4L,EAAcD,EAAkB,KAChCE,EAAmBF,EAAkB,UACrCG,EAAiBtW,GAAgBoW,EAAa5L,EAAY,QAC1DnqG,EAAM,aACN,CAAE,GAAIqzB,EAAa,gBAAiB,EACpCsiF,IACAM,EAAiB3pB,GAAQ2pB,EAAgBN,CAAY,GAGzD,IAAIO,EAAkBlY,IAAiBh+F,EAAM,WAAYmqG,EAAY,eAAe,SAAS,EACzFgM,EAAYD,EAAgB,KAC5BE,EAAiBF,EAAgB,UACjCG,EAAe1W,GAAgBwW,EAAWn2G,EAAM,YAAY,EAChE,QAASs2G,KAAqBN,EAAkB,CAC5C,IAAIO,EAAkBP,EAAiBM,CAAiB,EACpDE,EAAeD,EAAgB,MAC/BE,EAAgBR,EAAeM,EAAgB,KAAK,EACpDG,EAAaX,EAAYQ,EAAgB,KAAK,EAElD,GAAI,CAACI,GAAmBF,EAAc,YAAaD,EAAcN,EAAiBl2G,EAAM,cAAe0O,CAAO,EAC1G,MAAO,GAGX,GAAI,CAAE,aAAAkoG,GAAiBloG,EAAQ,QAC3BmoG,EAAmB,OAAOD,GAAiB,WAAaA,EAAe,KAC3E,QAASE,KAAmBV,EAAgB,CACxC,IAAIW,EAAgBX,EAAeU,CAAe,EAElD,GAAIziB,GAAgBmiB,EAAcO,EAAc,KAAK,IAC9BV,EAAaU,EAAc,KAAK,EAAE,UAEhC,IAAS5M,EAAY,SAGtCsM,EAAc,UAAY,IAG1BI,GAAoB,CAACA,EAAiB,IAAItW,GAAU7xF,EAASynG,EAAUY,EAAc,KAAK,EAAGA,CAAa,EAC9G,IAAIxW,GAAU7xF,EAASgoG,EAAYH,CAAe,CAAC,GAC/C,MAAO,EAG3B,CAEQ,IAAIS,EAAqB3jF,EAAa,WACtC,QAAS4jF,KAAgBR,EAAc,OAAQ,CAC3C,IAAIS,EAAkB,OAAO,OAAO,OAAO,OAAO,GAAIxB,CAAY,EAAG,CAAE,MAAOa,EAAgB,MAAO,OAAQG,EAAW,OAAQ,EAC5HS,EAAUH,EAAmB,KAAKN,EAAW,KAAK,EAClDU,EAAeJ,EAAmB,UAAUV,CAAiB,EAC7D/U,EAOJ,GANI4V,EACA5V,EAAW,IAAIhB,GAAU7xF,EAASyoG,EAASC,CAAY,EAGvD7V,EAAW,IAAIhB,GAAU7xF,EAASgoG,CAAU,EAE5C,CAACO,EAAahY,GAA4BiY,EAAiBxoG,CAAO,EAAG6yF,CAAQ,EAC7E,MAAO,EAEvB,CACA,CACI,MAAO,EACX,CAGA,SAASsU,IAA0B71G,EAAO0O,EAASgnG,EAAcC,EAAc,CAC3E,IAAI0B,EAAqBr3G,EAAM,WAC3Bs3G,EAAeD,EAAmB,KAClCE,EAAoBF,EAAmB,UACvCtY,EAAY/+F,EAAM,cAClBw3G,EAAiBzY,EAAU,MAC3B,CAAE,gBAAA0Y,CAAe,EAAK/oG,EAAQ,eAAgB,EAKlD,GAJIinG,IACA8B,EAAkB9B,EAAa8B,CAAe,GAG9C,CAACd,GAAmBc,EAAgB,YAAaD,EAAgBH,EAAoBr3G,EAAM,cAAe0O,CAAO,EACjH,MAAO,GAGX,GAAI,CAAE,cAAAgpG,GAAkBhpG,EAAQ,QAC5BipG,EAAoB,OAAOD,GAAkB,WAAaA,EAAgB,KAC9E,QAASE,KAAsBL,EAAmB,CAC9C,IAAIM,EAAmBN,EAAkBK,CAAkB,EAE3D,GAAIvjB,GAAgBmjB,EAAgBK,EAAiB,KAAK,IAClDJ,EAAgB,UAAY,IAG5BE,GAAqB,CAACA,EAAkB,IAAIpX,GAAU7xF,EAAS4oG,EAAaO,EAAiB,KAAK,EAAGA,CAAgB,EAAG,IAAI,GAC5H,MAAO,EAGvB,CAEI,QAASC,KAAkBL,EAAgB,OAAQ,CAC/C,IAAIM,EAAe,OAAO,OAAO,OAAO,OAAO,CAAE,EAAErC,CAAY,EAAG3W,CAAS,EAC3E,GAAI,CAAC+Y,EAAe7Y,GAA4B8Y,EAAcrpG,CAAO,EAAG,IAAI,EACxE,MAAO,EAEnB,CACI,MAAO,EACX,CAGA,SAASioG,GAAmBqB,EAAaxB,EAAcN,EAAiB+B,EAAyBvpG,EAAS,CACtG,QAASmtF,KAAcmc,EACnB,GAAI,CAACE,IAAsBC,IAAmBtc,EAAY2a,EAAcN,EAAiB+B,EAAyBvpG,CAAO,EAAG8nG,CAAY,EACpI,MAAO,GAGf,MAAO,EACX,CACA,SAAS2B,IAAmBtc,EAAY2a,EACxCN,EACA+B,EACAvpG,EAAS,CACL,OAAImtF,IAAe,gBACRuc,GAAmBngB,GAAgBggB,EAAyBzB,EAAc9nG,CAAO,CAAC,EAEzF,OAAOmtF,GAAe,SACfuc,GAAmBvd,GAAqBqb,EAAkB1d,GAAaA,EAAS,UAAYqD,CAAU,CAAC,EAE9G,OAAOA,GAAe,UAAYA,EAC3Buc,GAAmBngB,GAAgB4D,EAAY2a,EAAc9nG,CAAO,CAAC,EAEzE,EACX,CAEA,SAAS0pG,GAAmBlgB,EAAY,CACpC,GAAI,CAAE,UAAAG,CAAS,EAAKH,EAChBvE,EAAS,CAAE,EACf,QAASgH,KAActC,EACnB1E,EAAO,KAAK0E,EAAUsC,CAAU,EAAE,KAAK,EAE3C,OAAOhH,CACX,CAEA,SAASukB,IAAsBG,EAAa7jB,EAAY,CACpD,QAASD,KAAc8jB,EACnB,GAAI/jB,GAAmBC,EAAYC,CAAU,EACzC,MAAO,GAGf,MAAO,EACX,CAEA,MAAM8jB,GAAoB,qBAC1B,MAAMC,YAAiBnnB,EAAc,CACjC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,SAAY5sG,GAAO,CACpB,KAAK,GAAKA,EACVyf,GAAO,KAAK,MAAM,MAAOzf,CAAE,CAC9B,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAAyD,CAAK,EAAK,KACZ,CAAE,OAAAuwH,EAAQ,iBAAAC,CAAgB,EAAKxwH,EAC/BywH,EAAaF,GAAUC,EACvBlqB,EAAY,CAAC,aAAa,EAC9B,OAAIiqB,IACIC,EACAlqB,EAAU,KAAK,6BAA6B,EAG5CA,EAAU,KAAK,oBAAoB,GAGnC4D,GAAc,MAAO,CAAE,IAAK,KAAK,SAAU,UAAW5D,EAAU,KAAK,GAAG,EAAG,MAAO,CAClF,UAAWtmG,EAAM,UACjB,UAAWA,EAAM,UACjB,KAAOywH,GAAc,EAAEzwH,EAAM,cAAgB,IAAO,GACpD,MAAQywH,GAAc,EAAEzwH,EAAM,eAAiB,IAAO,GACtD,OAASywH,GAAc,EAAEzwH,EAAM,gBAAkB,IAAO,GACxD,WAAa,CAACywH,GAAc,EAAEzwH,EAAM,cAAgB,IAAO,GAC3D,YAAc,CAACywH,GAAc,EAAEzwH,EAAM,eAAiB,IAAO,GAC7D,aAAe,CAACywH,GAAc,EAAEzwH,EAAM,gBAAkB,IAAO,GAC/D,UAAWA,EAAM,WAAa,EAC9C,CAAe,EAAEA,EAAM,QAAQ,CAC/B,CACI,iBAAkB,CACd,GAAIqwH,GAAkB,KAAK,KAAK,MAAM,SAAS,EAC3C,MAAO,GAKX,GAAI,CAAE,GAAA9zH,CAAE,EAAK,KACTm0H,EAAkB,KAAK,GAAG,sBAAqB,EAAG,MAAQ,KAAK,mBAAoB,EACnF,CAAE,SAAAl7G,CAAQ,EAAKjZ,EACnB,QAAS,EAAI,EAAG,EAAIiZ,EAAS,OAAQ,GAAK,EAEtC,GADcA,EAAS,CAAC,EACZ,wBAAwB,MAAQk7G,EACxC,MAAO,GAGf,MAAO,EACf,CACI,iBAAkB,CACd,GAAIL,GAAkB,KAAK,KAAK,MAAM,SAAS,EAC3C,MAAO,GAKX,GAAI,CAAE,GAAA9zH,CAAE,EAAK,KACTo0H,EAAmB,KAAK,GAAG,sBAAqB,EAAG,OAAS,KAAK,mBAAoB,EACrF,CAAE,SAAAn7G,CAAQ,EAAKjZ,EACnB,QAAS,EAAI,EAAG,EAAIiZ,EAAS,OAAQ,GAAK,EAEtC,GADcA,EAAS,CAAC,EACZ,wBAAwB,OAASm7G,EACzC,MAAO,GAGf,MAAO,EACf,CACI,oBAAqB,CACjB,OAAIN,GAAkB,KAAK,KAAK,MAAM,SAAS,EACpC,EAEJ,KAAK,GAAG,aAAe,KAAK,GAAG,YAC9C,CACI,oBAAqB,CACjB,OAAIA,GAAkB,KAAK,KAAK,MAAM,SAAS,EACpC,EAEJ,KAAK,GAAG,YAAc,KAAK,GAAG,WAC7C,CACA,CAMA,MAAMO,EAAO,CACT,YAAYC,EAAgB,CACxB,KAAK,eAAiBA,EACtB,KAAK,WAAa,CAAE,EACpB,KAAK,OAAS,CAAE,EAChB,KAAK,YAAc,CAAE,EACrB,KAAK,YAAc,CAACh1H,EAAKD,IAAQ,CAC7B,GAAI,CAAE,OAAAk1H,EAAQ,WAAAC,CAAU,EAAK,KACzBt1C,EAAU,GACVu1C,EAAQ,GACRn1H,IAAQ,MAER4/E,EAAW7/E,KAAOm1H,EAClBA,EAAWn1H,CAAG,EAAIC,EAClBi1H,EAAOl1H,CAAG,GAAKk1H,EAAOl1H,CAAG,GAAK,GAAK,EACnCo1H,EAAQ,KAGRF,EAAOl1H,CAAG,GAAK,EACVk1H,EAAOl1H,CAAG,IACX,OAAOm1H,EAAWn1H,CAAG,EACrB,OAAO,KAAK,YAAYA,CAAG,EAC3B6/E,EAAU,KAGd,KAAK,iBACDA,GACA,KAAK,eAAe,KAAM,OAAO7/E,CAAG,CAAC,EAErCo1H,GACA,KAAK,eAAen1H,EAAK,OAAOD,CAAG,CAAC,EAG/C,CACT,CACI,UAAUA,EAAK,CACX,IAAIq1H,EAAc,KAAK,YAAYr1H,CAAG,EACtC,OAAKq1H,IACDA,EAAc,KAAK,YAAYr1H,CAAG,EAAKC,GAAQ,CAC3C,KAAK,YAAYA,EAAK,OAAOD,CAAG,CAAC,CACpC,GAEEq1H,CACf,CAII,QAAQ9rB,EAAYC,EAAUC,EAAM,CAChC,OAAOH,IAAgB,KAAK,WAAYC,EAAYC,EAAUC,CAAI,CAC1E,CACI,QAAS,CACL,OAAOb,GAAkB,KAAK,UAAU,CAChD,CACA,CAEA,SAAS0sB,IAAmBC,EAAU,CAClC,IAAIC,EAAc16B,IAAay6B,EAAU,uBAAuB,EAC5DE,EAAe,EACnB,QAASC,KAAcF,EACnBC,EAAe,KAAK,IAAIA,EAAcv3B,IAAyBw3B,CAAU,CAAC,EAE9E,OAAO,KAAK,KAAKD,CAAY,CACjC,CACA,SAASE,GAA0BvxH,EAAOwxH,EAAe,CACrD,OAAOxxH,EAAM,QAAUwxH,EAAc,MACzC,CACA,SAASC,IAAmBzxH,EAAOwxH,EAAe,CAC9C,OAAOA,EAAc,WAAa,MAC9BD,GAA0BvxH,EAAOwxH,CAAa,CACtD,CAEA,SAASE,IAAmBF,EAAeG,EAAalzH,EAAKmzH,EAAU,CACnE,GAAI,CAAE,WAAAC,CAAU,EAAKpzH,EAmBrB,OAlBc,OAAOkzH,EAAY,SAAY,WACzCA,EAAY,QAAQlzH,CAAG,EACvByrG,GAAc,QAAS,CACnB,KAAM,eACN,UAAW,CACPynB,EAAY,eACZH,EAAc,eAAiB,2BAA6B,EAC5E,EAAc,KAAK,GAAG,EACV,MAAO,CACH,SAAU/yH,EAAI,cACd,MAAOA,EAAI,YACX,OAAQozH,EAAapzH,EAAI,aAAe,EAC3C,CACb,EAAWA,EAAI,kBAAmByrG,GAAc0nB,EAAW,QAAU,QAAS,CAClE,KAAM,cAClB,EAAW,OAAOD,EAAY,YAAe,WAC/BA,EAAY,WAAWlzH,CAAG,EAC1BkzH,EAAY,UAAU,CAAC,CAErC,CACA,SAASG,IAAgBC,EAAOC,EAAO,CACnC,OAAOt2B,GAAcq2B,EAAOC,EAAO7yB,EAAY,CACnD,CACA,SAAS8yB,IAAoBC,EAAMC,EAAa,CAC5C,IAAIC,EAAW,CAAE,EAMjB,QAASC,KAAYH,EAAM,CACvB,IAAIjV,EAAOoV,EAAS,MAAQ,EAC5B,QAAS71H,EAAI,EAAGA,EAAIygH,EAAMzgH,GAAK,EAC3B41H,EAAS,KAAKloB,GAAc,MAAO,CAAE,MAAO,CACpC,MAAOmoB,EAAS,QAAU,SAAWC,IAAoBH,CAAW,EAAKE,EAAS,OAAS,GAC3F,SAAUA,EAAS,UAAY,EAClC,EAAE,CAAC,CAEpB,CACI,OAAOnoB,GAAc,WAAY,CAAE,EAAE,GAAGkoB,CAAQ,CACpD,CACA,SAASE,IAAoBH,EAAa,CAGtC,OAAOA,GAAsB,CACjC,CACA,SAASI,IAAeL,EAAM,CAC1B,QAAS3F,KAAO2F,EACZ,GAAI3F,EAAI,QAAU,SACd,MAAO,GAGf,MAAO,EACX,CACA,SAASiG,IAAwBjC,EAAQ9pG,EAAS,CAC9C,IAAI4kF,EAAa,CACb,gBACA5kF,EAAQ,MAAM,SAAS,OAAO,CACjC,EACD,OAAI8pG,GACAllB,EAAW,KAAK,sBAAsB,EAEnCA,CACX,CACA,SAASonB,IAAqBjB,EAAekB,EAAiB,CAC1D,IAAIrnB,EAAa,CACb,wBACA,yBAAyBmmB,EAAc,IAAI,GAC3CA,EAAc,SACjB,EACD,OAAIkB,GAAmBlB,EAAc,QAAUA,EAAc,WAAa,MACtEnmB,EAAW,KAAK,8BAA8B,EAE9CmmB,EAAc,UACdnmB,EAAW,KAAK,8BAA8B,EAE3CA,CACX,CACA,SAASsnB,GAAiBl0H,EAAK,CAC3B,OAAQyrG,GAAc,MAAO,CAAE,UAAW,4BAA6B,MAAO,CACtE,MAAOzrG,EAAI,YACX,SAAUA,EAAI,aAC1B,EAAW,CACX,CACA,SAASm0H,GAAqB3kH,EAAS,CACnC,GAAI,CAAE,kBAAA4kH,CAAiB,EAAK5kH,EAC5B,OAAI4kH,GAAqB,MAAQA,IAAsB,UACnDA,EAAoB5kH,EAAQ,SAAW,QAAUA,EAAQ,aAAe,QAErE4kH,CACX,CACA,SAASC,GAAyB7kH,EAAS,CACvC,GAAI,CAAE,sBAAA8kH,CAAqB,EAAK9kH,EAChC,OAAI8kH,GAAyB,MAAQA,IAA0B,UAC3DA,EAAwB9kH,EAAQ,SAAW,QAAUA,EAAQ,aAAe,QAEzE8kH,CACX,CAEA,MAAMC,WAAyB7pB,EAAc,CACzC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,YAAc1K,GAASrsF,GAAMA,EAAG0/G,GAAe,EAEpD,KAAK,oBAAsBrzB,GAAQwzB,GAAmB,EACtD,KAAK,aAAe,IAAIrB,GACxB,KAAK,eAAiB,IAAIA,GAAO,KAAK,kBAAkB,KAAK,IAAI,CAAC,EAClE,KAAK,MAAQ,CACT,YAAa,KACb,iBAAkB,GAClB,qBAAsB,CAAE,EACxB,sBAAuB,CAAE,CAC5B,EAED,KAAK,aAAe,IAAM,CACtB,KAAK,aAAa,OAAO,OAAO,CAAE,YAAa,KAAK,oBAAsB,EAAE,KAAK,oBAAqB,EAAC,CAC1G,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAA5wH,EAAO,MAAA+X,EAAO,QAAA0O,CAAS,EAAG,KAC5BwsG,EAAiBjzH,EAAM,UAAY,CAAE,EACrCkyH,EAAO,KAAK,YAAYlyH,EAAM,IAAI,EAClCkzH,EAAoB,KAAK,oBAAoBhB,EAAMn6G,EAAM,WAAW,EACpEszF,EAAamnB,IAAwBxyH,EAAM,OAAQymB,CAAO,EAC1DzmB,EAAM,kBACNqrG,EAAW,KAAK,2BAA2B,EAG/C,IAAI8nB,EAAYF,EAAe,OAC3BG,EAAU,EACVC,EACAC,EAAmB,CAAE,EACrBC,EAAmB,CAAE,EACrBC,EAAmB,CAAE,EACzB,KAAOJ,EAAUD,IAAcE,EAAgBJ,EAAeG,CAAO,GAAG,OAAS,UAC7EE,EAAiB,KAAK,KAAK,cAAcD,EAAeH,EAAmB,EAAI,CAAC,EAChFE,GAAW,EAEf,KAAOA,EAAUD,IAAcE,EAAgBJ,EAAeG,CAAO,GAAG,OAAS,QAC7EG,EAAiB,KAAK,KAAK,cAAcF,EAAeH,EAAmB,EAAK,CAAC,EACjFE,GAAW,EAEf,KAAOA,EAAUD,IAAcE,EAAgBJ,EAAeG,CAAO,GAAG,OAAS,UAC7EI,EAAiB,KAAK,KAAK,cAAcH,EAAeH,EAAmB,EAAI,CAAC,EAChFE,GAAW,EAMf,IAAIK,EAAU,CAACnV,GAAuB,EACtC,MAAMoV,EAAY,CAAE,KAAM,UAAY,EACtC,OAAOxpB,GAAc,QAAS,CAC1B,KAAM,OACN,UAAWmB,EAAW,KAAK,GAAG,EAC9B,MAAO,CAAE,OAAQrrG,EAAM,MAAQ,CAC3C,EAAW,GAAQ,CAACyzH,GAAWH,EAAiB,SAAWppB,GAAc,QAASwpB,EAAW,GAAGJ,CAAgB,EAAG,GAAQ,CAACG,GAAWF,EAAiB,SAAWrpB,GAAc,QAASwpB,EAAW,GAAGH,CAAgB,EAAG,GAAQ,CAACE,GAAWD,EAAiB,SAAWtpB,GAAc,QAASwpB,EAAW,GAAGF,CAAgB,EAAGC,GAAWvpB,GAAc,QAASwpB,EAAW,GAAGJ,EAAkB,GAAGC,EAAkB,GAAGC,CAAgB,CAAC,CAC9a,CACI,cAAchC,EAAe0B,EAAmBtB,EAAU,CACtD,MAAI,iBAAkBJ,EACVtnB,GAActuF,GAAU,CAAE,IAAK41G,EAAc,GAAK,EAAEA,EAAc,YAAY,EAElFtnB,GAAc,KAAM,CAAE,IAAKsnB,EAAc,IAAK,KAAM,eAAgB,UAAWiB,IAAqBjB,EAAe,KAAK,MAAM,MAAM,EAAE,KAAK,GAAG,CAAG,EAAE,KAAK,cAAcA,EAAe0B,EAAmB1B,EAAc,MAAOI,CAAQ,CAAC,CACtP,CACI,cAAcJ,EAAe0B,EAAmBvB,EAAaC,EAAU,CACnE,GAAI,iBAAkBD,EAClB,OAAOA,EAAY,aAEvB,GAAI,CAAE,MAAA3xH,CAAK,EAAK,KACZ,CAAE,iBAAA2zH,EAAkB,qBAAAC,EAAsB,sBAAAC,CAAuB,EAAG,KAAK,MACzEC,EAAkBrC,IAAmBzxH,EAAOwxH,CAAa,EACzDuC,EAAWxC,GAA0BvxH,EAAOwxH,CAAa,EAGzDwC,EAAah0H,EAAM,OACnB2zH,EAAmB,SACdG,EACG,OADe,SAFK,UAI5BG,EAAazC,EAAc,IAC3Bh3F,EAAUk3F,IAAmBF,EAAeG,EAAa,CACzD,kBAAmBuB,EACnB,cAAe,GACf,YAAc,CAAClzH,EAAM,kBAAoB4zH,EAAqBK,CAAU,IAAM,OAAaL,EAAqBK,CAAU,EAAI,KAC9H,aAAcJ,EAAsBI,CAAU,IAAM,OAAYJ,EAAsBI,CAAU,EAAI,KACpG,WAAYzC,EAAc,WAC1B,eAAgB,GAChB,eAAgB,CAAE,EAClB,sBAAuB,IAAM,CAAG,CACnC,EAAEI,CAAQ,EACX,OAAO1nB,GAAc0nB,EAAW,KAAO,KAAM,CACzC,IAAKD,EAAY,MACjB,KAAM,cAClB,EAAWznB,GAAc,MAAO,CAAE,UAAW,sBAAsB6pB,EAAW,8BAAgC,EAAE,EAAI,EACxG7pB,GAAcomB,IAAU,CAAE,IAAK,KAAK,aAAa,UAAU2D,CAAU,EAAG,MAAO,KAAK,eAAe,UAAUA,CAAU,EAAG,UAAWD,EAAW,UAAYh0H,EAAM,OAAqB,SAAZ,UAA4C,UAAWwxH,EAAc,UAAW,OAAQuC,EAAU,iBACvQ,EAAM,EAAEv5F,CAAO,CAAC,CAAC,CACnC,CACI,kBAAkB05F,EAAYt4H,EAAK,CAC/B,IAAIu4H,EAAUC,IAAgB,KAAK,MAAM,SAAUx4H,CAAG,EAClDu4H,GACAn4G,GAAOm4G,EAAQ,MAAM,cAAeD,CAAU,CAE1D,CACI,mBAAoB,CAChB,KAAK,aAAc,EACnB,KAAK,QAAQ,iBAAiB,KAAK,YAAY,CACvD,CACI,oBAAqB,CAEjB,KAAK,aAAc,CAC3B,CACI,sBAAuB,CACnB,KAAK,QAAQ,oBAAoB,KAAK,YAAY,CAC1D,CACI,oBAAqB,CACjB,OAAO3B,IAAe,KAAK,MAAM,IAAI,EAC/BrB,IAAmB,KAAK,eAAe,OAAQ,GAC/C,CACd,CACI,qBAAsB,CAClB,IAAImD,EAAiB3Q,IAAoB,EACrC,CAAE,aAAA4Q,EAAc,eAAAC,CAAc,EAAK,KACnCZ,EAAmB,GACnBC,EAAuB,CAAE,EACzBC,EAAwB,CAAE,EAC9B,QAASI,KAAcK,EAAa,WAAY,CAC5C,IAAIE,EAAWF,EAAa,WAAWL,CAAU,EACjD,GAAIO,GAAYA,EAAS,kBAAmB,CACxCb,EAAmB,GACnB,KAChB,CACA,CACQ,QAASQ,KAAW,KAAK,MAAM,SAAU,CACrC,IAAIF,EAAaE,EAAQ,IACrBD,EAAaK,EAAe,WAAWN,CAAU,EACrD,GAAIC,EAAY,CACZ,IAAIO,EAAYP,EAAW,WAC3BN,EAAqBK,CAAU,EAAI,KAAK,MAAMQ,EAAU,sBAAuB,EAAC,OAASd,EACnFU,EAAe,EACf,EAAE,EACRR,EAAsBI,CAAU,EAAI,KAAK,MAAMQ,EAAU,sBAAuB,EAAC,MAAM,CACvG,CACA,CACQ,MAAO,CAAE,iBAAAd,EAAkB,qBAAAC,EAAsB,sBAAAC,CAAuB,CAChF,CACA,CACAb,GAAiB,iBAAiB,CAC9B,qBAAsB7zB,GACtB,sBAAuBA,EAC3B,CAAC,EACD,SAASi1B,IAAgBM,EAAU94H,EAAK,CACpC,QAASu4H,KAAWO,EAChB,GAAIP,EAAQ,MAAQv4H,EAChB,OAAOu4H,EAGf,OAAO,IACX,CAEA,MAAMQ,WAAuBxrB,EAAc,CACvC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,SAAY5sG,GAAO,CACpB,KAAK,GAAKA,EACNA,GACAi+G,GAASj+G,EAAI,KAAK,MAAM,GAAG,CAElC,CACT,CACI,QAAS,CACL,KAAM,CAAE,MAAAyD,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACd,CAAE,IAAAg0F,CAAG,EAAKz6G,EACV,CAAE,WAAAk7G,CAAU,EAAKT,EACjB,CAAE,GAAAlC,CAAE,EAAK2C,EACTvR,EAAc,CAChB,MAAO,IAAI2O,GAAU7xF,EAASy0F,EAAW,IAAKA,EAAW,QAAQ,EACjE,KAAMz0F,EAAQ,QACd,SAAUzmB,EAAM,SAChB,UAAWu4G,EAAG,UACd,gBAAiBA,EAAG,gBACpB,YAAaA,EAAG,YAChB,YAAa,CAACv4G,EAAM,iBAAmBm7G,IAAoBV,EAAKh0F,CAAO,EACvE,iBAAkB,CAACzmB,EAAM,iBAAmBs7G,IAAyBb,EAAKh0F,CAAO,EACjF,eAAgB,CAACzmB,EAAM,iBAAmBu7G,IAAuBd,CAAG,EACpE,SAAU,GAAQz6G,EAAM,YAAcA,EAAM,YAAcA,EAAM,iBAChE,QAAS,EAAQy6G,EAAI,QACrB,MAAO,EAAQA,EAAI,MACnB,OAAQ,EAAQz6G,EAAM,OACtB,SAAU,EAAQA,EAAM,SACxB,QAAS,EAAQA,EAAM,QACvB,WAAY,EAAQA,EAAM,WAC1B,WAAY,EAAQA,EAAM,WAC1B,WAAY,EAAQA,EAAM,UAC7B,EACD,OAAQkqG,GAAcW,GAAkB,OAAO,OAAO,GAAI7qG,EAA+B,CAAE,MAAO,KAAK,SAAU,UAAW,CACpH,GAAG08G,IAAmB/S,CAAW,EACjC,GAAG8Q,EAAI,WAAW,GAAG,WACrB,GAAIz6G,EAAM,WAAa,EACvC,EAAe,YAAa2pG,EAAa,cAAe,eAAgB,gBAAiB17F,EAAQ,aAAc,iBAAkBjO,EAAM,iBAAkB,mBAAoBiO,EAAQ,gBAAiB,SAAUA,EAAQ,cAAe,YAAaA,EAAQ,gBAAgB,CAAE,CAAC,CAC/Q,CACI,mBAAmByhB,EAAW,CACtB,KAAK,IAAM,KAAK,MAAM,MAAQA,EAAU,KACxC8qF,GAAS,KAAK,GAAI,KAAK,MAAM,GAAG,CAE5C,CACA,CAGA,MAAMoa,WAAsBzrB,EAAc,CACtC,QAAS,CACL,GAAI,CAAE,MAAAnpG,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACd,CAAE,IAAAg0F,CAAG,EAAKz6G,EACV,CAAE,GAAAu4G,GAAOkC,EAAI,WACbgB,EAAaxtG,EAAQ,iBAAmBjO,EAAM,kBAC9C60H,EAAWrZ,GAAiBf,EAAKgB,EAAYh1F,EAASzmB,EAAM,wBAAyBA,EAAM,sBAAsB,EACrH,OAAQkqG,GAAcyqB,GAAgB,OAAO,OAAO,GAAI30H,EAA4B,CAAE,MAAO,IAAK,QAAS,CACnG,YAAau4G,EAAG,YAChB,gBAAiBA,EAAG,eACpC,EAAe,QAASqE,GAAkBnC,EAAKh0F,CAAO,EAAG,iBAAkBquG,IAAsB,SAAUD,CAAQ,CAAE,EAAG,CAACnK,EAAcqK,IAAqB7qB,GAActuF,GAAU,KACxKsuF,GAAcwgB,EAAc,CAAE,MAAO,MAAO,UAAW,CAAC,eAAe,EAAG,QAAS,CAAE,MAAOqK,EAAgB,SAAW,EAAE,EACzH,EAAQA,EAAgB,kBAAsB7qB,GAAc,MAAO,CAAE,UAAW,yCAAyC,CAAE,EAC3H,EAAQ6qB,EAAgB,gBAAoB7qB,GAAc,MAAO,CAAE,UAAW,uCAAuC,CAAE,CAAE,CAAE,CACvI,CACA,CACA,SAAS4qB,IAAqBE,EAAY,CACtC,OAAQ9qB,GAAc,MAAO,CAAE,UAAW,qBAAuB,EAC7D8qB,EAAW,UAAa9qB,GAAc,MAAO,CAAE,UAAW,eAAiB,EAAE8qB,EAAW,QAAQ,EAChG9qB,GAAc,MAAO,CAAE,UAAW,0BAA4B,EAC1DA,GAAc,MAAO,CAAE,UAAW,0BAA0B,EAAI8qB,EAAW,MAAM,OAAS9qB,GAActuF,GAAU,KAAM,GAAQ,CAAC,CAAC,CAAC,CAC/I,CAEA,MAAMq5G,GAAyBj1H,GAAWkqG,GAAclC,GAAgB,SAAU,KAAOvhF,GAAY,CACjG,GAAI,CAAE,QAAAxY,CAAO,EAAKwY,EACdkjF,EAAc,CACd,OAAQ3pG,EAAM,OACd,KAAMymB,EAAQ,QAAQ,OAAOzmB,EAAM,IAAI,EACvC,KAAMymB,EAAQ,OACjB,EACD,OAAQyjF,GAAcW,GAAkB,OAAO,OAAO,GAAI7qG,EAA+B,CAAE,MAAOA,EAAM,OAAS,MAAO,YAAa2pG,EAAa,cAAe,sBAAuB,gBAAiB17F,EAAQ,oBAAqB,mBAAoBA,EAAQ,uBAAwB,SAAUA,EAAQ,qBAAsB,YAAaA,EAAQ,uBAAyB,EAAC,CACrX,CAAC,EAEKinH,IAAiBnyB,GAAgB,CAAE,IAAK,SAAS,CAAE,EACzD,MAAMoyB,WAAyBhsB,EAAc,CACzC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,kBAAoBnK,GAAco2B,GAAiB,CAChE,CACI,QAAS,CACL,GAAI,CAAE,MAAAp1H,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACdkjF,EAAc,KAAK,kBAAkB,CACrC,KAAM3pG,EAAM,KACZ,YAAaA,EAAM,YACnB,WAAYA,EAAM,WAClB,aAAcA,EAAM,cAAgB,GACpC,cAAeA,EAAM,cACrB,iBAAkBA,EAAM,iBACxB,QAASymB,EAAQ,QACjB,QAASA,EAAQ,QACjB,iBAAkBxY,EAAQ,gBACtC,CAAS,EACD,OAAQi8F,GAAcW,GAAkB,OAAO,OAAO,GAAI7qG,EAA+B,CAAE,UAAW,CAC9F,GAAG6iH,GAAiBlZ,EAAaljF,EAAQ,KAAK,EAC9C,GAAIzmB,EAAM,WAAa,EAC1B,EAAE,QAAS,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEA,EAAM,OAAO,EAAI2pG,EAAY,WAAa,CAAE,EAAG,CAAE,YAAaxL,GAAgBn+F,EAAM,IAAI,CAAG,GAAI,YAAa2pG,EAAa,cAAe,iBAAkB,gBAAiB17F,EAAQ,eAAgB,iBAAkBjO,EAAM,iBAAkB,mBAEzR2pG,EAAY,WAAa,OAAY17F,EAAQ,kBAAmB,SAAUA,EAAQ,gBAAiB,YAAaA,EAAQ,kBAAoB,EAAC,CACzJ,CACA,CACA,SAASonH,GAAwBpnH,EAAS,CACtC,MAAO,GAAQA,EAAQ,gBAAkBu7F,GAA0B,iBAAkBv7F,CAAO,EAChG,CACA,SAASmnH,IAAkBvvH,EAAK,CAC5B,GAAI,CAAE,KAAAo1C,EAAM,QAAAqtD,EAAS,YAAAoM,EAAa,aAAA4gB,CAAc,EAAGzvH,EAC/CukH,EAAUxH,GAAY3nE,EAAMp1C,EAAI,WAAY,KAAM6uG,CAAW,EAC7D6gB,EAAgB1vH,EAAI,cAAiByiG,EAAQ,OAAOrtD,EAAMq6E,EAAezvH,EAAI,iBAAmBqvH,GAAc,EAAK,GACvH,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,KAAM5sB,EAAQ,OAAOrtD,CAAI,EAAG,KAAMp1C,EAAI,SAAWukH,CAAO,EAAG,CAAE,aAAAkL,EAC5G,cAAAC,CAAe,GAAG1vH,EAAI,gBAAgB,CAC9C,CAEA,MAAM2vH,WAAgBrsB,EAAc,CAChC,QAAS,CACL,GAAI,CAAE,MAAAnpG,CAAK,EAAK,KACZ,CAAE,IAAAy6G,CAAG,EAAKz6G,EACd,OAAQkqG,GAAcyqB,GAAgB,CAAE,MAAO,MAAO,UAAW,CAAC,aAAa,EAAG,QAAS,CAAE,gBAAiBla,EAAI,WAAW,GAAG,iBAAmB,iBAAkBgb,IAAoB,IAAKhb,EAAK,SAAU,GAAI,WAAY,GAAO,WAAY,GAAO,gBAAiB,GAAO,WAAY,GAAO,OAAQz6G,EAAM,OAAQ,SAAUA,EAAM,SAAU,QAASA,EAAM,QAAS,gBAAiB,GAAM,gBAAiB,GAAM,CACha,CACA,CACA,SAASy1H,IAAmBz1H,EAAO,CAC/B,GAAI,CAAE,MAAA01H,GAAU11H,EAAM,MACtB,OAAO01H,GAAUxrB,GAAc,MAAO,CAAE,UAAW,gBAAgB,EAAIlqG,EAAM,MAAM,KAAK,CAC5F,CACA,SAAS21H,GAAWC,EAAU,CAC1B,OAAQ1rB,GAAc,MAAO,CAAE,UAAW,MAAM0rB,CAAQ,GAAI,CAChE,CAEA,MAAMC,GAAuB71H,GAAWkqG,GAAclC,GAAgB,SAAU,KAAOvhF,GAAY,CAC/F,GAAI,CAAE,QAAA6hF,EAAS,QAAAr6F,CAAO,EAAKwY,EACvB,CAAE,KAAAw0B,CAAI,EAAKj7C,EACX6lD,EAAS53C,EAAQ,kBAAoBjO,EAAM,cAC3CwhG,EAAM8G,EAAQ,kBAAkBrtD,CAAI,EACpCvjB,EAAO4wE,EAAQ,OAAOrtD,EAAM4K,CAAM,EAEtC,OAAQqkD,GAAcW,GACpB,OAAO,OAAO,GAAI7qG,EAA+B,CAAE,YAFnC,CAAE,IAAAwhG,EAAK,KAAA9pE,EAAM,KAAAujB,CAAM,EAE0C,cAAe,oBAAqB,gBAAiBhtC,EAAQ,kBAAmB,iBAAkB6nH,IAAa,mBAAoB7nH,EAAQ,qBAAsB,SAAUA,EAAQ,mBAAoB,YAAaA,EAAQ,qBAAuB,EAAC,CACvU,CAAC,EACD,SAAS6nH,IAAYd,EAAY,CAC7B,OAAOA,EAAW,IACtB,CAEA,MAAMe,GAAwB,GAC9B,MAAMC,YAAgB7sB,EAAc,CAChC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQ,CACT,QAAShS,GAAgB,CAC5B,EACD,KAAK,aAAgB56F,GAAO,CACxB,KAAK,OAASA,EACV,KAAK,MAAM,OACXyf,GAAO,KAAK,MAAM,MAAOzf,CAAE,CAElC,EAED,KAAK,wBAA2B06F,GAAO,CAEnC,MAAMpyF,EAASmyF,GAAsBC,CAAE,EAClC,KAAK,OAAO,SAASpyF,CAAM,GAC5B,KAAK,iBAAkB,CAE9B,EACD,KAAK,sBAAyBoyF,GAAO,CAC7BA,EAAG,MAAQ,UACX,KAAK,iBAAkB,CAE9B,EACD,KAAK,iBAAmB,IAAM,CAC1B,GAAI,CAAE,QAAAg/B,GAAY,KAAK,MACnBA,GACAA,EAAS,CAEhB,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAA1tB,EAAO,QAAAt6F,CAAS,EAAG,KAAK,QAC1B,CAAE,MAAAjO,EAAO,MAAA+X,CAAK,EAAK,KACnBszF,EAAa,CACb,aACA9C,EAAM,SAAS,SAAS,CAC3B,EAAC,OAAOvoG,EAAM,iBAAmB,EAAE,EACpC,OAAOk2H,IAAahsB,GAAc,MAAO,OAAO,OAAO,CAAE,EAAElqG,EAAM,WAAY,CAAE,GAAIA,EAAM,GAAI,UAAWqrG,EAAW,KAAK,GAAG,EAAG,kBAAmBtzF,EAAM,QAAS,IAAK,KAAK,YAAY,CAAE,EACpLmyF,GAAc,MAAO,CAAE,UAAW,qBAAuB3B,EAAM,SAAS,eAAe,CAAG,EACtF2B,GAAc,OAAQ,CAAE,UAAW,mBAAoB,GAAInyF,EAAM,OAAO,EAAI/X,EAAM,KAAK,EACvFkqG,GAAc,OAAQ,CAAE,UAAW,oBAAsB3B,EAAM,aAAa,OAAO,EAAG,MAAOt6F,EAAQ,UAAW,QAAS,KAAK,gBAAgB,CAAE,CAAC,EACrJi8F,GAAc,MAAO,CAAE,UAAW,mBAAqB3B,EAAM,SAAS,gBAAgB,CAAC,EAAIvoG,EAAM,QAAQ,CAAC,EAAGA,EAAM,QAAQ,CACvI,CACI,mBAAoB,CAChB,SAAS,iBAAiB,YAAa,KAAK,uBAAuB,EACnE,SAAS,iBAAiB,UAAW,KAAK,qBAAqB,EAC/D,KAAK,WAAY,CACzB,CACI,sBAAuB,CACnB,SAAS,oBAAoB,YAAa,KAAK,uBAAuB,EACtE,SAAS,oBAAoB,UAAW,KAAK,qBAAqB,CAC1E,CACI,YAAa,CACT,GAAI,CAAE,MAAAumG,GAAU,KAAK,QACjB,CAAE,YAAA4vB,EAAa,aAAAC,CAAc,EAAG,KAAK,MACrC,CAAE,OAAAC,CAAM,EAAK,KACbC,EAAgBzR,IAAyBsR,CAAW,EACxD,GAAIG,EAAe,CACf,IAAIC,EAAcF,EAAO,sBAAuB,EAE5CG,EAAaJ,EACX5/B,GAAe2/B,EAAa,gBAAgB,EAAE,sBAAqB,EAAG,IACtEG,EAAc,IAChBG,EAAclwB,EAAQ+vB,EAAc,MAAQC,EAAY,MAAQD,EAAc,KAElFE,EAAa,KAAK,IAAIA,EAAYT,EAAqB,EACvDU,EAAc,KAAK,IAAIA,EAAa,SAAS,gBAAgB,YAAcV,GAAwBQ,EAAY,KAAK,EACpHE,EAAc,KAAK,IAAIA,EAAaV,EAAqB,EACzD,IAAIh2D,EAASs2D,EAAO,aAAa,sBAAuB,EACxDv/B,GAAWu/B,EAAQ,CACf,IAAKG,EAAaz2D,EAAO,IACzB,KAAM02D,EAAc12D,EAAO,IAC3C,CAAa,CACb,CACA,CACA,CAEA,MAAM22D,YAAoBhQ,EAAc,CACpC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,aAAgB2P,GAAW,CAC5B,KAAK,OAASA,EACVA,EACA,KAAK,QAAQ,6BAA6B,KAAM,CAC5C,GAAIA,EACJ,eAAgB,EACpC,CAAiB,EAGD,KAAK,QAAQ,+BAA+B,IAAI,CAEvD,CACT,CACI,QAAS,CACL,GAAI,CAAE,QAAApoH,EAAS,QAAAq6F,CAAS,EAAG,KAAK,QAC5B,CAAE,MAAAtoG,CAAK,EAAK,KACZ,CAAE,UAAA22H,EAAW,WAAApa,EAAY,YAAA7H,CAAa,EAAG10G,EACzC01H,EAAQptB,EAAQ,OAAOquB,EAAW1oH,EAAQ,gBAAgB,EAC9D,OAAQi8F,GAAcirB,GAAkB,CAAE,MAAO,KAAK,aAAc,KAAMwB,EAAW,YAAajiB,EAAa,WAAY6H,CAAY,EAAE,CAACmO,EAAc/gB,EAAasB,IAAaf,GAAc8rB,IAAS,CAAE,MAAO/qB,EAAQ,IAAK,GAAIjrG,EAAM,GAAI,MAAO01H,EAAO,gBAAiB,CAAC,iBAAiB,EAAE,OAAOzqB,EAAQ,WAAa,EAAE,EAAG,WAAYA,EAA+D,SAAUjrG,EAAM,SAAU,YAAaA,EAAM,YAAa,aAAcA,EAAM,aAAc,QAASA,EAAM,OAAS,EAC5fq1H,GAAwBpnH,CAAO,GAAMi8F,GAAcwgB,EAAc,CAAE,MAAO,MAAO,UAAW,CAAC,sBAAsB,CAAG,GACtH1qH,EAAM,QAAQ,CAAE,CAC5B,CACI,SAAS2mH,EAAcC,EAAaC,EAASC,EAAU,CACnD,GAAI,CAAE,OAAAuP,EAAQ,MAAAr2H,CAAK,EAAK,KACxB,OAAI2mH,GAAgB,GAAKA,EAAeE,GACpCD,GAAe,GAAKA,EAAcE,EAC3B,CACH,YAAa9mH,EAAM,YACnB,SAAU,OAAO,OAAO,CAAE,OAAQ,CAACA,EAAM,WAAY,MAAO,CACpD,MAAOA,EAAM,UACb,IAAKA,EAAM,OACnC,CAAuB,EAAEA,EAAM,aAAa,EAC5B,MAAOq2H,EACP,KAAM,CACF,KAAM,EACN,IAAK,EACL,MAAOxP,EACP,OAAQC,CACX,EACD,MAAO,CACV,EAEE,IACf,CACA,CAEA,MAAM8P,WAA0BztB,EAAc,CAC1C,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQ,CACT,cAAe,GACf,UAAWhS,GAAgB,CAC9B,EACD,KAAK,aAAgB0/B,GAAW,CAC5B,KAAK,OAASA,EACV,KAAK,MAAM,OACX76G,GAAO,KAAK,MAAM,MAAO66G,CAAM,CAEtC,EACD,KAAK,YAAe5/B,GAAO,CACvB,GAAI,CAAE,MAAAj3F,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,cAAAqwG,GAAkBrwG,EAAQ,QAC5Bw0B,EAAO87E,GAAa/2H,CAAK,EAAE,MAC/B,SAASg3H,EAAevc,EAAK,CACzB,GAAI,CAAE,IAAA/7G,EAAK,SAAAkR,EAAU,MAAA68F,CAAO,EAAGgO,EAAI,WACnC,MAAO,CACH,MAAO,IAAInC,GAAU7xF,EAAS/nB,EAAKkR,CAAQ,EAC3C,MAAO6W,EAAQ,QAAQ,OAAOgmF,EAAM,KAAK,EACzC,IAAKhmF,EAAQ,QAAQ,OAAOgmF,EAAM,GAAG,EACrC,QAASgO,EAAI,QACb,MAAOA,EAAI,KACd,CACjB,CACgB,OAAOqc,GAAkB,aACzBA,EAAgBA,EAAc,CAC1B,KAAA77E,EACA,OAAQ,EAAQj7C,EAAM,WACtB,QAASA,EAAM,QAAQ,IAAIg3H,CAAc,EACzC,WAAYh3H,EAAM,WAAW,IAAIg3H,CAAc,EAC/C,QAAS//B,EACT,KAAMxwE,EAAQ,OAClC,CAAiB,GAED,CAACqwG,GAAiBA,IAAkB,UACpC,KAAK,SAAS,CAAE,cAAe,EAAI,CAAE,EAEhC,OAAOA,GAAkB,UAC9BrwG,EAAQ,YAAY,OAAOw0B,EAAM67E,CAAa,CAErD,EACD,KAAK,mBAAqB,IAAM,CAC5B,KAAK,SAAS,CAAE,cAAe,EAAK,CAAE,CACzC,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAA92H,EAAO,MAAA+X,CAAK,EAAK,KACvB,OAAQmyF,GAAclC,GAAgB,SAAU,KAAOvhF,GAAY,CAC/D,GAAI,CAAE,QAAA0hF,EAAS,QAAAl6F,EAAS,YAAA06F,CAAa,EAAGliF,EACpC,CAAE,aAAAwwG,CAAY,EAAKhpH,EACnB,CAAE,QAAAipH,CAAO,EAAKl3H,EACdysG,EAAQsqB,GAAa/2H,CAAK,EAC1B03B,EAAO,OAAOu/F,GAAiB,WAC7BA,EAAa,KAAKtuB,EAAauuB,CAAO,EACtC,IAAIA,CAAO,IAAID,CAAY,GAC7BE,EAAOz9B,GAAmBzrF,EAAQ,aAAc,CAACipH,CAAO,EAAGx/F,CAAI,EAC/DiyE,EAAc,CACd,IAAKutB,EACL,UAAW,IAAIA,CAAO,GACtB,KAAAx/F,EACA,KAAMywE,CACT,EACD,OAAQ+B,GAActuF,GAAU,KAC5B,EAAQ5b,EAAM,SAAakqG,GAAcW,GAAkB,CAAE,MAAO7qG,EAAM,OAAS,IAAK,MAAO,KAAK,aAAc,UAAW,CACrH,GAAIA,EAAM,WAAa,GACvB,cACH,EAAE,QAASA,EAAM,QAAS,QAAS,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEA,EAAM,OAAO,EAAGq4F,GAAqB,KAAK,WAAW,CAAC,EAAG,CAAE,MAAO8+B,EAAM,gBAAiBp/G,EAAM,cAAe,gBAAiBA,EAAM,cAAgBA,EAAM,UAAY,EAAE,CAAE,EAAG,YAAa4xF,EAAa,cAAe,kBAAmB,gBAAiB17F,EAAQ,gBAAiB,iBAAkBjO,EAAM,kBAAoBo3H,IAAqB,mBAAoBnpH,EAAQ,mBAAoB,SAAUA,EAAQ,iBAAkB,YAAaA,EAAQ,mBAAmB,EAAIjO,EAAM,QAAQ,EACzjB+X,EAAM,eAAkBmyF,GAAcwsB,IAAa,CAAE,GAAI3+G,EAAM,UAAW,UAAW00F,EAAM,MAAO,QAASA,EAAM,IAAK,YAAazsG,EAAM,YAAa,WAAYA,EAAM,WAAY,cAAeA,EAAM,cAAe,SAAU,KAAK,SAAU,YAAaA,EAAM,eAC5PA,EAAM,eAAe,QACrB,KAAK,OAAQ,aAAcA,EAAM,aAAc,WAAYA,EAAM,WAAY,QAAS,KAAK,kBAAkB,EAAIA,EAAM,eAAgB,EAAE,CACjK,CAAS,CACT,CACI,mBAAoB,CAChB,KAAK,eAAgB,CAC7B,CACI,oBAAqB,CACjB,KAAK,eAAgB,CAC7B,CACI,gBAAiB,CACT,KAAK,SACL,KAAK,SAAWw2F,GAAe,KAAK,OAAQ,kBAAkB,EAE1E,CACA,CACA,SAAS4gC,IAAoBp3H,EAAO,CAChC,OAAOA,EAAM,IACjB,CACA,SAAS+2H,GAAa/2H,EAAO,CACzB,GAAIA,EAAM,WACN,MAAO,CACH,MAAOA,EAAM,WACb,IAAKk7C,GAAQl7C,EAAM,WAAY,CAAC,CACnC,EAEL,GAAI,CAAE,WAAAq3H,CAAU,EAAKr3H,EACrB,MAAO,CACH,MAAOs3H,GAAwBD,CAAU,EACzC,IAAKE,IAAoBF,CAAU,CACtC,CACL,CACA,SAASC,GAAwBxc,EAAM,CACnC,OAAOA,EAAK,OAAO0c,GAAiB,EAAE,WAAW,MAAM,KAC3D,CACA,SAASA,IAAkBC,EAAMC,EAAM,CACnC,OAAOD,EAAK,WAAW,MAAM,MAAQC,EAAK,WAAW,MAAM,MAAQD,EAAOC,CAC9E,CACA,SAASH,IAAoBzc,EAAM,CAC/B,OAAOA,EAAK,OAAO6c,GAAa,EAAE,WAAW,MAAM,GACvD,CACA,SAASA,IAAcF,EAAMC,EAAM,CAC/B,OAAOD,EAAK,WAAW,MAAM,IAAMC,EAAK,WAAW,MAAM,IAAMD,EAAOC,CAC1E,CAEA,MAAME,GAAM,CACR,aAAc,CACV,KAAK,SAAW,CAAE,CAC1B,CACI,IAAIv6H,EAAO,CACP,KAAK,aAAeA,EACpB,QAASwnB,KAAW,KAAK,SACrBA,EAAQxnB,CAAK,CAEzB,CACI,UAAUwnB,EAAS,CACf,KAAK,SAAS,KAAKA,CAAO,EACtB,KAAK,eAAiB,QACtBA,EAAQ,KAAK,YAAY,CAErC,CACA,CAKA,MAAMgzG,YAA6BD,GAAM,CACrC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,IAAM,IAAI,GACvB,CAEI,OAAOE,EAAiB,CACpB,KAAM,CAAE,IAAAn8H,CAAG,EAAK,KAChB,IAAIonB,EAAU,GACV+0G,EAAgB,UAChBn8H,EAAI,IAAIm8H,EAAgB,GAAIA,CAAe,EAC3C/0G,EAAU,IAELpnB,EAAI,IAAIm8H,EAAgB,EAAE,IAC/Bn8H,EAAI,OAAOm8H,EAAgB,EAAE,EAC7B/0G,EAAU,IAEVA,GACA,KAAK,IAAIpnB,CAAG,CAExB,CACA,CCvzOA,MAAMo8H,IAAgB,CAAE,EAElBC,GAAwB,CAC1B,KAAM,KACN,KAAM,CACF,IAAK,EACL,IAAK,CACR,EACD,UAAW,MACX,WAAY,CACR,KAAM,OACN,KAAM,OACN,SAAU,YACV,SAAU,YACV,KAAM,OACN,MAAO,QACP,MAAO,QACP,KAAM,OACN,IAAK,MACL,KAAM,MACT,EACD,SAAU,IACV,aAAc,OACd,UAAW,QACX,SAAU,OACV,UAAW,QACX,WAAY,UACZ,aAAc,OACd,aAAc,sBAClB,EACMC,GAAgB,OAAO,OAAO,OAAO,OAAO,GAAID,EAAqB,EAAG,CAG1E,YAAa,CACT,KAAM,cACN,KAAM,UACN,MAAME,EAAY79B,EAAM,CACpB,OAAQA,IAAS,MACX,QACA,QAAQ69B,CAAU,EAC3B,CACT,EAAO,SAAU,UAAW,YAAa,WAAY,aAAaC,EAAU,CACpE,MAAO,QAAQA,CAAQ,cAAcA,IAAa,EAAI,GAAK,GAAG,EACtE,EAAO,EACP,SAASC,IAAmBC,EAAoB,CAC5C,IAAIC,EAAcD,EAAmB,OAAS,EAAIA,EAAmB,CAAC,EAAE,KAAO,KAC3EE,EAAgBR,IAAc,OAAOM,CAAkB,EACvDG,EAAe,CACf,GAAIP,EACP,EACD,QAASQ,KAAaF,EAClBC,EAAaC,EAAU,IAAI,EAAIA,EAEnC,MAAO,CACH,IAAKD,EACL,YAAAF,CACH,CACL,CACA,SAASI,GAAYC,EAAeC,EAAW,CAC3C,OAAI,OAAOD,GAAkB,UAAY,CAAC,MAAM,QAAQA,CAAa,EAC1DE,GAAYF,EAAc,KAAM,CAACA,EAAc,IAAI,EAAGA,CAAa,EAEvEG,IAAYH,EAAeC,CAAS,CAC/C,CACA,SAASE,IAAYC,EAASH,EAAW,CACrC,IAAII,EAAQ,CAAE,EAAC,OAAOD,GAAW,CAAE,GAC/BlzH,EAAMozH,IAAeD,EAAOJ,CAAS,GAAKX,GAC9C,OAAOY,GAAYE,EAASC,EAAOnzH,CAAG,CAC1C,CACA,SAASozH,IAAeD,EAAOJ,EAAW,CACtC,QAASp8H,EAAI,EAAGA,EAAIw8H,EAAM,OAAQx8H,GAAK,EAAG,CACtC,IAAIsqD,EAAQkyE,EAAMx8H,CAAC,EAAE,kBAAmB,EAAC,MAAM,GAAG,EAClD,QAASm0B,EAAIm2B,EAAM,OAAQn2B,EAAI,EAAGA,GAAK,EAAG,CACtC,IAAIuoG,EAAWpyE,EAAM,MAAM,EAAGn2B,CAAC,EAAE,KAAK,GAAG,EACzC,GAAIioG,EAAUM,CAAQ,EAClB,OAAON,EAAUM,CAAQ,CAEzC,CACA,CACI,OAAO,IACX,CACA,SAASL,GAAYE,EAASC,EAAOnzH,EAAK,CACtC,IAAIqgB,EAASsR,GAAW,CAACwgG,GAAuBnyH,CAAG,EAAG,CAAC,YAAY,CAAC,EACpE,OAAOqgB,EAAO,KACd,GAAI,CAAE,KAAA89B,CAAI,EAAK99B,EACf,cAAOA,EAAO,KACP,CACH,QAAA6yG,EACA,MAAAC,EACA,KAAAh1E,EACA,mBAAoB,IAAI,KAAK,aAAa+0E,CAAO,EACjD,QAAS7yG,CACZ,CACL,CAGA,SAASizG,GAAarzE,EAAO,CACzB,MAAO,CACH,GAAI0yC,GAAM,EACV,KAAM1yC,EAAM,KACZ,mBAAoBA,EAAM,mBAAqB,IAAI,KAAKA,EAAM,kBAAkB,EAAI,OACpF,KAAMA,EAAM,MAAQ,CAAE,EACtB,SAAUA,EAAM,UAAY,CAAE,EAC9B,eAAgBA,EAAM,gBAAkB,CAAE,EAC1C,YAAa,GAAG,OAAOA,EAAM,aAAe,EAAE,EAC9C,cAAeA,EAAM,eAAiB,CAAE,EACxC,qBAAsBA,EAAM,sBAAwB,CAAE,EACtD,oBAAqBA,EAAM,qBAAuB,CAAE,EACpD,wBAAyBA,EAAM,yBAA2B,CAAE,EAC5D,2BAA4BA,EAAM,4BAA8B,CAAE,EAClE,yBAA0BA,EAAM,0BAA4B,CAAE,EAC9D,0BAA2BA,EAAM,2BAA6B,CAAE,EAChE,oBAAqBA,EAAM,qBAAuB,CAAE,EACpD,mBAAoBA,EAAM,oBAAsB,CAAE,EAClD,MAAOA,EAAM,OAAS,CAAE,EACxB,sBAAuBA,EAAM,uBAAyB,CAAE,EACxD,aAAcA,EAAM,cAAgB,KACpC,sBAAuBA,EAAM,uBAAyB,CAAE,EACxD,qBAAsBA,EAAM,sBAAwB,CAAE,EACtD,sBAAuBA,EAAM,uBAAyB,CAAE,EACxD,sBAAuBA,EAAM,uBAAyB,CAAE,EACxD,qBAAsBA,EAAM,sBAAwB,CAAE,EACtD,aAAcA,EAAM,cAAgB,CAAE,EACtC,gBAAiBA,EAAM,iBAAmB,CAAE,EAC5C,aAAcA,EAAM,aACpB,eAAgBA,EAAM,gBAAkB,CAAE,EAC1C,mBAAoBA,EAAM,mBAC1B,YAAaA,EAAM,aAAe,GAClC,oBAAqBA,EAAM,oBAC3B,qBAAsBA,EAAM,sBAAwB,CAAE,EACtD,eAAgBA,EAAM,gBAAkB,KACxC,iBAAkBA,EAAM,kBAAoB,CAAE,EAC9C,eAAgBA,EAAM,gBAAkB,CAAE,EAC1C,gBAAiBA,EAAM,iBAAmB,CAAE,CAC/C,CACL,CACA,SAASszE,IAAiBC,EAAYC,EAAY,CAC9C,IAAIC,EAAmB,CAAE,EACrBrgH,EAAQ,CACR,mBAAoB,OACpB,SAAU,CAAE,EACZ,eAAgB,CAAE,EAClB,YAAa,CAAE,EACf,cAAe,CAAE,EACjB,qBAAsB,CAAE,EACxB,oBAAqB,CAAE,EACvB,wBAAyB,CAAE,EAC3B,2BAA4B,CAAE,EAC9B,yBAA0B,CAAE,EAC5B,0BAA2B,CAAE,EAC7B,oBAAqB,CAAE,EACvB,mBAAoB,CAAE,EACtB,MAAO,CAAE,EACT,sBAAuB,CAAE,EACzB,aAAc,KACd,sBAAuB,CAAE,EACzB,qBAAsB,CAAE,EACxB,sBAAuB,CAAE,EACzB,sBAAuB,CAAE,EACzB,qBAAsB,CAAE,EACxB,aAAc,CAAE,EAChB,gBAAiB,CAAE,EACnB,aAAc,KACd,eAAgB,CAAE,EAClB,mBAAoB,KACpB,YAAa,GACb,oBAAqB,KACrB,qBAAsB,CAAE,EACxB,eAAgB,KAChB,iBAAkB,CAAE,EACpB,eAAgB,CAAE,EAClB,gBAAiB,CAAE,CACtB,EACD,SAASsgH,EAAQrpB,EAAM,CACnB,QAASzxG,KAAOyxG,EAAM,CAClB,MAAMspB,EAAa/6H,EAAI,KACjBg7H,EAAYH,EAAiBE,CAAU,EACzCC,IAAc,QACdH,EAAiBE,CAAU,EAAI/6H,EAAI,GACnC86H,EAAQ96H,EAAI,IAAI,EAChBwa,EAAQygH,IAAazgH,EAAOxa,CAAG,GAE1Bg7H,IAAch7H,EAAI,IAEvB,QAAQ,KAAK,qBAAqB+6H,CAAU,GAAG,CAE/D,CACA,CACI,OAAIJ,GACAG,EAAQH,CAAU,EAEtBG,EAAQF,CAAU,EACXpgH,CACX,CACA,SAAS0gH,KAAwB,CAC7B,IAAIC,EAAsB,CAAE,EACxBC,EAAoB,CAAE,EACtBC,EACJ,MAAO,CAACC,EAAcV,MACd,CAACS,GAAgB,CAACr+B,GAAcs+B,EAAcH,CAAmB,GAAK,CAACn+B,GAAc49B,EAAYQ,CAAiB,KAClHC,EAAeX,IAAiBY,EAAcV,CAAU,GAE5DO,EAAsBG,EACtBF,EAAoBR,EACbS,EAEf,CACA,SAASJ,IAAaM,EAAQC,EAAQ,CAClC,MAAO,CACH,mBAAoBC,IAAqBF,EAAO,mBAAoBC,EAAO,kBAAkB,EAC7F,SAAUD,EAAO,SAAS,OAAOC,EAAO,QAAQ,EAChD,eAAgBD,EAAO,eAAe,OAAOC,EAAO,cAAc,EAClE,YAAaD,EAAO,YAAY,OAAOC,EAAO,WAAW,EACzD,cAAe,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,aAAa,EAAGC,EAAO,aAAa,EAC1F,qBAAsBD,EAAO,qBAAqB,OAAOC,EAAO,oBAAoB,EACpF,oBAAqB,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,mBAAmB,EAAGC,EAAO,mBAAmB,EAC5G,wBAAyBD,EAAO,wBAAwB,OAAOC,EAAO,uBAAuB,EAC7F,2BAA4BD,EAAO,2BAA2B,OAAOC,EAAO,0BAA0B,EACtG,yBAA0BD,EAAO,yBAAyB,OAAOC,EAAO,wBAAwB,EAChG,0BAA2BD,EAAO,0BAA0B,OAAOC,EAAO,yBAAyB,EACnG,oBAAqBD,EAAO,oBAAoB,OAAOC,EAAO,mBAAmB,EACjF,mBAAoBD,EAAO,mBAAmB,OAAOC,EAAO,kBAAkB,EAC9E,MAAO,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,KAAK,EAAGC,EAAO,KAAK,EAClE,sBAAuBD,EAAO,sBAAsB,OAAOC,EAAO,qBAAqB,EACvF,aAAcA,EAAO,cAAgBD,EAAO,aAC5C,sBAAuBA,EAAO,sBAAsB,OAAOC,EAAO,qBAAqB,EACvF,qBAAsBD,EAAO,qBAAqB,OAAOC,EAAO,oBAAoB,EACpF,sBAAuBD,EAAO,sBAAsB,OAAOC,EAAO,qBAAqB,EACvF,qBAAsBD,EAAO,qBAAqB,OAAOC,EAAO,oBAAoB,EACpF,sBAAuBD,EAAO,sBAAsB,OAAOC,EAAO,qBAAqB,EACvF,aAAc,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,YAAY,EAAGC,EAAO,YAAY,EACvF,gBAAiBD,EAAO,gBAAgB,OAAOC,EAAO,eAAe,EACrE,aAAcA,EAAO,cAAgBD,EAAO,aAC5C,eAAgBA,EAAO,eAAe,OAAOC,EAAO,cAAc,EAClE,mBAAoBA,EAAO,oBAAsBD,EAAO,mBACxD,YAAaA,EAAO,aAAeC,EAAO,YAC1C,oBAAqBD,EAAO,qBAAuBC,EAAO,oBAC1D,qBAAsB,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,oBAAoB,EAAGC,EAAO,oBAAoB,EAC/G,eAAgBA,EAAO,gBAAkBD,EAAO,eAChD,iBAAkB,OAAO,OAAO,OAAO,OAAO,GAAIA,EAAO,gBAAgB,EAAGC,EAAO,gBAAgB,EACnG,eAAgB,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,cAAc,EAAGC,EAAO,cAAc,EAC7F,gBAAiB,OAAO,OAAO,OAAO,OAAO,GAAID,EAAO,eAAe,EAAGC,EAAO,eAAe,CACnG,CACL,CACA,SAASC,IAAqB/sB,EAAOC,EAAO,CACxC,OAAID,IAAU,OACHC,EAEPA,IAAU,OACHD,EAEJ,IAAI,KAAK,KAAK,IAAIA,EAAM,UAAWC,EAAM,QAAO,CAAE,CAAC,CAC9D,CAEA,MAAM+sB,WAAsBn0B,EAAM,CAClC,CACAm0B,GAAc,UAAU,QAAU,CAC9B,KAAM,oBACN,gBAAiB,iBACjB,YAAa,kBACb,OAAQ,8BACR,aAAc,kBAClB,EACAA,GAAc,UAAU,cAAgB,UACxCA,GAAc,UAAU,YAAc,CAClC,MAAO,YACP,KAAM,uBACN,KAAM,wBACN,SAAU,wBACV,SAAU,wBACd,EACAA,GAAc,UAAU,eAAiB,CACrC,KAAM,wBACN,KAAM,uBACN,SAAU,yBACV,SAAU,uBACd,EACAA,GAAc,UAAU,mBAAqB,cAC7CA,GAAc,UAAU,+BAAiC,OACzDA,GAAc,UAAU,mBAAqB,WAE7C,SAASC,IAAgBC,EAAgBC,EAAiB,CACtD,IAAI7zF,EAAO,CAAE,EACTy4E,EACJ,IAAKA,KAAYmb,EACbE,GAAcrb,EAAUz4E,EAAM4zF,EAAgBC,CAAe,EAEjE,IAAKpb,KAAYob,EACbC,GAAcrb,EAAUz4E,EAAM4zF,EAAgBC,CAAe,EAEjE,OAAO7zF,CACX,CACA,SAAS8zF,GAAcrb,EAAUz4E,EAAM4zF,EAAgBC,EAAiB,CACpE,GAAI7zF,EAAKy4E,CAAQ,EACb,OAAOz4E,EAAKy4E,CAAQ,EAExB,IAAIsb,EAAUC,IAAavb,EAAUz4E,EAAM4zF,EAAgBC,CAAe,EAC1E,OAAIE,IACA/zF,EAAKy4E,CAAQ,EAAIsb,GAEdA,CACX,CACA,SAASC,IAAavb,EAAUz4E,EAAM4zF,EAAgBC,EAAiB,CACnE,IAAIxrD,EAAgBurD,EAAenb,CAAQ,EACvCwb,EAAiBJ,EAAgBpb,CAAQ,EACzCyb,EAAa96H,GAAWivE,GAAiBA,EAAcjvE,CAAI,IAAM,KAAQivE,EAAcjvE,CAAI,EACzF66H,GAAkBA,EAAe76H,CAAI,IAAM,KAAQ66H,EAAe76H,CAAI,EAAI,KAC5E+6H,EAAeD,EAAU,WAAW,EACpCE,EAAYF,EAAU,WAAW,EACjCG,EAAW,KACf,GAAID,EAAW,CACX,GAAIA,IAAc3b,EACd,MAAM,IAAI,MAAM,sDAAuD,EAE3E4b,EAAWP,GAAcM,EAAWp0F,EAAM4zF,EAAgBC,CAAe,CACjF,CAII,MAHI,CAACM,GAAgBE,IACjBF,EAAeE,EAAS,WAEvBF,EAGE,CACH,KAAM1b,EACN,UAAW0b,EACX,SAAU,OAAO,OAAO,OAAO,OAAO,CAAE,EAAGE,EAAWA,EAAS,SAAW,CAAE,GAAKhsD,EAAgBA,EAAc,WAAa,EAAI,EAChI,UAAW,OAAO,OAAO,OAAO,OAAO,CAAE,EAAGgsD,EAAWA,EAAS,UAAY,CAAE,GAAKJ,EAAiBA,EAAe,WAAa,EAAI,CACvI,EAPU,IAQf,CAEA,SAASK,GAAiB9T,EAAQ,CAC9B,OAAO7iB,GAAQ6iB,EAAQ+T,GAAe,CAC1C,CACA,SAASA,IAAgBn1E,EAAO,CAC5B,IAAIo1E,EAAa,OAAOp1E,GAAU,WAC9B,CAAE,UAAWA,CAAO,EACpBA,EACA,CAAE,UAAAhnC,CAAS,EAAKo8G,EACpB,OAAIA,EAAW,QAEXp8G,EAAYq8G,GAAwBD,CAAU,EAEzCp8G,GAAa,EAAEA,EAAU,qBAAqBqqF,MAGnDrqF,EAAYq8G,GAAwB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAED,CAAU,EAAG,CAAE,QAASp8G,CAAW,EAAC,GAErG,CACH,UAAWo8G,EAAW,KACtB,UAAWp8G,EACX,WAAAo8G,CACH,CACL,CACA,SAASC,GAAwBltH,EAAS,CACtC,OAAQmtH,GAAelxB,GAAclC,GAAgB,SAAU,KAAOvhF,GAAayjF,GAAcW,GAAkB,CAAE,MAAO,MAAO,UAAWU,GAAoB9kF,EAAQ,QAAQ,EAAG,YAAa,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE20G,CAAS,EAAG,CAAE,iBAAkB30G,EAAQ,QAAQ,iBAAkB,EAAG,cAAe,OAAW,gBAAiBxY,EAAQ,QAAS,mBAAoBA,EAAQ,WAAY,SAAUA,EAAQ,SAAU,YAAaA,EAAQ,YAAa,CAAE,CAC/c,CAEA,SAASotH,IAAeC,EAAeC,EAAiBC,EAAwBC,EAAgB,CAC5F,IAAInB,EAAiBU,GAAiBM,CAAa,EAC/Cf,EAAkBS,GAAiBO,EAAgB,KAAK,EACxDG,EAAWrB,IAAgBC,EAAgBC,CAAe,EAC9D,OAAOl2B,GAAQq3B,EAAWjB,GAAYkB,IAAclB,EAASF,EAAiBgB,EAAiBC,EAAwBC,CAAc,CAAC,CAC1I,CACA,SAASE,IAAclB,EAASF,EAAiBgB,EAAiBC,EAAwBC,EAAgB,CACtG,IAAIG,EAAgBnB,EAAQ,UAAU,UAClCA,EAAQ,SAAS,UACjBe,EAAuB,UACvBD,EAAgB,SAChBjgG,EAAW,KACXugG,EAAe,GACfC,EAAa,GACbC,EAAsB,CAAE,EAC5B,GAAIH,IACAtgG,EAAW0gG,IAAqBJ,CAAa,EACzCtgG,GAAU,CACV,IAAI2gG,EAAQzgC,GAA4BlgE,CAAQ,EAChDugG,EAAeI,EAAM,KACjBA,EAAM,QAAU,IAChBH,EAAaD,EACbE,EAAsBxB,EAAgBsB,CAAY,EAAItB,EAAgBsB,CAAY,EAAE,WAAa,CAAE,EAEnH,CAEI,IAAIK,EAAmBC,GAAkB,CACrC,IAAIC,EAAgBD,EAAc,YAAc,CAAE,EAC9CE,EAAgB5B,EAAQ,SAAS,cACrC,OAAI4B,GAAiB,MAAQD,EAAcC,CAAa,GAAK,KAClDD,EAAcC,CAAa,EAElCD,EAAc3B,EAAQ,IAAI,GAAK,KACxB2B,EAAc3B,EAAQ,IAAI,EAEjC2B,EAAcN,CAAU,GAAK,KACtBM,EAAcN,CAAU,EAE5B,IACV,EACGQ,EAAoBH,GAAkB,CACtC,IAAII,EAAcJ,EAAc,aAAe,CAAE,EAC7CK,EAAY/B,EAAQ,SAAS,cACjC,OAAI+B,GAAa,MAAQD,EAAYC,CAAS,GAAK,KACxCD,EAAYC,CAAS,EAE5BD,EAAY9B,EAAQ,IAAI,GAAK,KACtB8B,EAAY9B,EAAQ,IAAI,EAE/B8B,EAAYT,CAAU,GAAK,KACpBS,EAAYT,CAAU,EAE1B,IACV,EACD,MAAO,CACH,KAAMrB,EAAQ,KACd,UAAWA,EAAQ,UACnB,SAAAn/F,EACA,aAAAugG,EACA,WAAAC,EACA,eAAgBrB,EAAQ,SACxB,gBAAiB,OAAO,OAAO,OAAO,OAAO,GAAIsB,CAAmB,EAAGtB,EAAQ,SAAS,EACxF,mBAAoByB,EAAgBV,CAAsB,GACtDU,EAAgBX,CAAe,GAC/Bd,EAAQ,UAAU,WACtB,kBAAmByB,EAAgBT,CAAc,GAC7ChB,EAAQ,SAAS,YACjByB,EAAgBh5B,EAAoB,GACpCu3B,EAAQ,KAEZ,oBAAqB6B,EAAiBd,CAAsB,GACxDc,EAAiBf,CAAe,GAChCd,EAAQ,UAAU,WACtB,mBAAoB6B,EAAiBb,CAAc,GAC/ChB,EAAQ,SAAS,YACjB6B,EAAiBp5B,EAAoB,CAE5C,CACL,CAEA,IAAIu5B,GAAmB,CAAE,EACzB,SAAST,IAAqBJ,EAAe,CACzC,IAAIc,EAAO,KAAK,UAAUd,CAAa,EACnCz8H,EAAMs9H,GAAiBC,CAAI,EAC/B,OAAIv9H,IAAQ,SACRA,EAAMi7F,GAAewhC,CAAa,EAClCa,GAAiBC,CAAI,EAAIv9H,GAEtBA,CACX,CAEA,SAASw9H,IAAexd,EAAUniC,EAAQ,CACtC,OAAQA,EAAO,KAAI,CACf,IAAK,mBACDmiC,EAAWniC,EAAO,QAC9B,CACI,OAAOmiC,CACX,CAEA,SAASyd,IAA6BpB,EAAwBx+C,EAAQ,CAClE,OAAQA,EAAO,KAAI,CACf,IAAK,aACD,OAAO,OAAO,OAAO,OAAO,OAAO,GAAIw+C,CAAsB,EAAG,CAAE,CAACx+C,EAAO,UAAU,EAAGA,EAAO,cAAc,CAAE,EAClH,QACI,OAAOw+C,CACnB,CACA,CAEA,SAASqB,IAAkBhvB,EAAoB7wB,EAAQwwB,EAAanF,EAAsB,CACtF,IAAIy0B,EACJ,OAAQ9/C,EAAO,KAAI,CACf,IAAK,mBACD,OAAOqrB,EAAqB,MAAMrrB,EAAO,YAAcwwB,CAAW,EACtE,IAAK,cACD,OAAOnF,EAAqB,MAAMrrB,EAAO,UAAU,EACvD,IAAK,OAED,GADA8/C,EAAKz0B,EAAqB,UAAUwF,EAAoBL,CAAW,EAC/DsvB,EAAG,QACH,OAAOA,EAEX,MACJ,IAAK,OAED,GADAA,EAAKz0B,EAAqB,UAAUwF,EAAoBL,CAAW,EAC/DsvB,EAAG,QACH,OAAOA,EAEX,KACZ,CACI,OAAOjvB,CACX,CAEA,SAASkvB,IAAiB72B,EAAiBwO,EAAajuF,EAAS,CAC7D,IAAI6nF,EAAcoG,EAAcA,EAAY,YAAc,KAC1D,OAAOsoB,GAAW,GAAIC,IAAoB/2B,EAAiBz/E,CAAO,EAAG6nF,EAAa7nF,CAAO,CAC7F,CACA,SAASy2G,IAAmBzoB,EAAcz3B,EAAQ03B,EAAajuF,EAAS,CACpE,IAAI6nF,EAAcoG,EAAcA,EAAY,YAAc,KAC1D,OAAQ13B,EAAO,KAAI,CACf,IAAK,oBACD,OAAOggD,GAAWvoB,EAAcz3B,EAAO,QAASsxB,EAAa7nF,CAAO,EACxE,IAAK,sBACD,OAAO02G,IAAa1oB,EAAcz3B,EAAO,QAAQ,EACrD,IAAK,OACL,IAAK,OACL,IAAK,cACL,IAAK,mBACD,OAAI03B,EACO0oB,GAAkB3oB,EAAcnG,EAAa7nF,CAAO,EAExDguF,EACX,IAAK,sBACD,OAAO4oB,GAAkB5oB,EAAcz3B,EAAO,UAC1CunB,GAAYvnB,EAAO,SAAS,EAC5BsgD,GAAqB7oB,EAAchuF,CAAO,EAAG6nF,EAAatxB,EAAO,WAAa,GAAOv2D,CAAO,EACpG,IAAK,iBACL,IAAK,sBACD,OAAO82G,IAAgB9oB,EAAcz3B,EAAO,SAAUA,EAAO,QAASA,EAAO,UAAU,EAC3F,IAAK,2BACD,MAAO,CAAE,EACb,QACI,OAAOy3B,CACnB,CACA,CACA,SAAS+oB,IAA8B/oB,EAAcC,EAAajuF,EAAS,CACvE,IAAI6nF,EAAcoG,EAAcA,EAAY,YAAc,KAC1D,OAAO2oB,GAAkB5oB,EAAc6oB,GAAqB7oB,EAAchuF,CAAO,EAAG6nF,EAAa,GAAM7nF,CAAO,CAClH,CACA,SAASg3G,GAA2BhpB,EAAc,CAC9C,QAAShD,KAAYgD,EACjB,GAAIA,EAAahD,CAAQ,EAAE,WACvB,MAAO,GAGf,MAAO,EACX,CACA,SAASurB,GAAWU,EAAiBC,EAAS3oB,EAAYvuF,EAAS,CAC/D,IAAIigB,EAAO,CAAE,EACb,QAAS15B,KAAU2wH,EACfj3F,EAAK15B,EAAO,QAAQ,EAAIA,EAE5B,OAAIgoG,IACAtuE,EAAO02F,GAAkB12F,EAAMsuE,EAAYvuF,CAAO,GAE/C,OAAO,OAAO,OAAO,OAAO,GAAIi3G,CAAe,EAAGh3F,CAAI,CACjE,CACA,SAASy2F,IAAaO,EAAiBjsB,EAAU,CAC7C,OAAOtN,GAAWu5B,EAAkB7sB,GAAgBA,EAAY,WAAaY,CAAQ,CACzF,CACA,SAAS2rB,GAAkBjd,EAAYnL,EAAYvuF,EAAS,CACxD,OAAO42G,GAAkBld,EAAYhc,GAAWgc,EAAatP,GAAgB+sB,IAAc/sB,EAAamE,EAAYvuF,CAAO,CAAC,EAAGuuF,EAAY,GAAOvuF,CAAO,CAC7J,CACA,SAASm3G,IAAc/sB,EAAamE,EAAYvuF,EAAS,CACrD,OAAKo3G,GAAoBhtB,EAAapqF,CAAO,EAGtC,CAACA,EAAQ,QAAQ,cACpB,CAACoqF,EAAY,YACbA,EAAY,YACZmE,EAAW,MAAQnE,EAAY,WAAW,OAC1CmE,EAAW,IAAMnE,EAAY,WAAW,IANjC,CAACA,EAAY,aAO5B,CACA,SAASwsB,GAAkBS,EAAaC,EAAc/oB,EAAYgpB,EAAWv3G,EAAS,CAClF,IAAIw3G,EAAc,CAAE,EACpB,QAASxsB,KAAYqsB,EAAa,CAC9B,IAAI9wH,EAAS8wH,EAAYrsB,CAAQ,EAC7BssB,EAAatsB,CAAQ,EACrBwsB,EAAYxsB,CAAQ,EAAIysB,IAAYlxH,EAAQgoG,EAAYgpB,EAAWv3G,CAAO,EAG1Ew3G,EAAYxsB,CAAQ,EAAIzkG,CAEpC,CACI,OAAOixH,CACX,CACA,SAASC,IAAYrtB,EAAamE,EAAYgpB,EAAWv3G,EAAS,CAC9D,GAAI,CAAE,QAAAxY,EAAS,YAAA06F,CAAW,EAAKliF,EAC3B03G,EAAY13G,EAAQ,YAAY,gBAAgBoqF,EAAY,WAAW,EACvEkE,EAAUvc,GAAM,EACpB,OAAA2lC,EAAU,MAAM,CACZ,YAAAttB,EACA,MAAOmE,EACP,UAAAgpB,EACA,QAAAv3G,CACH,EAAGtnB,GAAQ,CACR,GAAI,CAAE,UAAAgzG,CAAS,EAAKhzG,EAChB8O,EAAQ,qBACRkkG,EAAYlkG,EAAQ,mBAAmB,KAAK06F,EAAawJ,EAAWhzG,EAAI,QAAQ,GAAKgzG,GAErFtB,EAAY,UACZsB,EAAYtB,EAAY,QAAQ,KAAKlI,EAAawJ,EAAWhzG,EAAI,QAAQ,GAAKgzG,GAElF1rF,EAAQ,SAAS,CACb,KAAM,iBACN,SAAUoqF,EAAY,SACtB,QAAAkE,EACA,WAAAC,EACA,UAAA7C,CACZ,CAAS,CACJ,EAAGpvG,GAAU,CACV,IAAIq7H,EAAe,GACfnwH,EAAQ,qBACRA,EAAQ,mBAAmB,KAAK06F,EAAa5lG,CAAK,EAClDq7H,EAAe,IAEfvtB,EAAY,UACZA,EAAY,QAAQ9tG,CAAK,EACzBq7H,EAAe,IAEdA,GACD,QAAQ,KAAKr7H,EAAM,QAASA,CAAK,EAErC0jB,EAAQ,SAAS,CACb,KAAM,sBACN,SAAUoqF,EAAY,SACtB,QAAAkE,EACA,WAAAC,EACA,MAAAjyG,CACZ,CAAS,CACT,CAAK,EACM,OAAO,OAAO,OAAO,OAAO,CAAE,EAAE8tG,CAAW,EAAG,CAAE,WAAY,GAAM,cAAekE,CAAO,CAAE,CACrG,CACA,SAASwoB,IAAgBpd,EAAY1O,EAAUsD,EAASC,EAAY,CAChE,IAAInE,EAAcsP,EAAW1O,CAAQ,EACrC,OAAIZ,GACAkE,IAAYlE,EAAY,cACjB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEsP,CAAU,EAAG,CAAE,CAAC1O,CAAQ,EAAG,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEZ,CAAW,EAAG,CAAE,WAAY,GAAO,WAAAmE,CAAY,GAAG,EAEjJmL,CACX,CACA,SAASmd,GAAqB7oB,EAAchuF,EAAS,CACjD,OAAO09E,GAAWsQ,EAAe5D,GAAgBgtB,GAAoBhtB,EAAapqF,CAAO,CAAC,CAC9F,CACA,SAASw2G,IAAoB/B,EAAYz0G,EAAS,CAC9C,IAAIm9E,EAAWwQ,GAAyB3tF,CAAO,EAC3C43G,EAAa,GAAG,OAAOnD,EAAW,cAAgB,EAAE,EACpDyC,EAAU,GACVzC,EAAW,eACXmD,EAAW,QAAQnD,EAAW,aAAa,EAE3CA,EAAW,QACXmD,EAAW,QAAQnD,EAAW,MAAM,EAExC,QAASoD,KAAaD,EAAY,CAC9B,IAAIrxH,EAASmnG,GAAiBmqB,EAAW73G,EAASm9E,CAAQ,EACtD52F,GACA2wH,EAAQ,KAAK3wH,CAAM,CAE/B,CACI,OAAO2wH,CACX,CACA,SAASE,GAAoBhtB,EAAapqF,EAAS,CAE/C,MAAO,CADIA,EAAQ,YAAY,gBAClBoqF,EAAY,WAAW,EAAE,WAC1C,CAEA,SAAS0tB,IAAoBC,EAAkBxhD,EAAQ,CACnD,OAAQA,EAAO,KAAI,CACf,IAAK,iBACD,OAAO,KACX,IAAK,eACD,OAAOA,EAAO,UAClB,QACI,OAAOwhD,CACnB,CACA,CAEA,SAASC,IAAoBC,EAAmB1hD,EAAQ,CACpD,OAAQA,EAAO,KAAI,CACf,IAAK,iBACD,MAAO,GACX,IAAK,eACD,OAAOA,EAAO,gBAClB,QACI,OAAO0hD,CACnB,CACA,CAEA,SAASC,IAAgBC,EAAa5hD,EAAQ,CAC1C,IAAI6hD,EACJ,OAAQ7hD,EAAO,KAAI,CACf,IAAK,mBACD,OAAO,KACX,IAAK,iBACD,OAAA6hD,EAAU7hD,EAAO,MACV,CACH,eAAgB6hD,EAAQ,eACxB,cAAeA,EAAQ,cACvB,QAASA,EAAQ,OACpB,EACL,QACI,OAAOD,CACnB,CACA,CAEA,SAASE,IAAkBC,EAAe/hD,EAAQ,CAC9C,IAAIgiD,EACJ,OAAQhiD,EAAO,KAAI,CACf,IAAK,qBACD,OAAO,KACX,IAAK,mBACD,OAAAgiD,EAAYhiD,EAAO,MACZ,CACH,eAAgBgiD,EAAU,eAC1B,cAAeA,EAAU,cACzB,QAASA,EAAU,OACtB,EACL,QACI,OAAOD,CACnB,CACA,CAEA,SAASE,IAAc/4B,EAAiBg5B,EAAyB32B,EAAOgX,EAAW5W,EAAa,CAC5F,IAAIjnC,EAASwkC,EAAgB,cAAgBi5B,GAAaj5B,EAAgB,cAAeA,EAAiBg5B,EAAyB32B,EAAOgX,EAAW5W,CAAW,EAAI,KAChKy2B,EAASl5B,EAAgB,cAAgBi5B,GAAaj5B,EAAgB,cAAeA,EAAiBg5B,EAAyB32B,EAAOgX,EAAW5W,CAAW,EAAI,KACpK,MAAO,CAAE,OAAAjnC,EAAQ,OAAA09D,CAAQ,CAC7B,CACA,SAASD,GAAaE,EAAgBn5B,EAAiBg5B,EAAyB32B,EAAOgX,EAAW5W,EAAa,CAC3G,IAAI22B,EAAiB,CAAE,EACnBC,EAAmB,CAAE,EACrBC,EAAW,GACf,QAASC,KAAeJ,EAAgB,CACpC,IAAIK,EAAaL,EAAeI,CAAW,EACvCE,EAAaC,IAAaF,EAAYx5B,EAAiBg5B,EAAyB32B,EAAOgX,EAAW5W,CAAW,EACjH22B,EAAeG,CAAW,EAAIE,EAAW,QACzCJ,EAAiB,KAAK,GAAGI,EAAW,gBAAgB,EACpDH,EAAWA,GAAYG,EAAW,QAC1C,CACI,MAAO,CAAE,eAAAL,EAAgB,iBAAAC,EAAkB,SAAAC,CAAU,CACzD,CAIA,SAASI,IAAaF,EAAYx5B,EAClCg5B,EACA32B,EAAOgX,EAAW5W,EAAa,CAC3B,IAAIpC,EAAQL,EAAgB,YAAc,MACtC25B,EAAwB35B,EAAgB,eAAiB,CAAE,EAC3D45B,EAA8BZ,EAAwB,YAAc,CAAE,EACtEa,EAAqB75B,EAAgB,YAAc,CAAE,EACrD85B,EAA8Bd,EAAwB,aAAe,CAAE,EACvEe,EAAsB/5B,EAAgB,aAAe,CAAE,EACvDg6B,EAAiBR,EAAaA,EAAW,MAAM,GAAG,EAAI,CAAE,EACxDH,EAAmB,CAAE,EACrBC,EAAW,GAgEf,MAAO,CAAE,QA/DKU,EAAe,IAAKC,GAAoBA,EAAe,MAAM,GAAG,EAAE,IAAK95B,GAAe,CAChG,GAAIA,IAAe,QACf,OAAAm5B,EAAW,GACJ,CAAE,WAAAn5B,CAAY,EAEzB,IAAIG,EACA0B,EACAk4B,EACAC,EACAnI,EACAoI,EAEJ,GAAK95B,EAAoBq5B,EAAsBx5B,CAAU,EACrD+5B,EAAenpC,GAAO,CACduP,EAAkB,OAClBA,EAAkB,MAAM,KAAKvP,EAAG,OAAQA,EAAIA,EAAG,MAAM,CAE5D,GACAopC,EAAa93B,EAAM,yBAAyB/B,CAAiB,KACzD65B,EAAa93B,EAAM,aAAalC,EAAYE,CAAK,KACjD2xB,EAAa1xB,EAAkB,MACpC85B,EAAa95B,EAAkB,MAAQA,EAAkB,aAEnD0B,EAAWqX,EAAUlZ,CAAU,EAAI,CACzCk5B,EAAiB,KAAKl5B,CAAU,EAChC+5B,EAAc,IAAM,CAChBz3B,EAAY,WAAWtC,CAAU,CACpC,GACA6xB,EAAahwB,EAAS,sBAClBm4B,EAAa93B,EAAM,aAAalC,EAAYE,CAAK,KACjD2xB,EAAahwB,EAAS,mBAC3B,IAAIq4B,EAAer4B,EAAS,oBACxBA,EAAS,kBACbo4B,EAAa5mC,GAAmBwO,EAAS,qBACrCA,EAAS,oBACThC,EAAgB,SAAU,CAACq6B,EAAcl6B,CAAU,EACvDk6B,CAAY,CACxB,SACiB53B,EAAYtC,CAAU,EAO3B,GANA+5B,EAAc,IAAM,CAChBz3B,EAAYtC,CAAU,EAAG,CAC5B,GACA6xB,EAAa4H,EAA4Bz5B,CAAU,KAC/Cg6B,EAAa93B,EAAM,aAAalC,EAAYE,CAAK,KACjD2xB,EAAa6H,EAAmB15B,CAAU,GAC3CA,IAAe,YAAcA,IAAe,WAAY,CACxD,IAAIm6B,EAAan6B,IAAe,WAAa,OAAS,OACtDi6B,EAAa5mC,GAAmBsmC,EAA4BQ,CAAU,GAClEP,EAAoBO,CAAU,EAAG,CACjCT,EAAmB,MAAQ,OAC3B,MACpB,EAAmBA,EAAmB15B,CAAU,CAAC,CACjD,MAEgBi6B,EAAcG,GAAY/mC,GAAmBsmC,EAA4B35B,CAAU,GAC/E45B,EAAoB55B,CAAU,EAAG,CACjC05B,EAAmBU,CAAO,GAAKA,EAC/BA,CACpB,EAAmBV,EAAmB15B,CAAU,CAAC,EAGzC,MAAO,CAAE,WAAAA,EAAY,YAAA+5B,EAAa,WAAAC,EAAY,WAAAnI,EAAY,WAAAoI,CAAY,CACzE,EAAE,EACe,iBAAAf,EAAkB,SAAAC,CAAU,CAClD,CAGA,MAAMkB,GAAS,CACX,YAAY57H,EAAM4jG,EAAgBJ,EAAS,CACvC,KAAK,KAAOxjG,EACZ,KAAK,eAAiB4jG,EACtB,KAAK,QAAUJ,CACvB,CACI,IAAI,UAAW,CACX,OAAO,KAAK,eAAc,EAAG,WACrC,CACI,IAAI,OAAQ,CACR,OAAO,KAAK,eAAc,EAAG,SACrC,CACI,IAAI,aAAc,CACd,OAAO,KAAK,QAAQ,OAAO,KAAK,iBAAiB,YAAY,YAAY,KAAK,CACtF,CACI,IAAI,WAAY,CACZ,OAAO,KAAK,QAAQ,OAAO,KAAK,iBAAiB,YAAY,YAAY,GAAG,CACpF,CACI,IAAI,cAAe,CACf,OAAO,KAAK,QAAQ,OAAO,KAAK,iBAAiB,YAAY,aAAa,KAAK,CACvF,CACI,IAAI,YAAa,CACb,OAAO,KAAK,QAAQ,OAAO,KAAK,iBAAiB,YAAY,aAAa,GAAG,CACrF,CACI,UAAUxoG,EAAM,CACZ,OAAO,KAAK,eAAc,EAAG,QAAQA,CAAI,CACjD,CACA,CAEA,IAAI6gI,IAAmB,CACnB,YAAa,GACb,UAAU98B,EAAS,CACf,OAAI,MAAM,QAAQA,EAAQ,MAAM,EACrBA,EAAQ,OAEZ,IACV,EACD,MAAMplG,EAAKmiI,EAAiB,CACxBA,EAAgB,CACZ,UAAWniI,EAAI,YAAY,IACvC,CAAS,CACJ,CACL,EACA,MAAMoiI,IAAyB1H,GAAa,CACxC,KAAM,qBACN,gBAAiB,CAACwH,GAAgB,CACtC,CAAC,EAED,IAAIG,IAAmB,CACnB,UAAUj9B,EAAS,CACf,OAAI,OAAOA,EAAQ,QAAW,WACnBA,EAAQ,OAEZ,IACV,EACD,MAAMplG,EAAKmiI,EAAiBG,EAAe,CACvC,KAAM,CAAE,QAAAz4B,GAAY7pG,EAAI,QAClBizE,EAAOjzE,EAAI,YAAY,KAC7Bk/G,IAAYjsC,EAAK,KAAK,KAAM8rC,GAA0B/+G,EAAI,MAAO6pG,CAAO,CAAC,EAAI6J,GAAcyuB,EAAgB,CAAE,UAAAzuB,CAAS,CAAE,EAAG4uB,CAAa,CAC3I,CACL,EACA,MAAMC,IAAwB7H,GAAa,CACvC,KAAM,oBACN,gBAAiB,CAAC2H,GAAgB,CACtC,CAAC,EAEKG,IAAkC,CACpC,OAAQ,OACR,YAAah+B,GACb,WAAY,OACZ,SAAU,OACV,cAAe,MACnB,EAEA,IAAIi+B,IAAiB,CACjB,UAAUr9B,EAAS,CACf,OAAIA,EAAQ,MAAQA,EAAQ,SAAW,QAAU,CAACA,EAAQ,QAC/C,CACH,IAAKA,EAAQ,IACb,OAAQ,OACR,QAASA,EAAQ,QAAU,OAAO,YAAa,EAC/C,YAAaA,EAAQ,YACrB,WAAYA,EAAQ,WACpB,SAAUA,EAAQ,SAClB,cAAeA,EAAQ,aAC1B,EAEE,IACV,EACD,MAAMplG,EAAKmiI,EAAiBG,EAAe,CACvC,KAAM,CAAE,KAAAnwF,GAASnyC,EAAI,YACf0iI,EAAgBC,IAAmBxwF,EAAMnyC,EAAI,MAAOA,EAAI,OAAO,EACrEy/G,IAAYttE,EAAK,OAAQA,EAAK,IAAKuwF,CAAa,EAAE,KAAK,CAAC,CAAChvB,EAAWl1C,CAAQ,IAAM,CAC9E2jE,EAAgB,CAAE,UAAAzuB,EAAW,SAAAl1C,EAAU,CAC1C,EAAE8jE,CAAa,CACnB,CACL,EACA,MAAMM,IAA4BlI,GAAa,CAC3C,KAAM,oBACN,oBAAqB8H,IACrB,gBAAiB,CAACC,GAAc,CACpC,CAAC,EACD,SAASE,IAAmBxwF,EAAM67D,EAAOhmF,EAAS,CAC9C,GAAI,CAAE,QAAA6hF,EAAS,QAAAr6F,CAAO,EAAKwY,EACvB66G,EACAC,EACAC,EACAC,EACA/8F,EAAS,CAAE,EACf,OAAA48F,EAAa1wF,EAAK,WACd0wF,GAAc,OACdA,EAAarzH,EAAQ,YAEzBszH,EAAW3wF,EAAK,SACZ2wF,GAAY,OACZA,EAAWtzH,EAAQ,UAEvBuzH,EAAgB5wF,EAAK,cACjB4wF,GAAiB,OACjBA,EAAgBvzH,EAAQ,eAGxB,OAAO2iC,EAAK,aAAgB,WAE5B6wF,EAAsB7wF,EAAK,YAAa,EAIxC6wF,EAAsB7wF,EAAK,aAAe,CAAE,EAEhD,OAAO,OAAOlM,EAAQ+8F,CAAmB,EACzC/8F,EAAO48F,CAAU,EAAIh5B,EAAQ,UAAUmE,EAAM,KAAK,EAClD/nE,EAAO68F,CAAQ,EAAIj5B,EAAQ,UAAUmE,EAAM,GAAG,EAC1CnE,EAAQ,WAAa,UACrB5jE,EAAO88F,CAAa,EAAIl5B,EAAQ,UAE7B5jE,CACX,CAEA,MAAMg9F,IAA4B,CAC9B,WAAYz+B,GACZ,UAAW7I,GACX,QAASA,GACT,SAAUA,GACV,WAAY6I,GACZ,SAAUA,EACd,EAEA,IAAI0+B,IAAY,CACZ,MAAM99B,EAASyE,EAAS,CACpB,GAAIzE,EAAQ,YAAcA,EAAQ,WAAaA,EAAQ,SAAWA,EAAQ,YAAcA,EAAQ,SAAU,CACtG,IAAI+9B,EAAgB,CAChB,WAAY/9B,EAAQ,YAAc,KAClC,UAAWA,EAAQ,WAAa,KAChC,QAASA,EAAQ,SAAW,KAC5B,WAAYA,EAAQ,WAAayE,EAAQ,aAAazE,EAAQ,UAAU,EAAI,KAC5E,SAAUA,EAAQ,SAAWyE,EAAQ,aAAazE,EAAQ,QAAQ,EAAI,IACzE,EACGvoE,EACJ,OAAIuoE,EAAQ,WACRvoE,EAAWuoE,EAAQ,UAEnB,CAACvoE,GAAYuoE,EAAQ,WAAaA,EAAQ,UAC1CvoE,EAAWu/D,IAAkBgJ,EAAQ,QAASA,EAAQ,SAAS,GAE5D,CACH,YAAqB,CAACA,EAAQ,WAAa,CAACA,EAAQ,QACpD,SAAAvoE,EACA,SAAUsmG,CACb,CACb,CACQ,OAAO,IACV,EACD,OAAOC,EAAU3xB,EAAc5H,EAAS,CACpC,IAAIw5B,EAAsB71B,GAAgBiE,EAAc,CAAE,MAAO2xB,EAAS,WAAY,IAAKA,EAAS,SAAU,EAC9G,OAAIC,EACOC,IAAaF,EAAS,WAAYA,EAAS,UAAWC,EAAqBx5B,CAAO,EAEtF,CAAE,CACZ,CACL,EACA,MAAM05B,IAA8B7I,GAAa,CAC7C,KAAM,yBACN,eAAgB,CAACwI,GAAS,EAC1B,cAAeD,GACnB,CAAC,EACD,SAASK,IAAaE,EAAYtmD,EAAWu0B,EAAc5H,EAAS,CAChE,IAAI45B,EAAUD,EAAa19B,GAAY09B,CAAU,EAAI,KACjDE,EAAYplF,GAAWmzD,EAAa,KAAK,EACzC8B,EAAY9B,EAAa,IACzBkyB,EAAiB,CAAE,EACvB,KAAOD,EAAYnwB,GAAW,CAC1B,IAAIqwB,GAEA,CAACH,GAAWA,EAAQC,EAAU,UAAW,MACrCxmD,EACA0mD,EAAgB/5B,EAAQ,IAAI65B,EAAWxmD,CAAS,EAGhD0mD,EAAgBF,EAEpBC,EAAe,KAAKC,CAAa,GAErCF,EAAYjnF,GAAQinF,EAAW,CAAC,CACxC,CACI,OAAOC,CACX,CAEA,MAAME,IAAsBnJ,GAAa,CACrC,KAAM,iBACN,qBAAsB,CAClB,OAAOoJ,EAAQ97G,EAAS,CACpB+7G,GAAmB,CAACD,CAAM,EAAG97G,CAAO,CACvC,EACD,aAAc+7G,EACjB,CACL,CAAC,EAID,SAASA,GAAmBtb,EAAQzgG,EAAS,CACzC,IAAIg8G,EAAiBj+B,GAAkB/9E,EAAQ,eAAc,EAAG,YAAY,EAC5E,GAAIg8G,EAAe,SAAW,GAC1Bvb,EAAO,SAAW,GAClB,MAAM,QAAQub,EAAe,CAAC,EAAE,IAAI,GACpC,MAAM,QAAQvb,EAAO,CAAC,CAAC,EAAG,CAC1BzgG,EAAQ,SAAS,CACb,KAAM,mBACN,SAAUg8G,EAAe,CAAC,EAAE,SAC5B,UAAWvb,EAAO,CAAC,CAC/B,CAAS,EACD,MACR,CACI,IAAIwb,EAAY,CAAE,EAClB,QAAS58E,KAASohE,EAAQ,CACtB,IAAIyb,EAAa,GACjB,QAASnmI,EAAI,EAAGA,EAAIimI,EAAe,OAAQjmI,GAAK,EAC5C,GAAIimI,EAAejmI,CAAC,EAAE,OAASspD,EAAO,CAClC28E,EAAe,OAAOjmI,EAAG,CAAC,EAC1BmmI,EAAa,GACb,KAChB,CAEaA,GACDD,EAAU,KAAK58E,CAAK,CAEhC,CACI,QAAS88E,KAAiBH,EACtBh8G,EAAQ,SAAS,CACb,KAAM,sBACN,SAAUm8G,EAAc,QACpC,CAAS,EAEL,QAASC,KAAYH,EACjBj8G,EAAQ,YAAY,eAAeo8G,CAAQ,CAEnD,CAEA,SAASC,IAAkBpuB,EAAajuF,EAAS,CAC7CA,EAAQ,QAAQ,QAAQ,WAAY,OAAO,OAAO,OAAO,OAAO,GAAI+2F,GAA0B9I,EAAY,YAAajuF,EAAQ,OAAO,CAAC,EAAG,CAAE,KAAMA,EAAQ,OAAO,CAAE,CAAC,CACxK,CAEA,SAASs8G,IAAiB9yB,EAAYxpF,EAAS,CAC3C,GAAI,CAAE,QAAAmhF,CAAO,EAAKnhF,EACdmhF,EAAQ,YAAY,WAAW,GAC/BA,EAAQ,QAAQ,YAAaqR,GAAehJ,EAAYxpF,CAAO,CAAC,CAExE,CAMA,MAAMu8G,IAAgB,CAClBnC,IACAG,IACAK,IACAW,IACAM,IACAnJ,GAAa,CACT,KAAM,OACN,eAAgB,CACXphH,GAAU0lH,GAA2B1lH,EAAM,YAAY,CAC3D,EACD,gBAAiB,CACb,YAAa+qH,IACb,WAAYC,GACf,CACT,CAAK,CACL,EAEA,MAAME,GAAW,CACb,YAAYC,EAAe9sC,EAAe,CACtC,KAAK,cAAgB8sC,EACrB,KAAK,cAAgB9sC,EACrB,KAAK,MAAQ,CAAE,EACf,KAAK,cAAgB,IAAID,GAAc,KAAK,MAAM,KAAK,IAAI,CAAC,CACpE,CACI,QAAQgtC,EAAM9sC,EAAO,CACjB,KAAK,MAAM,KAAK8sC,CAAI,EACpB,KAAK,cAAc,QAAQ9sC,CAAK,CACxC,CACI,MAAMlnF,EAAO,CACT,KAAK,cAAc,MAAMA,CAAK,CACtC,CACI,OAAOA,EAAOwoC,EAAO,CACjB,KAAK,cAAc,OAAOxoC,EAAOwoC,CAAK,CAC9C,CACI,OAAQ,CACJ,GAAI,CAAE,MAAAjnC,CAAK,EAAK,KAChB,KAAOA,EAAM,QAAQ,CACjB,IAAI0yH,EAAiB,CAAE,EACnBD,EACJ,KAAQA,EAAOzyH,EAAM,SACjB,KAAK,QAAQyyH,CAAI,EACjBC,EAAe,KAAKD,CAAI,EAE5B,KAAK,QAAQC,CAAc,CAC9B,CACT,CACI,QAAQD,EAAM,CACN,KAAK,eACL,KAAK,cAAcA,CAAI,CAEnC,CACI,QAAQC,EAAgB,CAChB,KAAK,eACL,KAAK,cAAcA,CAAc,CAE7C,CACA,CAGA,SAASC,IAAW3uB,EAAatM,EAAaE,EAAS,CACnD,IAAImE,EAEJ,MAAI,iBAAiB,KAAKiI,EAAY,gBAAgB,EAClDjI,EAAQiI,EAAY,aAGpBjI,EAAQiI,EAAY,YAEjBpM,EAAQ,YAAYmE,EAAM,MAAOA,EAAM,IAAK1J,GAAgBqF,EAAY,aAAek7B,IAAiB5uB,CAAW,CAAC,EAAG,CAC1H,eAAgBA,EAAY,cAC5B,iBAAkBtM,EAAY,mBACtC,CAAK,CACL,CAGA,SAASk7B,IAAiB5uB,EAAa,CACnC,GAAI,CAAE,iBAAAzF,CAAgB,EAAKyF,EAC3B,GAAIzF,IAAqB,OACrB,MAAO,CAAE,KAAM,SAAW,EAE9B,GAAIA,IAAqB,QACrB,MAAO,CAAE,KAAM,UAAW,MAAO,MAAM,EAE3C,IAAIpnD,EAAOi1C,GAAc4X,EAAY,aAAa,MAAOA,EAAY,aAAa,GAAG,EACrF,OAAI7sD,IAAS,MAAQA,EAAO,EAEjB,CAAE,KAAM,UAAW,MAAO,QAAS,IAAK,SAAW,EAGvD,CAAE,KAAM,UAAW,MAAO,OAAQ,IAAK,SAAW,CAC7D,CAIA,MAAM07E,GAAoB,CACtB,YAAYvjI,EAAO,CACf,KAAK,uBAAyBy+F,GAAQ,KAAK,uBAAuB,EAClE,KAAK,mBAAqBA,GAAQ25B,GAAkB,EACpD,KAAK,YAAc35B,GAAQi6B,EAAW,EACtC,KAAK,iBAAmBkB,IAAuB,EAC/C,KAAK,aAAen7B,GAAQ+kC,GAAc,EAC1C,KAAK,WAAa/kC,GAAQglC,GAAU,EACpC,KAAK,cAAgBhlC,GAAQwgC,GAAa,EAC1C,KAAK,eAAiBxgC,GAAQ48B,GAAc,EAC5C,KAAK,0BAA4Br8B,GAAc0kC,GAAyB,EACxE,KAAK,aAAejlC,GAAQklC,GAAY,EACxC,KAAK,iBAAmB3kC,GAAc4kC,GAAgB,EACtD,KAAK,qBAAuBnlC,GAAQolC,IAAsB1kC,EAAY,EACtE,KAAK,kBAAoBV,GAAQqlC,GAAiB,EAClD,KAAK,0BAA4B9kC,GAAc+kC,GAAyB,EACxE,KAAK,WAAatlC,GAAQ4kC,GAAU,EACpC,KAAK,QAAU,IAAIntB,GACnB,KAAK,aAAe,IAAI+sB,IAAW,KAAK,cAAc,KAAK,IAAI,EAAG,KAAK,WAAW,KAAK,IAAI,CAAC,EAC5F,KAAK,4BAA8B,CAAE,EACrC,KAAK,8BAAgC,CAAE,EACvC,KAAK,wBAA0B,CAAE,EACjC,KAAK,0BAA4B,CAAE,EACnC,KAAK,+BAAiC,CAAE,EACxC,KAAK,mBAAqB,CAAE,EAC5B,KAAK,mBAAqB,CAAE,EAC5B,KAAK,eAAiB,IAAM,KAAK,KACjC,KAAK,SAAYjmD,GAAW,CACxB,KAAK,aAAa,QAAQA,CAAM,CACnC,EACD,KAAK,MAAQh9E,EACb,KAAK,aAAa,MAAO,EACzB,IAAIw7H,EAAyB,CAAE,EAC3BwI,EAAc,KAAK,mBAAmBhkI,EAAM,gBAAiBw7H,EAAwBx7H,EAAM,WAAW,EACtGikI,EAAkBD,EAAY,gBAAgB,aAAeA,EAAY,YAAY,YACrFE,EAAkB,KAAK,uBAAuBD,EAAiBD,EAAahkI,EAAM,gBAAiBw7H,CAAsB,EAG7Hx7H,EAAM,YAAY,mBAAqB,KACvC,KAAK,QAAQ,eAAeA,EAAM,WAAW,EAC7C,KAAK,QAAQ,WAAWkkI,EAAgB,OAAO,EAC/C,IAAI12B,EAAcC,IAAeu2B,EAAY,gBAAiBA,EAAY,OAAO,EAC7EtvB,EAAcwvB,EAAgB,qBAAqB,MAAM12B,CAAW,EACnEhB,GAAoBkI,EAAY,YAAalH,CAAW,IACzDA,EAAckH,EAAY,aAAa,OAE3C,IAAIyvB,EAAkB,CAClB,QAASH,EAAY,QACrB,QAASA,EAAY,gBACrB,YAAaA,EAAY,YACzB,YAAahkI,EAAM,YACnB,SAAU,KAAK,SACf,QAAS,KAAK,QACd,eAAgB,KAAK,cACxB,EAED,QAASkK,KAAY85H,EAAY,YAAY,YACzC95H,EAASi6H,CAAe,EAG5B,IAAI1vB,EAAesoB,IAAiBiH,EAAY,gBAAiBtvB,EAAayvB,CAAe,EACzFC,EAAe,CACf,uBAAA5I,EACA,gBAAAyI,EACA,YAAAz2B,EACA,YAAAkH,EACA,cAAe,KAAK,0BAA0ByvB,CAAe,EAC7D,aAAA1vB,EACA,aAAc,CAAE,EAChB,WAAYrC,GAAuB,EACnC,qBAAsBA,GAAuB,EAC7C,cAAe,KACf,eAAgB,GAChB,UAAW,KACX,YAAa,KACb,gBAAiB,KAAK,iBAAiB+xB,CAAe,EAAE,eAC3D,EACGE,EAAkB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEF,CAAe,EAAGC,CAAY,EACpF,QAASjpE,KAAW6oE,EAAY,YAAY,SACxC,OAAO,OAAOI,EAAcjpE,EAAQ,KAAM,KAAMkpE,CAAe,CAAC,EAEhEC,GAAiBF,EAAcD,CAAe,GAC9C,KAAK,QAAQ,QAAQ,UAAW,EAAI,EAExC,KAAK,MAAQC,EACb,KAAK,WAAY,EACjB,KAAK,aAAa,OAAQ,CAClC,CACI,aAAa7I,EAAiBgJ,EAAoB,CAC9C,GAAI,CAAE,MAAAvkI,CAAK,EAAK,KACZukI,IAAuB,OACvBvkI,EAAM,gBAAkBu7H,GAGxBv7H,EAAM,gBAAkB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAGA,EAAM,iBAAmB,CAAE,GAAIu7H,CAAe,EACvG,KAAK,mBAAmB,KAAK,GAAGgJ,CAAkB,IAElDA,IAAuB,QAAaA,EAAmB,SACvD,KAAK,aAAa,QAAQ,CACtB,KAAM,SACtB,CAAa,CAEb,CACI,cAAcvnD,EAAQ,CAClB,GAAI,CAAE,MAAAh9E,EAAO,MAAA+X,EAAO,QAAA6vF,CAAS,EAAG,KAC5B4zB,EAAyBoB,IAA6B7kH,EAAM,uBAAwBilE,CAAM,EAC1FgnD,EAAc,KAAK,mBAAmBhkI,EAAM,gBAAiBw7H,EAAwBx7H,EAAM,WAAW,EACtGikI,EAAkBtH,IAAe5kH,EAAM,gBAAiBilE,CAAM,EAC9DknD,EAAkB,KAAK,uBAAuBD,EAAiBD,EAAahkI,EAAM,gBAAiBw7H,CAAsB,EAG7Hx7H,EAAM,YAAY,mBAAqB,KACvC4nG,EAAQ,eAAe5nG,EAAM,WAAW,EACxC4nG,EAAQ,WAAWs8B,EAAgB,OAAO,EAC1C,IAAIC,EAAkB,CAClB,QAASH,EAAY,QACrB,QAASA,EAAY,gBACrB,YAAaA,EAAY,YACzB,YAAahkI,EAAM,YACnB,SAAU,KAAK,SACf,QAAA4nG,EACA,eAAgB,KAAK,cACxB,EACG,CAAE,YAAA4F,EAAa,YAAAkH,CAAW,EAAK38F,EAC/B,KAAK,MAAQ,KAAK,KAAK,uBAAyBmsH,EAAgB,uBAChExvB,EAAcwvB,EAAgB,qBAAqB,MAAM12B,CAAW,GAExEA,EAAcD,IAAkBC,EAAaxwB,CAAM,EACnD03B,EAAcmoB,IAAkBnoB,EAAa13B,EAAQwwB,EAAa02B,EAAgB,oBAAoB,GAClGlnD,EAAO,OAAS,QAChBA,EAAO,OAAS,QAChB,CAACwvB,GAAoBkI,EAAY,aAAclH,CAAW,KAC1DA,EAAckH,EAAY,aAAa,OAE3C,IAAID,EAAeyoB,IAAmBnlH,EAAM,aAAcilE,EAAQ03B,EAAayvB,CAAe,EAC1Fl0B,EAAauE,IAAiBz8F,EAAM,WAAYilE,EAAQy3B,EAAcC,EAAayvB,CAAe,EAElGK,EADkB/G,GAA2BhpB,CAAY,GACd,CAACyvB,EAAgB,QAAQ,2BACnEnsH,EAAM,sBAAwBk4F,EAE/B,CAAE,kBAAAw0B,EAAmB,gBAAAjV,CAAe,EAAK,KAAK,iBAAiB2U,CAAe,EAC9EO,EAAkB,KAAK,qBAAqBjwB,CAAY,EACxDkF,EAAe,KAAK,kBAAkB6qB,EAAqB,KAAMC,EAAmBC,CAAe,EACnG17B,EAAW,CACX,uBAAAwyB,EACA,gBAAAyI,EACA,YAAAz2B,EACA,YAAAkH,EACA,aAAAD,EACA,WAAAxE,EACA,qBAAAu0B,EACA,gBAAAhV,EACA,aAAA7V,EACA,cAAe,KAAK,0BAA0BwqB,CAAe,EAC7D,cAAe5F,IAAoBxmH,EAAM,cAAeilE,CAAM,EAC9D,eAAgByhD,IAAoB1mH,EAAM,eAAgBilE,CAAM,EAChE,UAAW2hD,IAAgB5mH,EAAM,UAAWilE,CAAM,EAClD,YAAa8hD,IAAkB/mH,EAAM,YAAailE,CAAM,CAC3D,EACGqnD,EAAkB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEF,CAAe,EAAGn7B,CAAQ,EAChF,QAAS7tC,KAAW6oE,EAAY,YAAY,SACxC,OAAO,OAAOh7B,EAAU7tC,EAAQpjD,EAAOilE,EAAQqnD,CAAe,CAAC,EAEnE,IAAIM,EAAaL,GAAiBvsH,EAAOosH,CAAe,EACpDS,EAAYN,GAAiBt7B,EAAUm7B,CAAe,EAEtD,CAACQ,GAAcC,EACfh9B,EAAQ,QAAQ,UAAW,EAAI,EAE1B+8B,GAAc,CAACC,GACpBh9B,EAAQ,QAAQ,UAAW,EAAK,EAEpC,KAAK,MAAQoB,EACThpG,EAAM,UACNA,EAAM,SAASg9E,CAAM,CAEjC,CACI,YAAa,CACT,GAAI,CAAE,MAAAh9E,EAAO,MAAA+X,CAAK,EAAK,KACnB8sH,EAAU,KAAK,KACfb,EAAc,KAAK,mBAAmBhkI,EAAM,gBAAiB+X,EAAM,uBAAwB/X,EAAM,WAAW,EAC5GkkI,EAAkB,KAAK,uBAAuBnsH,EAAM,gBAAiBisH,EAAahkI,EAAM,gBAAiB+X,EAAM,sBAAsB,EACrIiJ,EAAO,KAAK,KAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,UAAW,KAAK,WAAWjJ,EAAM,YAAamsH,EAAgB,QAASF,EAAY,OAAO,EAAG,YAAahkI,EAAM,YAAa,SAAU,KAAK,SAAU,QAAS,KAAK,QAAS,eAAgB,KAAK,cAAc,EAAIgkI,CAAW,EAAGE,CAAe,EAAGnsH,CAAK,EACxT+sH,EAAiBd,EAAY,YAAY,qBACzCe,EAAqBF,GAAWA,EAAQ,gBACxCG,EAAqBhB,EAAY,gBACrC,GAAIe,GAAsBA,IAAuBC,EAAoB,CAC7DD,EAAmB,WAAaC,EAAmB,WAEnDjtH,EAAM,aAAeiJ,EAAK,aAAew8G,IAA8Bx8G,EAAK,aAAcjJ,EAAM,YAAaiJ,CAAI,EACjHjJ,EAAM,WAAaiJ,EAAK,WAAa40F,GAAsB50F,EAAK,WAAY6jH,EAAQ,QAAS7jH,EAAK,OAAO,EACzGjJ,EAAM,qBAAuBiJ,EAAK,qBAAuB40F,GAAsB50F,EAAK,qBAAsB6jH,EAAQ,QAAS7jH,EAAK,OAAO,GAE3I,QAASikH,KAAcH,GACf,KAAK,mBAAmB,QAAQG,CAAU,IAAM,IAChDF,EAAmBE,CAAU,IAAMD,EAAmBC,CAAU,IAChEH,EAAeG,CAAU,EAAED,EAAmBC,CAAU,EAAGjkH,CAAI,CAGnF,CACQ,KAAK,mBAAqB,CAAE,EACxBhhB,EAAM,QACNA,EAAM,OAAOghB,CAAI,CAE7B,CACI,mBAAmBu6G,EAAiBC,EAAwB7yB,EAAa,CAErE,GAAI,CAAC,KAAK,mBAAmB,QACzB4yB,IAAoB,KAAK,uBACzBC,IAA2B,KAAK,6BAChC,OAAO,KAAK,0BAEhB,GAAI,CAAE,eAAA0J,EAAgB,YAAA18B,EAAa,eAAAizB,EAAgB,oBAAA0J,EAAqB,MAAArhC,CAAQ,EAAG,KAAK,0BAA0By3B,EAAiBC,CAAsB,EACzJ4J,GAAmBthC,CAAK,EACxB,IAAIwE,EAAU,KAAK,aAAa48B,EAAe,SAAUA,EAAe,OAAQA,EAAe,sBAAuBA,EAAe,SAAUA,EAAe,SAAU18B,EAAa28B,EAAqBD,EAAe,qBAAqB,EAC1O3lB,EAAY,KAAK,eAAe/W,EAAY,MAAO,KAAK,sBAAuB,KAAK,6BAA8BizB,CAAc,EAChIlzB,EAAQ,KAAK,WAAW28B,EAAgB18B,CAAW,EACnDgX,EAAgB,KAAK,cAAc0lB,EAAgB,KAAK,sBAAuB38B,EAAOgX,EAAW5W,CAAW,EAChH,OAAO,KAAK,0BAA4B,CACpC,gBAAiBu8B,EACjB,YAAA18B,EACA,QAAAF,EACA,UAAAiX,EACA,MAAAhX,EACA,cAAAiX,EACA,eAAAic,EACA,oBAAqB0J,EAAoB,GAC5C,CACT,CAEI,0BAA0B5J,EAAiBC,EAAwB,CAC/D,GAAI,CAAE,QAAA6J,EAAS,OAAA9+E,CAAQ,EAAGk9C,GAAgB,CACtCP,GACAq4B,EACAC,CACZ,CAAS,EACG2J,EAAsB,KAAK,mBAAmBE,CAAO,EACrDC,EAAsBH,EAAoB,IAC1C1J,EAAiB,KAAK,YAAYl1E,GAAU4+E,EAAoB,YAAaG,CAAmB,EAAE,QAClG98B,EAAc,KAAK,iBAAiB+yB,EAAgB,SAAW,CAAE,EAAEyH,GAAa,EAChFp/B,EAAW,KAAK,+BAAiC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEZ,EAAoB,EAAGG,EAA0B,EAAGC,EAAwB,EAAGoF,EAAY,gBAAgB,EAAGA,EAAY,cAAc,EACnQ1E,EAAQ,CAAE,EACVj+F,EAAM49F,GAAgB,CACtBP,GACAu4B,EACAF,EACAC,CACZ,CAAS,EACG33B,EAAU,CAAE,EACZ0hC,EAAa,KAAK,4BAClBC,EAAiB,KAAK,8BACtBC,EAAa,GACjB,QAASR,KAAcp/H,EACf,KAAK,mBAAmB,QAAQo/H,CAAU,IAAM,KAAOp/H,EAAIo/H,CAAU,IAAMM,EAAWN,CAAU,GAAM5hC,GAA2B4hC,CAAU,GAC1IA,KAAcM,GACfliC,GAA2B4hC,CAAU,EAAEM,EAAWN,CAAU,EAAGp/H,EAAIo/H,CAAU,CAAC,GAC9EphC,EAAQohC,CAAU,EAAIO,EAAeP,CAAU,EAE1CrhC,EAASqhC,CAAU,GACxBphC,EAAQohC,CAAU,EAAIrhC,EAASqhC,CAAU,EAAEp/H,EAAIo/H,CAAU,CAAC,EAC1DQ,EAAa,IAGb3hC,EAAMmhC,CAAU,EAAIM,EAAWN,CAAU,EAGjD,OAAIQ,IACA,KAAK,4BAA8B5/H,EACnC,KAAK,8BAAgCg+F,EACrC,KAAK,sBAAwB03B,EAC7B,KAAK,6BAA+BC,GAExC,KAAK,mBAAmB,KAAK,GAAG,KAAK,kBAAkB,EACvD,KAAK,mBAAqB,CAAE,EACrB,CACH,WAAY,KAAK,4BACjB,eAAgB,KAAK,8BACrB,YAAAhzB,EACA,oBAAA28B,EACA,eAAA1J,EACA,MAAA33B,CACH,CACT,CACI,wBAAwBqb,EAAU6kB,EAAazI,EAAiBC,EAAwB,CACpF,IAAItzB,EAAW87B,EAAY,UAAU7kB,CAAQ,EAC7C,GAAI,CAACjX,EACD,MAAM,IAAI,MAAM,aAAaiX,CAAQ,2EAA2E,EAEpH,GAAI,CAAE,eAAA+lB,EAAgB,MAAAphC,GAAU,KAAK,sBAAsBoE,EAAU87B,EAAY,YAAaA,EAAY,eAAgBzI,EAAiBC,CAAsB,EACjK4J,GAAmBthC,CAAK,EACxB,IAAIuE,EAAuB,KAAK,0BAA0B,CACtD,0BAA2BH,EAAS,eAAe,0BACnD,SAAUA,EAAS,SACnB,aAAcA,EAAS,aACvB,eAAgBA,EAAS,eAAe,eACxC,QAAS87B,EAAY,QACrB,YAAa,KAAK,MAAM,YACxB,YAAakB,EAAe,YAC5B,YAAaA,EAAe,YAC5B,oBAAqBA,EAAe,oBACpC,SAAUA,EAAe,SACzB,cAAeA,EAAe,cAC9B,cAAeA,EAAe,cAC9B,WAAYA,EAAe,WAC3B,SAAUA,EAAe,SACzB,SAAUA,EAAe,IACzB,gBAAiBA,EAAe,WAChC,kBAAmBA,EAAe,aAClC,eAAgBA,EAAe,cAC3C,CAAS,EACG/8B,EAAU,KAAK,aAAagX,EAAU,KAAK,eAAgB6kB,EAAY,OAAO,EAClF,MAAO,CAAE,SAAA97B,EAAU,QAASg9B,EAAgB,qBAAA78B,EAAsB,QAAAF,CAAS,CACnF,CACI,sBAAsBD,EAAUM,EAAaizB,EAAgBF,EAAiBC,EAAwB,CAClG,IAAI31H,EAAM49F,GAAgB,CACtBP,GACAgF,EAAS,eACTuzB,EACAF,EACArzB,EAAS,gBACTszB,CACZ,CAAS,EACG53B,EAAW,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,GAAIZ,EAAoB,EAAGG,EAA0B,EAAGC,EAAwB,EAAGI,GAAoB,EAAGgF,EAAY,gBAAgB,EAAGA,EAAY,cAAc,EAClQ3E,EAAU,CAAE,EACZ0hC,EAAa,KAAK,wBAClBC,EAAiB,KAAK,0BACtBC,EAAa,GACb3hC,EAAQ,CAAE,EACd,QAASmhC,KAAcp/H,EACfA,EAAIo/H,CAAU,IAAMM,EAAWN,CAAU,GACxC5hC,GAA2B4hC,CAAU,GAClC5hC,GAA2B4hC,CAAU,EAAEp/H,EAAIo/H,CAAU,EAAGM,EAAWN,CAAU,CAAC,EAClFphC,EAAQohC,CAAU,EAAIO,EAAeP,CAAU,GAG3Cp/H,EAAIo/H,CAAU,IAAM,KAAK,4BAA4BA,CAAU,GAC9D5hC,GAA2B4hC,CAAU,GAClC5hC,GAA2B4hC,CAAU,EAAEp/H,EAAIo/H,CAAU,EAAG,KAAK,4BAA4BA,CAAU,CAAC,EACpGA,KAAc,KAAK,gCACnBphC,EAAQohC,CAAU,EAAI,KAAK,8BAA8BA,CAAU,GAGlErhC,EAASqhC,CAAU,EACxBphC,EAAQohC,CAAU,EAAIrhC,EAASqhC,CAAU,EAAEp/H,EAAIo/H,CAAU,CAAC,EAG1DnhC,EAAMmhC,CAAU,EAAIp/H,EAAIo/H,CAAU,EAEtCQ,EAAa,IAGrB,OAAIA,IACA,KAAK,wBAA0B5/H,EAC/B,KAAK,0BAA4Bg+F,GAE9B,CACH,WAAY,KAAK,wBACjB,eAAgB,KAAK,0BACrB,MAAAC,CACH,CACT,CACA,CACA,SAAS0/B,IAAe30E,EAAU62E,EAAgBC,EAAuBzZ,EAAUzqB,EAAU+G,EAAa28B,EAAqBS,EAAkB,CAC7I,IAAIr/E,EAASmyE,GAAYgN,GAAkBP,EAAoB,YAAaA,EAAoB,GAAG,EACnG,OAAO,IAAIv/B,IAAQ,CACf,eAAgB,UAChB,SAAA/2C,EACA,kBAAmB25C,EAAY,mBAC/B,OAAAjiD,EACA,sBAAAo/E,EACA,SAAAzZ,EACA,SAAAzqB,EACA,aAAc+G,EAAY,aAC1B,iBAAAo9B,CACR,CAAK,CACL,CACA,SAASnC,IAAWx1H,EAASu6F,EAAa,CACtC,IAAIq9B,EAAar9B,EAAY,aAAav6F,EAAQ,WAAW,GAAKmsH,GAClE,OAAO,IAAIyL,EAAW53H,CAAO,CACjC,CACA,SAASy1H,IAA0B1jI,EAAO,CACtC,IAAI8lI,EAA4B9lI,EAAM,2BAA6B4tG,GACnE,OAAO,IAAIk4B,EAA0B9lI,CAAK,CAC9C,CACA,SAAS2jI,IAAa7+H,EAAM4jG,EAAgBJ,EAAS,CACjD,OAAO,IAAIo4B,IAAS57H,EAAM4jG,EAAgBJ,CAAO,CACrD,CACA,SAASu7B,IAAqBpvB,EAAc,CACxC,OAAOpQ,GAAQoQ,EAAe5D,GAAgBA,EAAY,EAAE,CAChE,CACA,SAASizB,IAAkBnpB,EAAW8pB,EAAmBC,EAAiB,CACtE,IAAI/qB,EAAe,CAAE,GAAI8qB,CAAmB,EAC5C,QAASh1B,KAASkL,EAAW,CACzB,IAAIj8G,EAAMi8G,EAAUlL,CAAK,EACrB/wG,EAAI,UAAYgmI,EAAgBhmI,EAAI,QAAQ,IAC5Ci7G,EAAalK,CAAK,EAAIi1B,EAAgBhmI,EAAI,QAAQ,EAE9D,CACI,OAAOi7G,CACX,CACA,SAASiqB,IAAiBO,EAAiB,CACvC,GAAI,CAAE,QAAAl2H,CAAO,EAAKk2H,EAClB,MAAO,CACH,kBAAmBxyB,GAAc,CAC7B,QAAS1jG,EAAQ,aACjB,SAAUA,EAAQ,SAClB,cAAeA,EAAQ,mBACvB,iBAAkBA,EAAQ,sBAC1B,WAAYA,EAAQ,gBACpB,QAAS,OAAOA,EAAQ,cAAiB,UAAYA,EAAQ,aAAe,OAC5E,MAAOA,EAAQ,WACf,gBAAiBA,EAAQ,qBACzB,YAAaA,EAAQ,iBACrB,UAAWA,EAAQ,eACnB,MAAOA,EAAQ,UAElB,EAAEk2H,CAAe,EAClB,gBAAiBxyB,GAAc,CAC3B,WAAY1jG,EAAQ,iBACpB,QAAS,OAAOA,EAAQ,eAAkB,UAAYA,EAAQ,cAAgB,OAC9E,MAAOA,EAAQ,WAClB,EAAEk2H,CAAe,CACrB,CACL,CACA,SAASG,GAAiBvsH,EAAO0O,EAAS,CACtC,QAASs/G,KAAiBt/G,EAAQ,YAAY,eAC1C,GAAIs/G,EAAchuH,CAAK,EACnB,MAAO,GAGf,MAAO,EACX,CACA,SAASgsH,IAA0BI,EAAiB,CAChD,OAAO1tB,IAAmB0tB,EAAgB,QAAQ,cAAeA,CAAe,CACpF,CACA,SAASiB,GAAmBn3H,EAAS+3H,EAAU,CAC3C,QAASf,KAAch3H,EACnB,QAAQ,KAAK,mBAAmBg3H,CAAU,GACK,CAEvD,CAEA,MAAMgB,YAAuB98B,EAAc,CACvC,QAAS,CACL,IAAI3zF,EAAW,KAAK,MAAM,aAAa,IAAK0wH,GAAgB,KAAK,kBAAkBA,CAAW,CAAC,EAC/F,OAAOh8B,GAAc,MAAO,CAAE,UAAW,kBAAkB,EAAI,GAAG10F,CAAQ,CAClF,CACI,kBAAkB0wH,EAAa,CAC3B,GAAI,CAAE,MAAAlmI,CAAK,EAAK,KACZ,CAAE,MAAAuoG,GAAU,KAAK,QACjB/yF,EAAW,CAAE,EACb2wH,EAAgB,GACpB,QAASC,KAAUF,EAAa,CAC5B,GAAI,CAAE,WAAA7/B,EAAY,YAAA+5B,EAAa,WAAAlI,EAAY,WAAAmI,EAAY,WAAAC,CAAU,EAAK8F,EACtE,GAAI//B,IAAe,QACf8/B,EAAgB,GAChB3wH,EAAS,KAAK00F,GAAc,KAAM,CAAE,UAAW,mBAAoB,GAAIlqG,EAAM,OAAO,EAAIA,EAAM,KAAK,CAAC,MAEnG,CACD,IAAIqmI,EAAYhgC,IAAermG,EAAM,aACjC2X,EAAc,CAAC3X,EAAM,gBAAkBqmG,IAAe,SACrD,CAACrmG,EAAM,eAAiBqmG,IAAe,QACvC,CAACrmG,EAAM,eAAiBqmG,IAAe,OACxCigC,EAAgB,CAAC,MAAMjgC,CAAU,UAAWkC,EAAM,SAAS,QAAQ,CAAC,EACpE89B,GACAC,EAAc,KAAK/9B,EAAM,SAAS,cAAc,CAAC,EAErD/yF,EAAS,KAAK00F,GAAc,SAAU,CAAE,KAAM,SAAU,MAAO,OAAOo2B,GAAe,WAAaA,EAAWtgI,EAAM,OAAO,EAAIsgI,EAAY,SAAU3oH,EAAY,eAAgB0uH,EAAW,UAAWC,EAAc,KAAK,GAAG,EAAG,QAASlG,CAAW,EAAIlI,IAAemI,EAAan2B,GAAc,OAAQ,CAAE,UAAWm2B,EAAY,KAAM,MAAO,EAAI,GAAG,CAAC,CACvW,CACA,CACQ,GAAI7qH,EAAS,OAAS,EAAG,CACrB,IAAI+wH,EAAkBJ,GAAiB59B,EAAM,SAAS,aAAa,GAAM,GACzE,OAAO2B,GAAc,MAAO,CAAE,UAAWq8B,CAAc,EAAI,GAAG/wH,CAAQ,CAClF,CACQ,OAAOA,EAAS,CAAC,CACzB,CACA,CAEA,MAAMgxH,WAAgBr9B,EAAc,CAChC,QAAS,CACL,GAAI,CAAE,MAAA5sB,EAAO,eAAAkqD,CAAgB,EAAG,KAAK,MACjCC,EAAW,GACXC,EACAC,EACAtH,EAAiB/iD,EAAM,eACvBsqD,EAAgBvH,EAAe,OACnC,OAAIA,EAAe,MACfoH,EAAW,GACXC,EAAerH,EAAe,MAG9BqH,EAAerH,EAAe,MAE9BA,EAAe,OACfoH,EAAW,GACXE,EAAatH,EAAe,OAG5BsH,EAAatH,EAAe,IAOxBp1B,GAAc,MAAO,CAAE,UALd,CACbu8B,GAAkB,GAClB,aACAC,EAAW,iBAAmB,EACjC,EACoD,KAAK,GAAG,CAAG,EAC5D,KAAK,cAAc,QAASC,GAAgB,EAAE,EAC9C,KAAK,cAAc,SAAUE,GAAiB,EAAE,EAChD,KAAK,cAAc,MAAOD,GAAc,CAAE,EAAC,CACvD,CACI,cAAchrI,EAAKkrI,EAAc,CAC7B,GAAI,CAAE,MAAA9mI,CAAK,EAAK,KAChB,OAAQkqG,GAAc+7B,IAAgB,CAAE,IAAKrqI,EAAK,aAAckrI,EAAc,MAAO9mI,EAAM,MAAO,QAASA,EAAM,QAAS,aAAcA,EAAM,aAAc,eAAgBA,EAAM,eAAgB,cAAeA,EAAM,cAAe,cAAeA,EAAM,cAAe,QAASA,EAAM,OAAO,CAAE,CAC1S,CACA,CAEA,MAAM+mI,YAAoB59B,EAAc,CACpC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQ,CACT,eAAgB,IACnB,EACD,KAAK,SAAY5sG,GAAO,CACpB,KAAK,GAAKA,EACVyf,GAAO,KAAK,MAAM,MAAOzf,CAAE,EAC3B,KAAK,qBAAsB,CAC9B,EACD,KAAK,aAAe,IAAM,CACtB,KAAK,qBAAsB,CAC9B,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAAyD,EAAO,MAAA+X,CAAK,EAAK,KACnB,CAAE,YAAAivH,CAAW,EAAKhnI,EAClBqrG,EAAa,CACb,kBACC27B,GAAehnI,EAAM,QAAUA,EAAM,OAChC,yBACA,yBACT,EACG4+G,EAAS,GACTqoB,EAAgB,GACpB,OAAID,EACIjvH,EAAM,iBAAmB,KACzB6mG,EAAS7mG,EAAM,eAAiBivH,EAOhCC,EAAgB,GAAI,EAAID,EAAe,GAAG,IAI9CpoB,EAAS5+G,EAAM,QAAU,GAErBkqG,GAAc,MAAO,CAAE,kBAAmBlqG,EAAM,YAAa,IAAK,KAAK,SAAU,UAAWqrG,EAAW,KAAK,GAAG,EAAG,MAAO,CAAE,OAAAuT,EAAQ,cAAAqoB,CAAe,GAAIjnI,EAAM,QAAQ,CACpL,CACI,mBAAoB,CAChB,KAAK,QAAQ,iBAAiB,KAAK,YAAY,CACvD,CACI,sBAAuB,CACnB,KAAK,QAAQ,oBAAoB,KAAK,YAAY,CAC1D,CACI,sBAAuB,CACf,KAAK,IACL,KAAK,MAAM,aAEX,KAAK,SAAS,CAAE,eAAgB,KAAK,GAAG,YAAa,CAEjE,CACA,CAKA,MAAMknI,YAAsBroB,EAAY,CACpC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EACd,KAAK,eAAiB,CAAC5O,EAAIkwC,IAAU,CACjC,GAAI,CAAE,UAAAroH,CAAS,EAAK,KAChB,CAAE,QAAA2H,CAAO,EAAK3H,EACd27F,EAAMC,GAASysB,CAAK,EACxB,GAAI1sB,GACA37F,EAAU,iBAAiBm4E,EAAG,MAAM,EAAG,CAGvC,IAAImwC,EAAkB5wC,GAAeS,EAAG,OAAQ,sBAAsB,EAClE/rD,EAAMk8F,EAAkBA,EAAgB,cAAc,SAAS,EAAE,KAAO,GAC5E3gH,EAAQ,QAAQ,QAAQ,aAAc,CAClC,GAAI0gH,EACJ,MAAO,IAAI7uB,GAAUx5F,EAAU,QAAS27F,EAAI,WAAW,IAAKA,EAAI,WAAW,QAAQ,EACnF,QAASxjB,EACT,KAAMxwE,EAAQ,OAClC,CAAiB,EACGykB,GAAO,CAAC+rD,EAAG,mBACX,OAAO,SAAS,KAAO/rD,EAE3C,CACS,EACD,KAAK,QAAUqsD,GAAiBsO,EAAS,GAAI,QAAS,YACtD,KAAK,cAAc,CAC3B,CACA,CAMA,MAAMwhC,YAAsBxoB,EAAY,CACpC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EAEd,KAAK,oBAAuBtpG,GAAO,CAC3BA,IAAO,KAAK,cACZ,KAAK,eAAe,KAAM,KAAK,YAAY,CAElD,EACD,KAAK,eAAiB,CAAC06F,EAAIkwC,IAAU,CAC7BzsB,GAASysB,CAAK,IACd,KAAK,aAAeA,EACpB,KAAK,aAAa,kBAAmBlwC,EAAIkwC,CAAK,EAErD,EACD,KAAK,eAAiB,CAAClwC,EAAIkwC,IAAU,CAC7B,KAAK,eACL,KAAK,aAAe,KACpB,KAAK,aAAa,kBAAmBlwC,EAAIkwC,CAAK,EAErD,EACD,KAAK,qBAAuBzvC,IAAwBmO,EAAS,GAAI,YACjE,KAAK,eAAgB,KAAK,cAAc,CAChD,CACI,SAAU,CACN,KAAK,qBAAsB,CACnC,CACI,aAAayhC,EAAcrwC,EAAIkwC,EAAO,CAClC,GAAI,CAAE,UAAAroH,CAAS,EAAK,KAChB,CAAE,QAAA2H,CAAO,EAAK3H,EACd27F,EAAMC,GAASysB,CAAK,GACpB,CAAClwC,GAAMn4E,EAAU,iBAAiBm4E,EAAG,MAAM,IAC3CxwE,EAAQ,QAAQ,QAAQ6gH,EAAc,CAClC,GAAIH,EACJ,MAAO,IAAI7uB,GAAU7xF,EAASg0F,EAAI,WAAW,IAAKA,EAAI,WAAW,QAAQ,EACzE,QAASxjB,EACT,KAAMxwE,EAAQ,OAC9B,CAAa,CAEb,CACA,CAEA,MAAM8gH,YAAwBz+B,EAAc,CACxC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,iBAAmBrK,GAAQwJ,GAAgB,EAChD,KAAK,0BAA4BxJ,GAAQ+oC,GAAyB,EAClE,KAAK,kBAAoB/oC,GAAQgpC,GAAiB,EAClD,KAAK,UAAYh8H,GAAW,EAC5B,KAAK,UAAYA,GAAW,EAC5B,KAAK,kBAAoB,CAAE,EAE3B,KAAK,MAAQ,CACT,YAAa0rF,GAAgB,CAChC,EAGD,KAAK,6BAA+B,CAACr4E,EAAW4oH,IAAkB,CAC9D,IAAI7hC,EAAWiZ,IAAyBhgG,EAAW4oH,CAAa,EAM5DC,EALuB,CACvBT,IACAG,GACH,EAC6C,OAAO,KAAK,MAAM,YAAY,qBAAqB,EAC3D,IAAKO,GAAwB,IAAIA,EAAoB/hC,CAAQ,CAAC,EACpG,KAAK,kBAAkB/mF,EAAU,GAAG,EAAI6oH,EACxC3oB,GAAyBlgG,EAAU,GAAG,EAAI+mF,CAC7C,EACD,KAAK,+BAAkC/mF,GAAc,CACjD,IAAIgrB,EAAY,KAAK,kBAAkBhrB,EAAU,GAAG,EACpD,GAAIgrB,EAAW,CACX,QAASK,KAAYL,EACjBK,EAAS,QAAS,EAEtB,OAAO,KAAK,kBAAkBrrB,EAAU,GAAG,CAC3D,CACY,OAAOkgG,GAAyBlgG,EAAU,GAAG,CAChD,EAGD,KAAK,aAAe,IAAIq3E,GAAc,IAAM,CACxC,KAAK,MAAM,QAAQ,QAAQ,UAAW,EAAI,EAC1C,KAAK,MAAM,QAAQ,QAAQ,eAAgB,CAAE,KAAM,KAAK,MAAM,QAAS,CACnF,CAAS,EACD,KAAK,mBAAsBc,GAAO,CAC9B,GAAI,CAAE,QAAAhpF,GAAY,KAAK,MACnBA,EAAQ,oBACRgpF,EAAG,SAAW,QAEd,KAAK,aAAa,QAAQhpF,EAAQ,iBAAiB,CAE1D,CACT,CAII,QAAS,CACL,GAAI,CAAE,MAAAjO,CAAK,EAAK,KACZ,CAAE,cAAAw/G,EAAe,QAAAvxG,CAAO,EAAKjO,EAC7B6nI,EAAe,KAAK,kBAAkB7nI,EAAM,SAAUA,EAAM,YAAaA,EAAM,qBAAsBA,EAAM,YAAaghC,GAAOhhC,EAAM,QAAQ,IAAKA,EAAM,OAAO,EACnKA,EAAM,SAAS,EACX8nI,EAAY,GACZC,EAAa,GACbC,EACAhoI,EAAM,cAAgBA,EAAM,SAC5B+nI,EAAa,GAER95H,EAAQ,QAAU,KACvB65H,EAAY,GAEP75H,EAAQ,eAAiB,KAC9B85H,EAAa95H,EAAQ,cAGrB+5H,EAAkB,KAAK,IAAI/5H,EAAQ,YAAa,EAAG,EAEvD,IAAIg6H,EAAc,KAAK,iBAAiBjoI,EAAM,SAAUA,EAAM,QAASA,EAAM,QAASA,EAAM,qBAAsBA,EAAM,QAASA,EAAM,MAAOA,EAAM,YAAaA,EAAM,SAAUA,EAAM,eAAgBA,EAAM,QAASA,EAAM,YAAa,KAAK,6BAA8B,KAAK,8BAA8B,EAC3SkoI,EAAe1oB,EAAc,QAAUA,EAAc,OAAO,SAC1D,KAAK,MAAM,YACX,OACN,OAAQtV,GAAclC,GAAgB,SAAU,CAAE,MAAOigC,CAAa,EAClEzoB,EAAc,QAAWtV,GAAcs8B,GAAS,OAAO,OAAO,CAAE,IAAK,KAAK,UAAW,eAAgB,oBAAqB,MAAOhnB,EAAc,OAAQ,QAAS0oB,CAAW,EAAIL,CAAY,CAAC,EAC5L39B,GAAc68B,IAAa,CAAE,OAAQe,EAAW,OAAQC,EAAY,YAAaC,EAAiB,YAAaE,CAAa,EACxH,KAAK,WAAWloI,CAAK,EACrB,KAAK,mBAAkB,CAAE,EAC7Bw/G,EAAc,QAAWtV,GAAcs8B,GAAS,OAAO,OAAO,CAAE,IAAK,KAAK,UAAW,eAAgB,oBAAqB,MAAOhnB,EAAc,OAAQ,QAAS,EAAI,EAAEqoB,CAAY,CAAC,CAAE,CACjM,CACI,mBAAoB,CAChB,GAAI,CAAE,MAAA7nI,CAAK,EAAK,KAChB,KAAK,qBAAuBA,EAAM,YAAY,qBACzC,IAAKmoI,GAA6B,IAAIA,EAAyBnoI,CAAK,CAAC,EAC1E,OAAO,iBAAiB,SAAU,KAAK,kBAAkB,EACzD,GAAI,CAAE,gBAAAooI,GAAoBpoI,EAAM,YAChC,QAASo1D,KAAYgzE,EACjBA,EAAgBhzE,CAAQ,EAAEp1D,EAAMo1D,CAAQ,EAAGp1D,CAAK,CAE5D,CACI,mBAAmB0vB,EAAW,CAC1B,GAAI,CAAE,MAAA1vB,CAAK,EAAK,KACZ,CAAE,gBAAAooI,GAAoBpoI,EAAM,YAChC,QAASo1D,KAAYgzE,EACbpoI,EAAMo1D,CAAQ,IAAM1lC,EAAU0lC,CAAQ,GACtCgzE,EAAgBhzE,CAAQ,EAAEp1D,EAAMo1D,CAAQ,EAAGp1D,CAAK,CAGhE,CACI,sBAAuB,CACnB,OAAO,oBAAoB,SAAU,KAAK,kBAAkB,EAC5D,KAAK,aAAa,MAAO,EACzB,QAASkiH,KAAe,KAAK,qBACzBA,EAAY,QAAS,EAEzB,KAAK,MAAM,QAAQ,QAAQ,UAAU,CAC7C,CACI,oBAAqB,CACjB,GAAI,CAAE,MAAAliH,CAAK,EAAK,KACZwV,EAAWxV,EAAM,YAAY,qBAAqB,IAAKqoI,GAAuBA,EAAmBroI,CAAK,CAAC,EAC3G,OAAOkqG,GAActuF,GAAU,CAAE,EAAE,GAAGpG,CAAQ,CACtD,CACI,WAAWxV,EAAO,CACd,GAAI,CAAE,YAAAwoG,CAAW,EAAKxoG,EAClB,CAAE,SAAAkoG,CAAQ,EAAKloG,EACfo7H,EAAY,CACZ,YAAap7H,EAAM,YACnB,cAAeA,EAAM,cACrB,WAAYA,EAAM,qBAClB,aAAcA,EAAM,aACpB,cAAeA,EAAM,cACrB,eAAgBA,EAAM,eACtB,UAAWA,EAAM,UACjB,YAAaA,EAAM,YACnB,aAAcA,EAAM,aACpB,SAAUA,EAAM,QACnB,EACGo7G,EAAe,KAAK,0BAA0B5S,EAAY,qBAAqB,EACnF,QAAS6S,KAAeD,EACpB,OAAO,OAAOggB,EAAW/f,EAAY,UAAU+f,EAAWp7H,CAAK,CAAC,EAEpE,IAAIw1C,EAAgB0yD,EAAS,UAC7B,OAAQgC,GAAc10D,EAAe,OAAO,OAAO,GAAI4lF,CAAS,CAAC,CACzE,CACA,CACA,SAASqM,IAAkBv/B,EAAUwM,EAAarM,EAAsBmF,EAAajpC,EAAKmxD,EAAO,CAE7F,IAAI4S,EAAYjgC,EAAqB,MAAM9jC,EAAK,OAAW,EAAK,EAC5DgkE,EAAWlgC,EAAqB,UAAUqM,EAAalH,EAAa,EAAK,EACzEg7B,EAAWngC,EAAqB,UAAUqM,EAAalH,EAAa,EAAK,EAC7E,MAAO,CACH,MAAAkoB,EACA,aAAcxtB,EAAS,KACvB,QAASA,EAAS,WAClB,eAAgBogC,EAAU,SAAW,CAAC97B,GAAoBkI,EAAY,aAAcnwC,CAAG,EACvF,cAAegkE,EAAS,QACxB,cAAeC,EAAS,OAC3B,CACL,CAGA,SAAShB,IAA0BiB,EAAY,CAC3C,OAAOA,EAAW,IAAKC,GAAa,IAAIA,CAAU,CACtD,CAEA,MAAMC,YAAiB1pB,GAAa,CAChC,YAAY1iH,EAAIg/H,EAAkB,GAAI,CAClC,MAAO,EACP,KAAK,YAAc,GACnB,KAAK,WAAa,GAClB,KAAK,kBAAoB,CAAE,EAC3B,KAAK,sBAAwB,EAC7B,KAAK,aAAgBv+C,GAAW,CAE5B,OAAQA,EAAO,KAAI,CACf,IAAK,iBACL,IAAK,mBACD,KAAK,aAAa,SAAU,CAChD,CACS,EACD,KAAK,WAAch8D,GAAS,CACxB,KAAK,YAAcA,EACnB,KAAK,aAAa,QAAQA,EAAK,gBAAgB,aAAa,CAC/D,EACD,KAAK,oBAAsB,IAAM,CAC7B,GAAI,KAAK,YAAa,CAClB,KAAK,WAAa,GAClB,GAAI,CAAE,YAAAk/F,CAAW,EAAK,KACtBzZ,GAAU,IAAM,CACZnjF,GAAO4mF,GAAcuU,IAAc,CAAE,QAASyB,EAAY,gBAAiB,MAAOA,EAAY,MAAO,QAASA,EAAY,OAAS,EAAE,CAAC7U,EAAYuT,EAAQD,EAAcD,KACpK,KAAK,cAAcrT,CAAU,EAC7B,KAAK,UAAUuT,CAAM,EACb1U,GAAcU,GAAS,SAAU,CAAE,MAAO,KAAK,qBAAuB,EAC1EV,GAAcq9B,IAAiB,OAAO,OAAO,CAAE,aAAc5oB,EAAc,SAAUD,GAAYwB,CAAW,CAAC,CAAC,EACrH,EAAG,KAAK,EAAE,CAC/B,CAAiB,CACjB,MACqB,KAAK,aACV,KAAK,WAAa,GAClB58F,GAAO,KAAM,KAAK,EAAE,EACpB,KAAK,cAAc,EAAE,EACrB,KAAK,UAAU,EAAE,EAExB,EACD6xE,IAAkB54F,CAAE,EACpB,KAAK,GAAKA,EACV,KAAK,aAAe,IAAI45F,GAAc,KAAK,mBAAmB,EAC9D,IAAIotC,IAAoB,CACpB,gBAAAhI,EACA,YAAa,KACb,SAAU,KAAK,aACf,OAAQ,KAAK,UACzB,CAAS,CACT,CACI,QAAS,CACL,IAAIqN,EAAe,KAAK,YACnBA,EAID,KAAK,uBAAyB,EAH9B,KAAK,YAAc,GAKvB,KAAK,aAAa,QAAS,EACvBA,GACA,KAAK,WAAY,CAE7B,CACI,SAAU,CACF,KAAK,cACL,KAAK,YAAc,GACnB,KAAK,aAAa,QAAS,EAEvC,CACI,YAAa,CACTniC,GAAU,IAAM,CACZ,MAAM,WAAY,CAC9B,CAAS,CACT,CACI,eAAe/0B,EAAM,CACjB,KAAK,aAAa,MAAM,gBAAgB,EACxCA,EAAM,EACN,KAAK,aAAa,OAAO,gBAAgB,CACjD,CACI,gBAAiB,CACb,KAAK,aAAa,MAAM,gBAAgB,CAChD,CACI,iBAAkB,CACd,KAAK,aAAa,OAAO,iBAAkB,EAAI,CACvD,CACI,aAAa6pD,EAAiBgJ,EAAoB,CAC9C,KAAK,mBAAmB,aAAahJ,EAAiBgJ,CAAkB,CAChF,CACI,cAAcl5B,EAAY,CACtB,GAAI,CAAC3P,GAAc2P,EAAY,KAAK,iBAAiB,EAAG,CACpD,GAAI,CAAE,UAAAw9B,GAAc,KAAK,GACzB,QAASviC,KAAa,KAAK,kBACvBuiC,EAAU,OAAOviC,CAAS,EAE9B,QAASA,KAAa+E,EAClBw9B,EAAU,IAAIviC,CAAS,EAE3B,KAAK,kBAAoB+E,CACrC,CACA,CACI,UAAUuT,EAAQ,CACd7nB,GAAe,KAAK,GAAI,SAAU6nB,CAAM,CAChD,CACA,CC/iEO,MAAMkqB,IAAoB,CAC7B,cAAe,GACf,cAAe,GACf,OAAQ,GACR,aAAc,GACd,UAAW,EACf,ECFMC,IAAeltH,GAAgB,CACjC,MAAO,CACH,QAAS,MACZ,EACD,MAAO,CACH,MAAO,CACH,SAAU,EACV,mBAAoB,IAAI,GAC3B,CACJ,EACD,QAAS,CACL,QAAS,CACL,OAAiB,KAAM,QAC1B,EACD,aAAamtH,EAAiB,CAC1B,MAAO,CACH,GAAGA,EACH,uBAAwBC,IAAiB,KAAK,MAAM,EACpD,sBAAiC,KAAM,qBAC1C,CACJ,CACJ,EACD,QAAS,CACL,MAAMC,EAAuB,CAAE,EAC/B,UAAWpR,KAAmB,KAAK,mBAAmB,OAAM,EACxDoR,EAAqB,KAAKvkH,GAAEwkH,IAA0B,CAClD,IAAKrR,EAAgB,GACrB,gBAAAA,CAChB,CAAa,CAAC,EAEN,OAAOnzG,GAAE,MAAO,CAEZ,MAAO,CAAE,oBAAqB,KAAK,QAAQ,CAC9C,EAAEA,GAAE/I,GAAUstH,CAAoB,CAAC,CACvC,EACD,SAAU,CACN,MAAME,EAAuB,IAAIvR,IACvB,KAAM,sBAAwBuR,EAAqB,OAAO,KAAKA,CAAoB,EAC7F,MAAMljC,EAAkB,KAAK,aAAa,KAAK,OAAO,EAChDmjC,EAAW,IAAIV,IAAS,KAAK,IAAKziC,CAAe,EAC7C,KAAM,SAAWmjC,EAC3BA,EAAS,OAAQ,EACjBD,EAAqB,UAAWE,GAAuB,CACnD,KAAK,mBAAqBA,EAC1B,KAAK,WACK,KAAM,0BAA4B,EACxD,CAAS,CACJ,EACD,cAAe,CACX,KAAK,SAAS,iBACjB,EACD,SAAU,CACQ,KAAM,4BACN,KAAM,0BAA4B,GAC5C,KAAK,OAAQ,EAAC,WAAY,EAEjC,EACD,eAAgB,CACZ,KAAK,OAAQ,EAAC,QAAS,CAC1B,EACD,MAAOC,IAAa,CACxB,CAAC,EAIKJ,IAA2BttH,GAAgB,CAC7C,MAAO,CACH,gBAAiB,MACpB,EACD,QAAS,CACL,MAAMi8G,EAAkB,KAAK,gBACvBhuB,EAAe,OAAOguB,EAAgB,eAAkB,WAC1DA,EAAgB,cAAcA,EAAgB,WAAW,EACzDA,EAAgB,cACpB,OAAOnzG,GAAEjN,GAAU,CAAE,GAAIogH,EAAgB,WAAa,EAAEhuB,CAAY,CAC5E,CACA,CAAC,EAMD,SAASy/B,KAAgB,CACrB,IAAIC,EAAW,CAGX,QAAS,CACL,KAAM,GACN,QAAQv7H,EAAS,CACb,IAAIo7H,EAAW,KAAK,OAAQ,EAC5BA,EAAS,eAAgB,EACzB,IAAInjC,EAAkB,KAAK,aAAaj4F,CAAO,EAC/Co7H,EAAS,aAAanjC,CAAe,EACrC,KAAK,UACrB,CACA,CACK,EACD,QAASujC,KAAqBX,IAE1BU,EAAS,WAAWC,CAAiB,EAAE,EAAI,CACvC,KAAM,GACN,QAAQ5tI,EAAK,CAET,GAAIA,IAAQ,OAAW,CACnB,IAAIwtI,EAAW,KAAK,OAAQ,EAC5BA,EAAS,eAAgB,EACzBA,EAAS,aAAa,CAClB,CAACI,CAAiB,EAAG5tI,CAC7C,EAAuB,CAAC4tI,CAAiB,CAAC,EACtB,KAAK,UACzB,CACA,CACS,EAEL,OAAOD,CACX,CAGA,SAASP,IAAiBttI,EAAK,CAC3B,MAAM+tI,EAAS,CAAE,EACjB,UAAW9tI,KAAOD,EACd+tI,EAAOC,IAAa/tI,CAAG,CAAC,EAAID,EAAIC,CAAG,EAEvC,OAAO8tI,CACX,CACA,SAASC,IAAa56H,EAAG,CACrB,OAAOA,EACF,MAAM,GAAG,EACT,IAAI,CAAC66H,EAAMpiI,IAAUA,EAAQrJ,IAAWyrI,CAAI,EAAIA,CAAI,EACpD,KAAK,EAAE,CAChB,CACA,SAASzrI,IAAW4Q,EAAG,CACnB,OAAOA,EAAE,OAAO,CAAC,EAAE,YAAW,EAAKA,EAAE,MAAM,CAAC,CAChD,CClIA,MAAM86H,YAAkBnjB,EAAc,CAClC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,YAAcj7G,GAAW,CACtC,CACI,mBAAmBq+H,EAAkBC,EAAa,CAC9C,GAAI,CAAE,MAAA/pI,EAAO,QAAAymB,CAAO,EAAK,KACrBiuG,EAAW,CAAE,EACb7B,EAAoBD,GAAqBnsG,EAAQ,OAAO,EAC5D,OAAIqjH,GACApV,EAAS,KAAK,CACV,KAAM,SACN,IAAK,SACL,SAAU7B,EACV,MAAO,CACH,MAAO,KAAK,YACZ,eAAgB,gBAChB,WAAYiX,CACf,CACjB,CAAa,EAELpV,EAAS,KAAK,CACV,KAAM,OACN,IAAK,OACL,OAAQ,GACR,MAAO,CAAE,QAASqV,CAAa,CAC3C,CAAS,EACO7/B,GAAcoB,GAAe,CAAE,UAAW,CAAC,YAAY,EAAG,SAAU7kF,EAAQ,QAAU,EAC1FyjF,GAAc8oB,GAAkB,CAAE,OAAQ,CAAChzH,EAAM,cAAgB,CAACA,EAAM,SAAU,iBAAkBA,EAAM,SAAU,KAAM,CAAE,EAA6B,SAAU00H,CAAQ,CAAE,CAAC,CAC1L,CACI,oBAAoBoV,EAAkBC,EAAavd,EAAQwd,EAAa,CACpE,IAAIC,EAAa,KAAK,QAAQ,YAAY,eAC1C,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,8BAA8B,EAElD,GAAI,CAAE,MAAAjqI,EAAO,QAAAymB,CAAO,EAAK,KACrBosG,EAAoB,CAAC7yH,EAAM,UAAY4yH,GAAqBnsG,EAAQ,OAAO,EAC3EssG,EAAwB,CAAC/yH,EAAM,UAAY8yH,GAAyBrsG,EAAQ,OAAO,EACnFiuG,EAAW,CAAE,EACjB,OAAIoV,GACApV,EAAS,KAAK,CACV,KAAM,SACN,IAAK,SACL,SAAU7B,EACV,OAAQ,CAAC,CACD,IAAK,OACL,MAAO,KAAK,YACZ,eAAgB,gBAChB,WAAYiX,CACpC,CAAqB,CACrB,CAAa,EAELpV,EAAS,KAAK,CACV,KAAM,OACN,IAAK,OACL,OAAQ,GACR,OAAQ,CAAC,CACD,IAAK,OACL,QAASqV,CAC7B,CAAiB,CACjB,CAAS,EACGhX,GACA2B,EAAS,KAAK,CACV,KAAM,SACN,IAAK,SACL,SAAU,GACV,OAAQ,CAAC,CACD,IAAK,OACL,QAAS/B,EACjC,CAAqB,CACrB,CAAa,EAEGzoB,GAAcoB,GAAe,CAAE,UAAW,CAAC,YAAY,EAAG,SAAU7kF,EAAQ,QAAU,EAC1FyjF,GAAc+/B,EAAY,CAAE,OAAQ,CAACjqI,EAAM,cAAgB,CAACA,EAAM,SAAU,SAAUA,EAAM,SAAU,iBAAkBA,EAAM,SAAU,UAAW,CAAC,CAAE,KAAM,CAAC,CAAE,KAAMwsH,EAAQ,SAAUwd,CAAa,EAAG,GAAG,SAAUtV,CAAU,EAAC,CAC3O,CACA,CAEA,SAASwV,GAAepvB,EAAMqR,EAAQ,CAClC,IAAIge,EAAQ,CAAE,EACd,QAAS3tI,EAAI,EAAGA,EAAI2vH,EAAQ3vH,GAAK,EAC7B2tI,EAAM3tI,CAAC,EAAI,CAAE,EAEjB,QAASi+G,KAAOK,EACZqvB,EAAM1vB,EAAI,GAAG,EAAE,KAAKA,CAAG,EAE3B,OAAO0vB,CACX,CACA,SAASC,GAAoBtvB,EAAM0R,EAAQ,CACvC,IAAI6d,EAAQ,CAAE,EACd,QAAS7tI,EAAI,EAAGA,EAAIgwH,EAAQhwH,GAAK,EAC7B6tI,EAAM7tI,CAAC,EAAI,CAAE,EAEjB,QAASi+G,KAAOK,EACZuvB,EAAM5vB,EAAI,QAAQ,EAAE,KAAKA,CAAG,EAEhC,OAAO4vB,CACX,CACA,SAASC,GAAsB/xB,EAAI4T,EAAQ,CACvC,IAAIge,EAAQ,CAAE,EACd,GAAK5xB,EAKA,CACD,QAAS/7G,EAAI,EAAGA,EAAI2vH,EAAQ3vH,GAAK,EAC7B2tI,EAAM3tI,CAAC,EAAI,CACP,kBAAmB+7G,EAAG,kBACtB,QAASA,EAAG,QACZ,KAAM,CAAE,CACX,EAEL,QAASkC,KAAOlC,EAAG,KACf4xB,EAAM1vB,EAAI,GAAG,EAAE,KAAK,KAAKA,CAAG,CAExC,KAfQ,SAASj+G,EAAI,EAAGA,EAAI2vH,EAAQ3vH,GAAK,EAC7B2tI,EAAM3tI,CAAC,EAAI,KAenB,OAAO2tI,CACX,CAEA,MAAMI,GAAkCxnC,GAAgB,CACpD,KAAM,UACN,OAAQ,UACR,eAAgB,GAChB,SAAU,QACd,CAAC,EACD,SAASynC,GAAmB/vB,EAAK,CAC7B,GAAI,CAAE,QAAA9Y,CAAO,EAAK8Y,EAAI,WAAW,GACjC,OAAO9Y,IAAY,aAAgBA,IAAY,QAC3C,CAAC8Y,EAAI,WAAW,IAAI,QACpBA,EAAI,WAAaA,EAAI,SACrBA,EAAI,SACJA,EAAI,KAEZ,CAEA,MAAMgwB,WAAwBthC,EAAc,CACxC,QAAS,CACL,GAAI,CAAE,MAAAnpG,CAAK,EAAK,KAChB,OAAQkqG,GAAc0qB,GAAe,OAAO,OAAO,CAAE,EAAE50H,EAAO,CAAE,UAAW,CAAC,mBAAoB,yBAA0B,YAAY,EAAG,kBAAmBuqI,GAAiC,uBAAwBvqI,EAAM,uBAAwB,gBAAiB,CAACA,EAAM,IAAI,WAAW,IAAI,MAAQ,EAAC,CAC/S,CACA,CAEA,MAAM0qI,WAA2BvhC,EAAc,CAC3C,QAAS,CACL,GAAI,CAAE,MAAAnpG,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACd,CAAE,IAAAg0F,CAAG,EAAKz6G,EACVy7G,EAAaxtG,EAAQ,iBAAmBs8H,GACxC1V,EAAWrZ,GAAiBf,EAAKgB,EAAYh1F,EAAS,GAAMzmB,EAAM,sBAAsB,EAC5F,OAAQkqG,GAAcyqB,GAAgB,OAAO,OAAO,GAAI30H,EAAO,CAAE,MAAO,IAAK,UAAW,CAAC,mBAAoB,sBAAsB,EAAG,QAAS48G,GAAkB58G,EAAM,IAAKymB,CAAO,EAAG,iBAAkBgvG,IAAoB,SAAUZ,EAAU,WAAY,GAAO,gBAAiB,EAAO,EAAC,CACpS,CACA,CACA,SAASY,IAAmB9rB,EAAa,CACrC,OAAQO,GAActuF,GAAU,KAC5BsuF,GAAc,MAAO,CAAE,UAAW,uBAAwB,MAAO,CAAE,YAAaP,EAAY,aAAeA,EAAY,eAAiB,EAAE,EAC1IA,EAAY,UAAaO,GAAc,MAAO,CAAE,UAAW,eAAiB,EAAEP,EAAY,QAAQ,EAClGO,GAAc,MAAO,CAAE,UAAW,gBAAkB,EAAEP,EAAY,MAAM,OAASO,GAActuF,GAAU,KAAM,GAAQ,CAAC,CAAC,CACjI,CAEA,MAAM+uH,YAA0BxhC,EAAc,CAC1C,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,YAAc1K,GAAQmsC,GAAW,CAC9C,CACI,QAAS,CACL,GAAI,CAAE,MAAA5qI,CAAK,EAAK,KACZ,CAAE,QAAA6qI,EAAS,cAAAC,CAAe,EAAG,KAAK,YAAY9qI,EAAM,gBAAgB,EACxE,OAAQkqG,GAAc0sB,GAAmB,CAAE,UAAW,CAAC,sBAAsB,EAAG,YAAa52H,EAAM,YAAa,WAAYA,EAAM,WAAY,WAAYA,EAAM,WAAY,QAASA,EAAM,QAAS,QAAS6qI,EAAS,WAAYC,EAAe,eAAgB9qI,EAAM,eAAgB,aAAcA,EAAM,aAAc,cAAeA,EAAM,cAAe,eAAgB,IAAM,CAC3W,IAAI+qI,GAAqB/qI,EAAM,UAAYA,EAAM,UAAU,kBAAoB,QAC1EA,EAAM,YAAcA,EAAM,YAAY,kBAAoB,OAC3D,CAAE,EACN,OAAQkqG,GAActuF,GAAU,KAAMivH,EAAQ,IAAKpwB,GAAQ,CACvD,IAAI/H,EAAa+H,EAAI,WAAW,SAAS,WACzC,OAAQvQ,GAAc,MAAO,CAAE,UAAW,2BAA4B,IAAKwI,EAAY,MAAO,CACtF,WAAYq4B,EAAkBr4B,CAAU,EAAI,SAAW,EAC1D,GAAI83B,GAAmB/vB,CAAG,EAAKvQ,GAAcwgC,GAAoB,OAAO,OAAO,CAAE,IAAKjwB,EAAK,WAAY,GAAO,WAAY/H,IAAe1yG,EAAM,eAAgB,uBAAwB,IAASs8G,GAAW7B,EAAKz6G,EAAM,UAAU,CAAC,CAAC,EAAMkqG,GAAcugC,GAAiB,OAAO,OAAO,CAAE,IAAKhwB,EAAK,WAAY,GAAO,WAAY,GAAO,gBAAiB,GAAO,WAAY/H,IAAe1yG,EAAM,eAAgB,uBAAwB,EAAO,EAAEs8G,GAAW7B,EAAKz6G,EAAM,UAAU,CAAC,CAAC,CAAE,CAC9e,CAAiB,CAAC,CAClB,EAAe,CACf,CACA,CACA,SAAS4qI,IAAYI,EAAkB,CACnC,IAAIH,EAAU,CAAE,EACZC,EAAgB,CAAE,EACtB,QAASG,KAAaD,EAClBH,EAAQ,KAAKI,EAAU,GAAG,EACrBA,EAAU,WACXH,EAAc,KAAKG,EAAU,GAAG,EAGxC,MAAO,CAAE,QAAAJ,EAAS,cAAAC,CAAe,CACrC,CAEA,MAAMI,IAA0BnoC,GAAgB,CAAE,KAAM,QAAQ,CAAE,EAClE,MAAMooC,YAAkBzkB,EAAc,CAClC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,UAAYj7G,GAAW,EAC5B,KAAK,MAAQ,CACT,YAAa0rF,GAAgB,CAChC,EACD,KAAK,aAAgB56F,GAAO,CACxByf,GAAO,KAAK,UAAWzf,CAAE,EACzByf,GAAO,KAAK,MAAM,MAAOzf,CAAE,CAC9B,CACT,CACI,QAAS,CACL,GAAI,CAAE,QAAAkqB,EAAS,MAAAzmB,EAAO,MAAA+X,EAAO,UAAAqzH,CAAW,EAAG,KACvC,CAAE,QAAAn9H,EAAS,QAAAq6F,CAAO,EAAK7hF,EACvB,CAAE,KAAAw0B,EAAM,YAAAy5D,CAAW,EAAK10G,EAE5B,MAAMs1H,EAAet1H,EAAM,eACvBqrI,IAAwBpwF,EAAMy5D,EAAY,aAAcpM,CAAO,EACnE,OAAQ4B,GAAcirB,GAAkB,CAAE,MAAO,KAAM,MAAO,KAAK,aAAc,UAAW,CACpF,iBACA,GAAIn1H,EAAM,iBAAmB,EAChC,EAAE,QAAS,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEA,EAAM,cAAc,EAAIA,EAAM,cAAgB,CAAE,kBAAmB+X,EAAM,WAAW,EAAK,CAAE,GAAI,CAAE,KAAM,UAAY,GAAG,iBAAkBuzH,IAAgB,KAAMrwF,EAAM,YAAay5D,EAAa,WAAY10G,EAAM,WAAY,cAAeA,EAAM,cAAe,aAAcs1H,EAAc,iBAAkBt1H,EAAM,gBAAgB,EAAI,CAAC0qH,EAAc/gB,IAAiBO,GAAc,MAAO,CAAE,IAAKlqG,EAAM,WAAY,UAAW,gDAAiD,MAAO,CAAE,UAAWA,EAAM,SAAS,CAAI,EACnjBA,EAAM,gBAAmBkqG,GAAc2rB,GAAqB,CAAE,MAAO,IAAK,UAAW,CAAC,wBAAwB,EAAG,QAAS7S,GAAkBv8F,EAASw0B,EAAM,MAAM,EAAG,KAAMA,EAAM,cAAeiwF,GAAuB,CAAE,EACxN,CAACvhC,EAAY,aACR3pG,EAAM,eAAiBq1H,GAAwBpnH,CAAO,GAAKjO,EAAM,aAAgBkqG,GAAc,MAAO,CAAE,UAAW,oBAAsB,EAC1IA,GAAcwgB,EAAc,CAAE,MAAO,IAAK,UAAW,CAC7C,wBACA4K,GAAgB,wBACxC,EAAuB,QAAS,OAAO,OAAO,OAAO,OAAO,GAAItS,GAAkBv8F,EAASw0B,CAAI,CAAC,EAAG,CAAE,GAAIljC,EAAM,WAAa,GAAG,CAAC,EAAK/X,EAAM,cAE/HkqG,GAAc,MAAO,CAAE,UAAW,qBAAsB,MAAO,CAAE,WAAY,SAAY,EACrFA,GAAc,IAAK,CAAE,UAAW,uBAAuB,EAAI,GAAQ,CAAC,EAAK,OAC7EA,GAAc,MAAO,CAAE,UAAW,wBAAyB,IAAKlqG,EAAM,cAAgB,EAClFA,EAAM,UACNkqG,GAAc,MAAO,CAAE,UAAW,wBAAyB,MAAO,CAAE,UAAWlqG,EAAM,cAAiB,EAClGkqG,GAAcygC,IAAmB,CAAE,WAAY1vF,EAAM,iBAAkBj7C,EAAM,iBAAkB,QAASA,EAAM,QAAS,eAAgBorI,EAAW,aAAc,CAACprI,EAAM,cAAe,cAAeA,EAAM,cAAe,YAAaA,EAAM,YAAa,eAAgBA,EAAM,eAAgB,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,WAAYA,EAAM,UAAY,EAAC,CAAC,EACpYkqG,GAAc,MAAO,CAAE,UAAW,mBAAqB,EAAElqG,EAAM,SAAS,CAAC,CAAE,CACvF,CACA,CACA,SAASsrI,IAAetrI,EAAO,CAC3B,OAAOA,EAAM,eAAiBkqG,GAActuF,GAAU,KAAM,GAAQ,CACxE,CACA,SAASyvH,IAAwBpwF,EAAM+zD,EAAc1G,EAAS,CAC1D,KAAM,CAAE,MAAOijC,EAAc,IAAKC,CAAY,EAAGx8B,EAC3Cy8B,EAAiBvvC,GAAMsvC,EAAY,EAAE,EACrCE,EAAmBpjC,EAAQ,QAAQijC,CAAY,EAC/CI,EAAoBrjC,EAAQ,SAASijC,CAAY,EACjDK,EAAkBtjC,EAAQ,QAAQmjC,CAAc,EAChDI,EAAmBvjC,EAAQ,SAASmjC,CAAc,EAExD,MAAO,EAAEC,IAAqBE,GAAmBD,IAAsBE,KAGnE5wF,EAAK,QAAO,IAAOswF,EAAa,QAAS,GAEpCjjC,EAAQ,OAAOrtD,CAAI,IAAM,GAAKA,EAAK,UAAYuwF,EAAW,QAAO,EAC9E,CAEA,SAASM,GAAerxB,EAAK,CACzB,OAAOA,EAAI,WAAW,SAAS,WAAa,IAAMA,EAAI,QAC1D,CACA,SAASsxB,GAAetxB,EAAK,CACzB,OAAOqxB,GAAerxB,CAAG,EAAI,IAAMA,EAAI,OAC3C,CACA,SAASuxB,IAAsBlxB,EAC/BmxB,EAAcC,EAAiBpkB,EAAaqkB,EAAYC,EAAkB9f,EAAO,CAC7E,IAAI+f,EAAY,IAAIC,IAAqBC,GAAa,CAElD,IAAIC,EAAS1xB,EAAKyxB,EAAS,KAAK,EAAE,WAAW,SAAS,WAClD,IAAMA,EAAS,KAAK,MACpB,KAAOA,EAAS,KAAK,IAAM,GAE/B,OAAOJ,EAAWK,CAAM,GAAK,CACrC,CAAK,EACDH,EAAU,eAAiB,GAC3BA,EAAU,YAAcvkB,EACpBmkB,IAAiB,IAAQC,IAAoB,IAC7CG,EAAU,SAAWD,EACrBC,EAAU,eAAiB,IAEtB,OAAOJ,GAAiB,SAC7BI,EAAU,YAAcJ,EAEnB,OAAOC,GAAoB,WAChCG,EAAU,YAAcH,EACxBG,EAAU,eAAiB,IAG/B,IAAII,EAAY,CAAE,EACdC,EAAoB,CAAE,EAC1B,QAASlwI,EAAI,EAAGA,EAAIs+G,EAAK,OAAQt+G,GAAK,EAAG,CACrC,IAAIi+G,EAAMK,EAAKt+G,CAAC,EACZgwI,EAAST,GAAetxB,CAAG,EACb0xB,EAAWK,CAAM,GAChB,KACfC,EAAU,KAAK,CACX,MAAOjwI,EACP,KAAM,CACF,MAAOi+G,EAAI,SACX,IAAKA,EAAI,QAAU,CACtB,CACjB,CAAa,EAGDiyB,EAAkB,KAAKjyB,CAAG,CAEtC,CACI,IAAI0M,EAAgBklB,EAAU,QAAQI,CAAS,EAC3CE,EAAWN,EAAU,QAAS,EAC9B,CAAE,oBAAAO,EAAqB,mBAAAC,EAAoB,gBAAAC,CAAe,EAAKC,IAAWJ,EAAU7xB,EAAMwR,CAAK,EAC/F0gB,EAAW,CAAE,EACbC,EAAiB,CAAE,EAEvB,QAASxyB,KAAOiyB,EAAmB,CAC/BG,EAAmBpyB,EAAI,QAAQ,EAAE,KAAK,CAClC,IAAAA,EACA,UAAW,GACX,WAAY,GACZ,YAAa,EACb,UAAW,CACvB,CAAS,EACD,QAAS8R,EAAM9R,EAAI,SAAU8R,GAAO9R,EAAI,QAAS8R,GAAO,EACpDqgB,EAAoBrgB,CAAG,EAAE,KAAK,CAC1B,IAAK2gB,GAAWzyB,EAAK8R,EAAKA,EAAM,EAAGD,CAAK,EACxC,UAAW,GACX,WAAY,GACZ,YAAa,EACb,UAAW,CAC3B,CAAa,CAEb,CAEI,QAASC,EAAM,EAAGA,EAAMD,EAAM,OAAQC,GAAO,EACzCygB,EAAS,KAAK,CAAC,EAEnB,QAAS5lB,KAAeD,EAAe,CACnC,IAAI1M,EAAMK,EAAKsM,EAAY,KAAK,EAC5B+lB,EAAa/lB,EAAY,KAC7BylB,EAAmBM,EAAW,KAAK,EAAE,KAAK,CACtC,IAAKD,GAAWzyB,EAAK0yB,EAAW,MAAOA,EAAW,IAAK7gB,CAAK,EAC5D,UAAW,GACX,WAAY,GACZ,YAAa,EACb,UAAW,CACvB,CAAS,EACD,QAASC,EAAM4gB,EAAW,MAAO5gB,EAAM4gB,EAAW,IAAK5gB,GAAO,EAC1DygB,EAASzgB,CAAG,GAAK,EACjBqgB,EAAoBrgB,CAAG,EAAE,KAAK,CAC1B,IAAK2gB,GAAWzyB,EAAK8R,EAAKA,EAAM,EAAGD,CAAK,EACxC,UAAW,GACX,WAAY,GACZ,YAAa,EACb,UAAW,CAC3B,CAAa,CAEb,CAEI,QAASC,EAAM,EAAGA,EAAMD,EAAM,OAAQC,GAAO,EACzC0gB,EAAe,KAAKH,EAAgBvgB,CAAG,CAAC,EAE5C,MAAO,CAAE,oBAAAqgB,EAAqB,mBAAAC,EAAoB,SAAAG,EAAU,eAAAC,CAAgB,CAChF,CAEA,SAASF,IAAWK,EAAUtyB,EAAMwR,EAAO,CACvC,IAAI+gB,EAAiBC,IAAoBF,EAAU9gB,EAAM,MAAM,EAC3DsgB,EAAsB,CAAE,EACxBC,EAAqB,CAAE,EACvBC,EAAkB,CAAE,EACxB,QAASvgB,EAAM,EAAGA,EAAMD,EAAM,OAAQC,GAAO,EAAG,CAC5C,IAAItD,EAAQokB,EAAe9gB,CAAG,EAE1Bye,EAAmB,CAAE,EACrBuC,EAAgB,EAChBC,EAAmB,EACvB,QAAS/sB,KAAQwI,EAAO,CACpB,IAAIxO,EAAMK,EAAK2F,EAAK,KAAK,EACzBuqB,EAAiB,KAAK,CAClB,IAAKkC,GAAWzyB,EAAK8R,EAAKA,EAAM,EAAGD,CAAK,EACxC,UAAW,GACX,WAAY,GACZ,YAAa7L,EAAK,WAClB,UAAWA,EAAK,WAAa8sB,CAC7C,CAAa,EACDA,EAAgB9sB,EAAK,WAAaA,EAAK,SACnD,CAEQ,IAAIgtB,EAAkB,CAAE,EACxBF,EAAgB,EAChBC,EAAmB,EACnB,QAAS/sB,KAAQwI,EAAO,CACpB,IAAIxO,EAAMK,EAAK2F,EAAK,KAAK,EACrBgQ,EAAahQ,EAAK,KAAK,IAAMA,EAAK,KAAK,MAAQ,EAC/CitB,EAAajtB,EAAK,KAAK,QAAU8L,EACrCihB,GAAoB/sB,EAAK,WAAa8sB,EACtCA,EAAgB9sB,EAAK,WAAaA,EAAK,UACnCgQ,GACA+c,GAAoB/sB,EAAK,UACrBitB,GACAD,EAAgB,KAAK,CACjB,IAAKP,GAAWzyB,EAAKgG,EAAK,KAAK,MAAOA,EAAK,KAAK,IAAK6L,CAAK,EAC1D,UAAW,GACX,WAAY,GACZ,YAAa7L,EAAK,WAClB,UAAW,CACnC,CAAqB,GAGAitB,IACLD,EAAgB,KAAK,CACjB,IAAKP,GAAWzyB,EAAKgG,EAAK,KAAK,MAAOA,EAAK,KAAK,IAAK6L,CAAK,EAC1D,UAAW,GACX,WAAY,GACZ,YAAa7L,EAAK,WAClB,UAAW+sB,CAC/B,CAAiB,EACDA,EAAmB,EAEnC,CACQZ,EAAoB,KAAK5B,CAAgB,EACzC6B,EAAmB,KAAKY,CAAe,EACvCX,EAAgB,KAAKU,CAAgB,CAC7C,CACI,MAAO,CAAE,oBAAAZ,EAAqB,mBAAAC,EAAoB,gBAAAC,CAAiB,CACvE,CACA,SAASQ,IAAoBrkB,EAAOuD,EAAQ,CACxC,IAAI6gB,EAAiB,CAAE,EACvB,QAAS9gB,EAAM,EAAGA,EAAMC,EAAQD,GAAO,EACnC8gB,EAAe,KAAK,EAAE,EAE1B,QAAS5sB,KAAQwI,EACb,QAASsD,EAAM9L,EAAK,KAAK,MAAO8L,EAAM9L,EAAK,KAAK,IAAK8L,GAAO,EACxD8gB,EAAe9gB,CAAG,EAAE,KAAK9L,CAAI,EAGrC,OAAO4sB,CACX,CACA,SAASH,GAAWzyB,EAAKkzB,EAAWC,EAASthB,EAAO,CAChD,GAAI7R,EAAI,WAAakzB,GAAalzB,EAAI,UAAYmzB,EAAU,EACxD,OAAOnzB,EAEX,IAAIS,EAAaT,EAAI,WACjBP,EAAYgB,EAAW,MACvBd,EAAcnO,GAAgBiO,EAAW,CACzC,MAAOoS,EAAMqhB,CAAS,EAAE,KACxB,IAAKzyF,GAAQoxE,EAAMshB,EAAU,CAAC,EAAE,KAAM,CAAC,CAC/C,CAAK,EACD,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEnzB,CAAG,EAAG,CAAE,SAAUkzB,EAAW,QAASC,EAAU,EAAG,WAAY,CAC9F,IAAK1yB,EAAW,IAChB,GAAI,OAAO,OAAO,OAAO,OAAO,GAAIA,EAAW,EAAE,EAAG,CAAE,iBAAkB,EAAK,CAAE,EAC/E,SAAUA,EAAW,SACrB,MAAOd,CACnB,EAAW,QAASK,EAAI,SAAWL,EAAY,MAAM,QAAS,IAAKF,EAAU,MAAM,QAAO,EAAI,MAAOO,EAAI,OAASL,EAAY,IAAI,QAAS,IAAKF,EAAU,IAAI,QAAO,EAAI,CACzK,CACA,MAAMoyB,YAA4BvlB,EAAa,CAC3C,aAAc,CACV,MAAM,GAAG,SAAS,EAElB,KAAK,eAAiB,GAEtB,KAAK,YAAc,CAAE,CAC7B,CACI,QAAQ0lB,EAAW,CACf,MAAMpV,EAAa,MAAM,QAAQoV,CAAS,EACpC,CAAE,eAAAhlB,CAAc,EAAK,KACrBomB,EAAiB5mB,GAAU,CAAC,KAAK,YAAYW,GAAcX,CAAK,CAAC,EAEvE,QAASiC,EAAQ,EAAGA,EAAQzB,EAAe,OAAQyB,GAAS,EACxDzB,EAAeyB,CAAK,EAAIzB,EAAeyB,CAAK,EAAE,OAAO2kB,CAAa,EAEtE,OAAOxW,CACf,CACI,uBAAuBz2B,EAAWqmB,EAAOE,EAAe,CACpD,KAAM,CAAE,eAAAM,EAAgB,YAAAqmB,CAAW,EAAK,KAClC,CAAE,cAAA1lB,EAAe,cAAAF,EAAe,gBAAAC,CAAiB,EAAGvnB,EAE1D,GAAI,KAAK,gBAAkBwnB,EAAe,CACtC,MAAM2lB,EAAkBnmB,GAAcQ,CAAa,EACnD,GAAI,CAAC0lB,EAAYC,CAAe,EAC5B,GAAI,KAAK,eAAgB,CAErB,MAAM3mB,EAAc,OAAO,OAAO,OAAO,OAAO,GAAIgB,CAAa,EAAG,CAAE,KAAMf,GAAee,EAAc,KAAMnB,EAAM,IAAI,EAAG,EAGtH+mB,EAAgBpmB,GAAcR,CAAW,EAC/C0mB,EAAYE,CAAa,EAAI,GAC7BvmB,EAAeS,CAAa,EAAEC,CAAe,EAAIf,EACjDD,EAAc,KAAKC,CAAW,EAC9B,KAAK,WAAWgB,EAAenB,EAAOE,CAAa,CACvE,MAEoB2mB,EAAYC,CAAe,EAAI,GAC/B5mB,EAAc,KAAKiB,CAAa,CAGpD,CAEQ,MAAM,uBAAuBxnB,EAAWqmB,EAAOE,CAAa,CACpE,CACA,CAEA,MAAM8mB,WAAiBvnB,EAAc,CACjC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,WAAa,IAAIkK,GACtB,KAAK,YAAc,IAAIA,GACvB,KAAK,SAAW,IAAIA,GACpB,KAAK,eAAiB,IAAIA,GAC1B,KAAK,UAAYnlH,GAAW,EAC5B,KAAK,MAAQ,CACT,eAAgB,KAChB,iBAAkB,KAClB,WAAY,CAAE,CACjB,EACD,KAAK,aAAgByiI,GAAa,CAC1BA,GACA,KAAK,aAAa,EAAI,CAE7B,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAAluI,EAAO,MAAA+X,EAAO,QAAA0O,CAAS,EAAG,KAC5B,CAAE,QAAAxY,CAAO,EAAKwY,EACd+lG,EAASxsH,EAAM,MAAM,OACrBmuI,EAAqB/D,GAAoBpqI,EAAM,iBAAkBwsH,CAAM,EACvE4hB,EAAmBhE,GAAoBpqI,EAAM,YAAawsH,CAAM,EAChE6hB,EAAqBjE,GAAoB,KAAK,iBAAgB,EAAI5d,CAAM,EACxE8hB,EAAkBlE,GAAoB,KAAK,cAAa,EAAI5d,CAAM,EAClE,CAAE,oBAAAogB,EAAqB,mBAAAC,EAAoB,SAAAG,EAAU,eAAAC,CAAc,EAAKjB,IAAsBnxB,GAAc76G,EAAM,YAAaiO,EAAQ,UAAU,EAAGjO,EAAM,aAAcA,EAAM,gBAAiBiO,EAAQ,iBAAkB8J,EAAM,WAAYA,EAAM,iBAAkB/X,EAAM,KAAK,EAC9Q+qI,EACF/qI,EAAM,WAAaA,EAAM,UAAU,mBAChCA,EAAM,aAAeA,EAAM,YAAY,mBACxC,CAAE,EACN,OAAQkqG,GAAc,KAAM,CAAE,IAAK,KAAK,UAAW,KAAM,KAAO,EAC5DlqG,EAAM,aAAeA,EAAM,YAAa,EACxCA,EAAM,MAAM,IAAI,CAACuuI,EAAMhiB,IAAQ,CAC3B,IAAIiiB,EAAgB,KAAK,aAAajiB,EAAKvsH,EAAM,SAAW4sI,EAAoBrgB,CAAG,EAAIsgB,EAAmBtgB,CAAG,EAAGvsH,EAAM,WAAY+qI,CAAiB,EAC/I0D,EAAgB,KAAK,aAAaliB,EAAKmiB,IAAsBJ,EAAgB/hB,CAAG,EAAGsgB,CAAkB,EAAG7sI,EAAM,WAAY,CAAE,EAAE,EAAQA,EAAM,UAAY,EAAQA,EAAM,YAAc,EAAK,EAC7L,OAAQkqG,GAAcihC,IAAW,CAAE,IAAKoD,EAAK,IAAK,MAAO,KAAK,WAAW,UAAUA,EAAK,GAAG,EAAG,WAAY,KAAK,YAAY,UAAUA,EAAK,GAAG,EAA4E,YAAavuI,EAAM,YAAa,KAAMuuI,EAAK,KAAM,cAAevuI,EAAM,eAAgB,eAAgBA,EAAM,iBAAmBusH,IAAQ,EAAG,YAAavsH,EAAM,gBAA4E,WAAYA,EAAM,WAAY,eAAgBA,EAAM,eAAgB,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,iBAAkBuuI,EAAK,iBAAkB,eAAgBA,EAAK,eAAgB,gBAAiBA,EAAK,gBAAiB,cAAeA,EAAK,cAAe,QAASvB,EAASzgB,CAAG,EAAG,cAAe0gB,EAAe1gB,CAAG,EAAG,iBAAkBqgB,EAAoBrgB,CAAG,EAAG,eAAgB,KAAK,SAAS,UAAUgiB,EAAK,GAAG,EAAG,UACj3BrkC,GAActuF,GAAU,KACpBsuF,GAActuF,GAAU,KAAM4yH,CAAa,EAC3CtkC,GAActuF,GAAU,KAAM6yH,CAAa,CAAC,EAAI,UACpDvkC,GAActuF,GAAU,KACpB,KAAK,eAAeyyH,EAAmB9hB,CAAG,EAAG,WAAW,EACxD,KAAK,eAAe4hB,EAAmB5hB,CAAG,EAAG,cAAc,EAC3D,KAAK,eAAe6hB,EAAiB7hB,CAAG,EAAG,UAAU,CAAC,EAAI,UAAWvsH,EAAM,cAAe,CAClH,CAAa,CAAC,CACd,CACI,mBAAoB,CAChB,KAAK,aAAa,EAAI,EACtB,KAAK,QAAQ,iBAAiB,KAAK,YAAY,CACvD,CACI,mBAAmB0vB,EAAWi/G,EAAW,CACrC,IAAIC,EAAe,KAAK,MACxB,KAAK,aAAa,CAACzvC,GAAazvE,EAAWk/G,CAAY,CAAC,CAChE,CACI,sBAAuB,CACnB,KAAK,QAAQ,oBAAoB,KAAK,YAAY,CAC1D,CACI,kBAAmB,CACf,GAAI,CAAE,MAAA5uI,CAAK,EAAK,KAChB,OAAIA,EAAM,WAAaA,EAAM,UAAU,KAAK,OACjCA,EAAM,UAAU,KAEvBA,EAAM,aAAeA,EAAM,YAAY,KAAK,OACrCA,EAAM,YAAY,KAEtBA,EAAM,iBACrB,CACI,eAAgB,CACZ,GAAI,CAAE,MAAAA,CAAK,EAAK,KAChB,OAAIA,EAAM,aAAeA,EAAM,YAAY,KAAK,OACrCA,EAAM,YAAY,KAEtB,CAAE,CACjB,CACI,aAAausH,EAAKsiB,EAAetyB,EAAYwuB,EAAmB+D,EAAYC,EAAYC,EAAiB,CACrG,GAAI,CAAE,QAAAvoH,CAAO,EAAK,KACd,CAAE,eAAAwoH,GAAmB,KAAK,MAC1B,CAAE,eAAAC,GAAmB,KAAK,MAC1BvzB,EAAyB,KAAK,MAAM,MAAM,SAAW,EACrDwzB,EAAWL,GAAcC,GAAcC,EACvCI,EAAQ,CAAE,EACd,GAAIF,EACA,QAASjE,KAAa4D,EAAe,CACjC,GAAI,CAAE,IAAAp0B,CAAG,EAAKwwB,EACV,CAAE,WAAAv4B,CAAU,EAAK+H,EAAI,WAAW,SAChC40B,EAAYpE,EAAU,WAAa,CAACF,EAAkBr4B,CAAU,EAChE+d,EAAawa,EAAU,WACvBzkB,EAAO,GACP8oB,EAAQ,GACR7e,IACIhqG,EAAQ,OACR6oH,EAAQ,EACR9oB,EAAO0oB,EAAe,MAAMz0B,EAAI,OAAO,EAAIy0B,EAAe,MAAMz0B,EAAI,QAAQ,IAG5E+L,EAAO,EACP8oB,EAAQJ,EAAe,OAAOz0B,EAAI,QAAQ,EAAIy0B,EAAe,OAAOz0B,EAAI,OAAO,IAOvF20B,EAAM,KAAKllC,GAAc,MAAO,CAAE,UAAW,4BAA8BumB,EAAa,gCAAkC,IAAK,IAAKqb,GAAerxB,CAAG,EAAG,IAAK00B,EAAW,KAAO,KAAK,eAAe,UAAUpD,GAAetxB,CAAG,CAAC,EAAG,MAAO,CACnO,WAAY40B,EAAY,GAAK,SAC7B,UAAW5e,EAAa,GAAKwa,EAAU,UACvC,IAAKxa,EAAawa,EAAU,YAAc,GAC1C,KAAAzkB,EACA,MAAA8oB,CACxB,GAAyB9E,GAAmB/vB,CAAG,EAAKvQ,GAAcwgC,GAAoB,OAAO,OAAO,CAAE,IAAKjwB,EAAK,WAAYq0B,EAAY,WAAYp8B,IAAeu8B,EAAgB,uBAAwBtzB,GAA0BW,GAAW7B,EAAK8B,CAAU,CAAC,CAAC,EAAMrS,GAAcugC,GAAiB,OAAO,OAAO,CAAE,IAAKhwB,EAAK,WAAYq0B,EAAY,WAAYC,EAAY,gBAAiBC,EAAiB,WAAYt8B,IAAeu8B,EAAgB,uBAAwBtzB,CAAwB,EAAEW,GAAW7B,EAAK8B,CAAU,CAAC,CAAC,CAAE,CAAC,CAC9gB,CAEQ,OAAO6yB,CACf,CACI,eAAet0B,EAAM8a,EAAU,CAC3B,GAAI,CAAE,MAAArvB,GAAU,KAAK,QACjB,CAAE,WAAAgW,GAAe,KAAK,MACtB,CAAE,eAAA2yB,GAAmB,KAAK,MAC1BE,EAAQ,CAAE,EACd,GAAIF,EACA,QAASz0B,KAAOK,EAAM,CAClB,IAAIy0B,EAAehpC,EAAQ,CACvB,MAAO,EACP,KAAM2oC,EAAe,MAAMz0B,EAAI,OAAO,EAAIy0B,EAAe,MAAMz0B,EAAI,QAAQ,CAC/F,EAAoB,CACA,KAAM,EACN,MAAOy0B,EAAe,OAAOz0B,EAAI,QAAQ,EAAIy0B,EAAe,OAAOz0B,EAAI,OAAO,CACjF,EACD20B,EAAM,KAAKllC,GAAc,MAAO,CAAE,IAAKyS,GAAmBlC,EAAI,UAAU,EAAG,UAAW,wBAAyB,MAAO80B,CAAY,EAAI3Z,IAAa,WAC/I1rB,GAAcsrB,GAAS,OAAO,OAAO,CAAE,IAAK/a,CAAG,EAAI6B,GAAW7B,EAAK8B,CAAU,CAAC,CAAC,EAC/EoZ,GAAWC,CAAQ,CAAC,CAAC,CACzC,CAEQ,OAAO1rB,GAActuF,GAAU,CAAE,EAAE,GAAGwzH,CAAK,CACnD,CACI,aAAaI,EAAwB,CACjC,GAAI,CAAE,MAAAxvI,EAAO,MAAA+X,EAAO,YAAA03H,CAAa,EAAG,KACpC,GAAI,CAACzvI,EAAM,UACPA,EAAM,cAAgB,KACxB,CACE,GAAIwvI,EAAwB,CACxB,IAAIE,EAAW1vI,EAAM,MAAM,IAAKuuI,GAASkB,EAAY,WAAWlB,EAAK,GAAG,CAAC,EACzE,GAAImB,EAAS,OAAQ,CACjB,IAAItqB,EAAW,KAAK,UAAU,QAC1BuqB,EAAmB,IAAIxqB,GAAcC,EAAUsqB,EAAU,GAC7D,EAAK,GACD,CAAC33H,EAAM,gBAAkB,CAACA,EAAM,eAAe,UAAU43H,CAAgB,IACzE,KAAK,SAAS,CACV,eAAgB,IAAIxqB,GAAcC,EAAUsqB,EAAU,GACtD,EAAK,CACjC,CAAyB,CAEzB,CACA,CACY,MAAME,EAAgB,KAAK,MAAM,WAC3BC,EAAgB,KAAK,gBAAiB,EACtCC,EAAuB9vI,EAAM,eAAiB,IAAQA,EAAM,kBAAoB,GACtF,KAAK,aAAa,CAId,WAAY,OAAO,OAAO,OAAO,OAAO,GAAI4vI,CAAa,EAAGC,CAAa,EACzE,iBAAkBC,EAAuB,KAAK,wBAAyB,EAAG,IAC1F,CAAa,CACb,CACA,CACI,iBAAkB,CACd,IAAIC,EAAW,KAAK,eAAe,WAC/B5D,EAAa,CAAE,EAEnB,QAASK,KAAUuD,EAAU,CACzB,IAAInxB,EAAS,KAAK,MAAMmxB,EAASvD,CAAM,EAAE,sBAAuB,EAAC,MAAM,EACvEL,EAAWK,CAAM,EAAI,KAAK,IAAIL,EAAWK,CAAM,GAAK,EAAG5tB,CAAM,CACzE,CACQ,OAAOutB,CACf,CACI,yBAA0B,CACtB,IAAI6D,EAAW,KAAK,MAAM,MAAM,CAAC,EAAE,IAC/Bj2C,EAAS,KAAK,WAAW,WAAWi2C,CAAQ,EAC5CC,EAAgB,KAAK,SAAS,WAAWD,CAAQ,EACrD,OAAOj2C,EAAO,sBAAuB,EAAC,OAASk2C,EAAc,sBAAqB,EAAG,GAC7F,CACI,YAAa,CACT,IAAIC,EAAQ,KAAK,WAAW,WAC5B,OAAO,KAAK,MAAM,MAAM,IAAK3B,GAAS2B,EAAM3B,EAAK,GAAG,CAAC,CAC7D,CACA,CACAN,GAAS,iBAAiB,CACtB,WAAY9uC,EAChB,CAAC,EACD,SAASuvC,IAAsByB,EAAYC,EAAe,CACtD,GAAI,CAACD,EAAW,OACZ,MAAO,CAAE,EAEb,IAAIE,EAAmBC,IAAqBF,CAAa,EACzD,OAAOD,EAAW,IAAK11B,IAAS,CAC5B,IAAAA,EACA,UAAW,GACX,WAAY,GACZ,YAAa41B,EAAiB51B,EAAI,WAAW,SAAS,UAAU,EAChE,UAAW,CACnB,EAAM,CACN,CACA,SAAS61B,IAAqBF,EAAe,CACzC,IAAIC,EAAmB,CAAE,EACzB,QAASE,KAAcH,EACnB,QAASnF,KAAasF,EAClBF,EAAiBpF,EAAU,IAAI,WAAW,SAAS,UAAU,EAAIA,EAAU,YAGnF,OAAOoF,CACX,CAEA,MAAMG,YAAkB9pB,EAAc,CAClC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,sBAAwBjoB,GAAQyrC,EAAc,EACnD,KAAK,iBAAmBzrC,GAAQyrC,EAAc,EAC9C,KAAK,iBAAmBzrC,GAAQyrC,EAAc,EAC9C,KAAK,uBAAyBzrC,GAAQyrC,EAAc,EACpD,KAAK,eAAiBzrC,GAAQ6rC,EAAqB,EACnD,KAAK,iBAAmB7rC,GAAQ6rC,EAAqB,EACrD,KAAK,QAAU,IAAI1Z,EAC3B,CACI,QAAS,CACL,GAAI,CAAE,MAAA5wH,EAAO,QAAAymB,CAAO,EAAK,KACrB0lG,EAASnsH,EAAM,MAAM,OACrBywI,EAAwB,KAAK,sBAAsBzwI,EAAM,iBAAkBmsH,CAAM,EACjFukB,EAAmB,KAAK,iBAAiB1wI,EAAM,YAAamsH,CAAM,EAClEwkB,EAAmB,KAAK,iBAAiB3wI,EAAM,YAAamsH,CAAM,EAClEykB,EAAyB,KAAK,uBAAuB5wI,EAAM,kBAAmBmsH,CAAM,EACpF0kB,EAAiB,KAAK,eAAe7wI,EAAM,UAAWmsH,CAAM,EAC5D2kB,EAAmB,KAAK,iBAAiB9wI,EAAM,YAAamsH,CAAM,EAGlE4kB,EAAiB5kB,GAAU,GAAKnsH,EAAM,YACtCA,EAAM,YAAcymB,EAAQ,QAAQ,YAAc,EAClD,KACJ,OAAQyjF,GAAcygB,GAAU,CAAE,KAAM,KAAK,EAAI,CAACnO,EAASD,IAAgBrS,GAActuF,GAAU,KAAM5b,EAAM,MAAM,IAAI,CAACssH,EAAOD,IAASniB,GAAc+jC,GAAU,CAAE,IAAK,KAAK,QAAQ,UAAU5hB,CAAG,EAAG,IAAKC,EAAM,OACvMA,EAAM,CAAC,EAAE,KAAK,YAAa,EAC3BD,EACJ,eAAgBF,EAAS,EAAG,gBAAiBnsH,EAAM,gBAAiB,WAAYu8G,EAAY,YAAav8G,EAAM,YAAa,MAAOssH,EAAO,YAAatsH,EAAM,eAAgB,iBAAkBywI,EAAsBpkB,CAAG,EAAG,eAAgBrsH,EAAM,eAAgB,YAAa0wI,EAAiBrkB,CAAG,EAAE,OAAO2kB,GAAW,EAAc,YAAaL,EAAiBtkB,CAAG,EAAG,kBAAmBukB,EAAuBvkB,CAAG,EAAG,UAAWwkB,EAAexkB,CAAG,EAAG,YAAaykB,EAAiBzkB,CAAG,EAAG,aAAcrsH,EAAM,aAAc,gBAAiBA,EAAM,gBAAiB,YAAaA,EAAM,YAAa,aAAcA,EAAM,aAAc,cAAe+wI,EAAe,SAAU/wI,EAAM,QAAU,EAAE,CAAC,CAAE,CACnrB,CACI,mBAAoB,CAChB,KAAK,6BAA8B,CAC3C,CACI,oBAAqB,CAEjB,KAAK,6BAA8B,CAC3C,CACI,8BAA+B,CAC3B,GAAI,CAAC,KAAK,OAAQ,CAGd,MAAMixI,EAAc,KAAK,QAAQ,WAAW,CAAC,EAAE,WAAY,EAAC,CAAC,EACvD5a,EAAS4a,EAAcA,EAAY,QAAQ,kBAAkB,EAAI,KACnE5a,IACA,KAAK,OAASA,EACd,KAAK,QAAQ,6BAA6B,KAAM,CAC5C,GAAIA,EACJ,kBAAmB,KAAK,MAAM,iBAClD,CAAiB,EAEjB,CACA,CACI,sBAAuB,CACf,KAAK,SACL,KAAK,QAAQ,+BAA+B,IAAI,EAChD,KAAK,OAAS,KAE1B,CAGI,aAAc,CACV,KAAK,aAAe,IAAIlR,GAAc,KAAK,OAAQ,KAAK,QAAQ,QAAO,EAAG,IAAK+rB,GAAWA,EAAO,WAAU,EAAG,CAAC,CAAC,EAChH,GAAO,EAAI,EACX,KAAK,aAAe,IAAI/rB,GAAc,KAAK,OAAQ,KAAK,QAAQ,WAAW,CAAC,EAAE,WAAY,EAC1F,GACA,EAAK,CACb,CACI,SAASwB,EAAcC,EAAa,CAChC,GAAI,CAAE,aAAAuqB,EAAc,aAAAC,CAAY,EAAK,KACjC7kB,EAAM4kB,EAAa,YAAYxqB,CAAY,EAC3C0F,EAAM+kB,EAAa,WAAWxqB,CAAW,EAC7C,GAAIyF,GAAO,MAAQE,GAAO,KAAM,CAC5B,IAAIgiB,EAAO,KAAK,MAAM,MAAMliB,CAAG,EAAEE,CAAG,EACpC,MAAO,CACH,YAAa,KAAK,MAAM,YACxB,SAAU,OAAO,OAAO,CAAE,MAAO,KAAK,aAAaF,EAAKE,CAAG,EAAG,OAAQ,EAAI,EAAIgiB,EAAK,aAAa,EAChG,MAAO,KAAK,UAAUliB,EAAKE,CAAG,EAC9B,KAAM,CACF,KAAM4kB,EAAa,MAAM5kB,CAAG,EAC5B,MAAO4kB,EAAa,OAAO5kB,CAAG,EAC9B,IAAK6kB,EAAa,KAAK/kB,CAAG,EAC1B,OAAQ+kB,EAAa,QAAQ/kB,CAAG,CACnC,EACD,MAAO,CACV,CACb,CACQ,OAAO,IACf,CACI,UAAUA,EAAKE,EAAK,CAChB,OAAO,KAAK,QAAQ,WAAWF,CAAG,EAAE,WAAU,EAAGE,CAAG,CAC5D,CACI,aAAaF,EAAKE,EAAK,CACnB,IAAIl7G,EAAQ,KAAK,MAAM,MAAMg7G,CAAG,EAAEE,CAAG,EAAE,KACnCj7G,EAAM4pC,GAAQ7pC,EAAO,CAAC,EAC1B,MAAO,CAAE,MAAAA,EAAO,IAAAC,CAAK,CAC7B,CACA,CACA,SAAS0/H,IAAYv2B,EAAK,CACtB,OAAOA,EAAI,WAAW,IAAI,MAC9B,CAEA,MAAM42B,YAAc3qB,EAAc,CAC9B,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,MAAQj7G,GAAW,EACxB,KAAK,iBAAmB,EAChC,CACI,QAAS,CACL,GAAI,CAAE,MAAAzL,CAAK,EAAK,KACZ,CAAE,gBAAAksI,EAAiB,aAAAD,EAAc,WAAApa,CAAY,EAAG7xH,EAChDsxI,EAAmBrF,IAAiB,IAAQC,IAAoB,GAGhEoF,GAAoB,CAACzf,IACrByf,EAAmB,GACnBpF,EAAkB,KAClBD,EAAe,MAEnB,IAAI5gC,EAAa,CACb,kBACAimC,EAAmB,2BAA6B,6BAChDzf,EAAa,GAAK,yBACrB,EACD,OAAQ3nB,GAAc,MAAO,CAAE,IAAK,KAAK,MAAO,UAAWmB,EAAW,KAAK,GAAG,EAAG,MAAO,CAGhF,MAAOrrG,EAAM,YACb,SAAUA,EAAM,aAChC,CAAe,EACHkqG,GAAc,QAAS,CAAE,KAAM,eAAgB,UAAW,2BAA4B,MAAO,CACrF,MAAOlqG,EAAM,YACb,SAAUA,EAAM,cAChB,OAAQ6xH,EAAa7xH,EAAM,aAAe,EAC9D,CAAmB,EACHA,EAAM,aACNkqG,GAAc,QAAS,CAAE,KAAM,cAAgB,EAC3CA,GAAcsmC,IAAW,CAAE,YAAaxwI,EAAM,YAAa,MAAOA,EAAM,MAAO,eAAgBA,EAAM,eAAgB,gBAAiBA,EAAM,gBAAiB,YAAaA,EAAM,YAAa,aAAcA,EAAM,aAAc,iBAAkBA,EAAM,iBAAkB,YAAaA,EAAM,YAAa,YAAaA,EAAM,YAAa,kBAAmBA,EAAM,kBAAmB,eAAgBA,EAAM,eAAgB,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,aAAcisI,EAAc,gBAAiBC,EAAiB,SAAUlsI,EAAM,SAAU,kBAAmBA,EAAM,iBAAmB,EAAC,CAAC,CAAC,CAClnB,CACI,mBAAoB,CAChB,KAAK,mBAAoB,CACjC,CACI,mBAAmB0vB,EAAW,CACtBA,EAAU,cAAgB,KAAK,MAAM,YACrC,KAAK,mBAAoB,EAGzB,KAAK,iBAAkB,CAEnC,CACI,oBAAqB,CACjB,KAAK,iBAAmB,GACxB,KAAK,iBAAkB,CAC/B,CACI,kBAAmB,CACf,GAAI,KAAK,kBACL,KAAK,MAAM,YACb,CACE,MAAM6hH,EAAYC,IAAmB,KAAK,MAAM,QAAS,KAAK,MAAM,WAAW,EAC/E,GAAID,EAAW,CACX,MAAMnsB,EAAWmsB,EAAU,QAAQ,kBAAkB,EAC/CE,EAAWrsB,EAAS,QAAQ,cAAc,EAC1CssB,EAAYH,EAAU,sBAAqB,EAAG,IAChDnsB,EAAS,sBAAqB,EAAG,IACrCqsB,EAAS,UAAYC,EAAaA,EAAY,EAAK,CACnE,CACY,KAAK,iBAAmB,EACpC,CACA,CACA,CACA,SAASF,IAAmBG,EAAaj9B,EAAa,CAClD,IAAIn4G,EACJ,OAAIm4G,EAAY,iBAAiB,MAAM,YAAY,IAC/Cn4G,EAAKo1I,EAAY,cAAc,eAAevzC,IAAkBsW,EAAY,WAAW,CAAC,OAAO,GAG9Fn4G,IACDA,EAAKo1I,EAAY,cAAc,eAAexzC,GAAgBuW,EAAY,WAAW,CAAC,IAAI,GAGvFn4G,CACX,CAEA,MAAMq1I,YAAuBllB,EAAO,CAChC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,mBAAqB,EAClC,CACI,WAAW7gB,EAAWgmC,EAAe,CACjC,OAAOA,EAAc,WAAWhmC,CAAS,CACjD,CACA,CAEA,MAAMimC,WAAiBprB,EAAc,CACjC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,OAAS,IAAIkrB,IAClB,KAAK,SAAWnmI,GAAW,CACnC,CACI,QAAS,CACL,GAAI,CAAE,MAAAzL,EAAO,QAAAymB,CAAO,EAAK,KACzB,OAAQyjF,GAAcmnC,IAAO,OAAO,OAAO,CAAE,IAAK,KAAK,QAAU,EAAE,KAAK,OAAO,WAAWrxI,EAAOA,EAAM,YAAaA,EAAM,iBAAkBymB,EAASzmB,EAAM,aAAa,EAAG,CAAE,YAAaA,EAAM,YAAa,MAAOA,EAAM,cAAc,MAAO,aAAcA,EAAM,aAAc,cAAeA,EAAM,cAAe,eAAgBA,EAAM,eAAgB,aAAcA,EAAM,aAAc,gBAAiBA,EAAM,gBAAiB,gBAAiBA,EAAM,gBAAiB,WAAYA,EAAM,WAAY,iBAAkBA,EAAM,iBAAkB,YAAaA,EAAM,YAAa,aAAcA,EAAM,aAAc,SAAUA,EAAM,QAAU,EAAC,CAC1nB,CACA,CAEA,MAAM+xI,YAAqBlI,GAAU,CACjC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,mBAAqBprC,GAAQuzC,GAAkB,EACpD,KAAK,UAAYvmI,GAAW,EAC5B,KAAK,SAAWA,GAAW,CAEnC,CACI,QAAS,CACL,GAAI,CAAE,QAAAwC,EAAS,qBAAAo6F,CAAsB,EAAG,KAAK,QACzC,CAAE,MAAAroG,CAAK,EAAK,KACZ6xI,EAAgB,KAAK,mBAAmB7xI,EAAM,YAAaqoG,CAAoB,EAC/E4pC,EAAgBhkI,EAAQ,YAAei8F,GAAc+gB,GAAW,CAAE,IAAK,KAAK,UAAW,YAAajrH,EAAM,YAAa,MAAO6xI,EAAc,YAAa,qBAAsBA,EAAc,SAAW,CAAC,CAAE,EAC3M9H,EAAemI,GAAgBhoC,GAAc4nC,GAAU,CAAE,IAAK,KAAK,SAAU,YAAa9xI,EAAM,YAAa,cAAe6xI,EAAe,cAAe7xI,EAAM,cAAe,cAAeA,EAAM,cAAe,WAAYA,EAAM,WAAY,aAAcA,EAAM,aAAc,eAAgBA,EAAM,eAAgB,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,iBAAkBiO,EAAQ,iBAAkB,aAAcikI,EAAW,kBAAmB,cAAeA,EAAW,cAAe,aAAcjkI,EAAQ,aAAc,gBAAiBA,EAAQ,gBAAiB,gBAAiBA,EAAQ,YAAa,WAAY,CAACjO,EAAM,aAAc,iBAAkB,KAAK,YAAa,YAAakyI,EAAW,YAAa,aAAcA,EAAW,aAAc,SAAUlyI,EAAM,QAAQ,CAAE,EACzxB,OAAOiO,EAAQ,YACT,KAAK,oBAAoBgkI,EAAelI,EAAa8H,EAAc,OAAQ5jI,EAAQ,WAAW,EAC9F,KAAK,mBAAmBgkI,EAAelI,CAAW,CAChE,CACA,CACA,SAASiI,IAAmBt9B,EAAarM,EAAsB,CAC3D,IAAI0jB,EAAY,IAAIP,GAAe9W,EAAY,YAAarM,CAAoB,EAChF,OAAO,IAAIyjB,GAAcC,EAAW,kBAAkB,KAAKrX,EAAY,gBAAgB,CAAC,CAC5F,CAEA,MAAMy9B,YAAkCvkC,EAAqB,CAEzD,iBAAiBoB,EAAcC,EAAkBb,EAAe,CAC5D,IAAIC,EAAc,MAAM,iBAAiBW,EAAcC,EAAkBb,CAAa,EAClF,CAAE,MAAApuG,CAAK,EAAK,KAChB,OAAOoyI,IAAyB,CAC5B,aAAc/jC,EACd,WAAY,iBAAiB,KAAKY,CAAgB,EAClD,eAAgBjvG,EAAM,eACtB,QAASA,EAAM,OAC3B,CAAS,CACT,CACA,CACA,SAASoyI,IAAyBpyI,EAAO,CACrC,GAAI,CAAE,QAAAsoG,EAAS,aAAA0G,CAAY,EAAKhvG,EAC5B,CAAE,MAAAqR,EAAO,IAAAC,CAAG,EAAK09F,EACjBqjC,EAWJ,GATIryI,EAAM,aACNqR,EAAQi3F,EAAQ,YAAYj3F,CAAK,EAEjCghI,EAAY/pC,EAAQ,YAAYh3F,CAAG,EAC/B+gI,EAAU,QAAO,IAAO/gI,EAAI,QAAO,IACnCA,EAAMyqF,GAASs2C,EAAW,CAAC,IAI/BryI,EAAM,eAAgB,CAGtB,IAAIsyI,EAAuBhqC,EAAQ,YAAYA,EAAQ,aAAaptD,GAAQ8zD,EAAa,IAAK,EAAE,CAAC,CAAC,EAC9Fmd,EAAS,KAAK,KAClBhwB,IAAUm2C,EAAsBhhI,CAAG,CAAC,EACpCA,EAAMyqF,GAASzqF,EAAK,EAAI66G,CAAM,CACtC,CACI,MAAO,CAAE,MAAA96G,EAAO,IAAAC,CAAK,CACzB,CAEA,IAAI4kF,IAAW,m8GACfnB,GAAamB,GAAQ,ECj9BlB,IAAC1uF,IAAQ2xH,GAAa,CACrB,KAAM,wBACN,YAAa,eACb,MAAO,CACH,QAAS,CACL,UAAW4Y,IACX,0BAA2BI,GAC9B,EACD,WAAY,CACR,KAAM,UACN,SAAU,CAAE,KAAM,CAAG,CACxB,EACD,YAAa,CACT,KAAM,UACN,SAAU,CAAE,MAAO,CAAG,CACzB,EACD,aAAc,CACV,KAAM,UACN,SAAU,CAAE,OAAQ,CAAG,EACvB,eAAgB,EACnB,EACD,YAAa,CACT,KAAM,UACN,SAAU,CAAE,MAAO,CAAG,CACzB,CACJ,CACL,CAAC,EC3BD,MAAMI,YAAuBpxB,GAAS,CAClC,YAAa,CACT,MAAO,CACH,OAAQ,CAAE,EACV,MAAO,CAAE,CACZ,CACT,CACI,mBAAmBjK,EAAU,CACzB,OAAIA,EAAS,OACF,CAAC,QAAQ,EAEb,CAAC,OAAO,CACvB,CACI,mBAAmB3G,EAAU,CACzB,OAAKA,EAAS,OAGVgK,IAAehK,CAAQ,EAChB,CAAC,QAAS,QAAQ,EAEtB,CAAC,QAAQ,EALL,CAAC,OAAO,CAM3B,CACA,CAEA,MAAMiiC,IAA4BzvC,GAAgB,CAC9C,KAAM,UACN,OAAQ,UACR,eAAgB,GAChB,SAAU,OACd,CAAC,EACD,SAAS0vC,GAAiBzyI,EAAO,CAC7B,IAAIqrG,EAAa,CACb,mBACA,yBACArrG,EAAM,UAAY,uBAAyB,wBAC9C,EACD,OAAQkqG,GAAclC,GAAgB,SAAU,KAAOvhF,GAAY,CAC/D,GAAI,CAACzmB,EAAM,UACP,OAAQkqG,GAAc,KAAM,CAAE,UAAWmB,EAAW,KAAK,GAAG,EAAG,YAAarrG,EAAM,UAAU,CAAE,EAElG,GAAI,CAAE,QAAAsoG,EAAS,QAAAr6F,EAAS,QAAAk6F,CAAS,EAAG1hF,EAChCisH,EACHzkI,EAAQ,iBAAmB,KAAOukI,IAC/B,MAAM,QAAQvkI,EAAQ,eAAe,EAAI80F,GAAgB90F,EAAQ,gBAAgB,CAAC,CAAC,EAC/E80F,GAAgB90F,EAAQ,eAAe,EAC3C07F,EAAc,CACd,MAAO,EACP,KAAM3pG,EAAM,KACZ,KAAMsoG,EAAQ,OAAOtoG,EAAM,IAAI,EAC/B,KAAMmoG,EACN,KAAMG,EAAQ,OAAOtoG,EAAM,KAAM0yI,CAAW,CAC/C,EACD,OAAQxoC,GAAcW,GAAkB,CAAE,MAAO,KAAM,UAAWQ,EAAY,QAAS,CAC/E,YAAarrG,EAAM,UACtB,EAAE,YAAa2pG,EAAa,cAAe,mBAAoB,gBAAiB17F,EAAQ,iBAAkB,iBAAkBwnH,IAAoB,mBAAoBxnH,EAAQ,oBAAqB,SAAUA,EAAQ,kBAAmB,YAAaA,EAAQ,oBAAoB,EAAKy8G,GAAkBxgB,GAAc,MAAO,CAAE,UAAW,yDAA2D,EACpYA,GAAcwgB,EAAc,CAAE,MAAO,MAAO,UAAW,CAC/C,iCACA,8BACpB,CAAmB,EAAC,CAAE,CACtB,CAAK,CACL,CACA,SAAS+K,IAAmBz1H,EAAO,CAC/B,OAAOA,EAAM,IACjB,CAEA,MAAM2yI,YAAqBxpC,EAAc,CACrC,QAAS,CACL,OAAO,KAAK,MAAM,UAAU,IAAKypC,GAAc1oC,GAAc,KAAM,CAAE,IAAK0oC,EAAS,GAAK,EACpF1oC,GAAcuoC,GAAkB,OAAO,OAAO,GAAIG,CAAQ,CAAC,CAAC,CAAE,CAC1E,CACA,CAEA,MAAM1H,IAA0BnoC,GAAgB,CAAE,KAAM,OAAO,CAAE,EAC3D8vC,IAA8B,EACpC,MAAMC,YAAqBpsB,EAAc,CACrC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,eAAiB,IAAI6rB,IAC1B,KAAK,YAAc9mI,GAAW,EAC9B,KAAK,UAAYA,GAAW,EAC5B,KAAK,cAAgBA,GAAW,EAChC,KAAK,MAAQ,CACT,WAAY,IACf,EACD,KAAK,uBAA0BimI,GAAc,CACzC,IAAIxd,EAAa,KAAK,cAAc,QAChCA,IACAA,EAAW,UAAYwd,EAE9B,EAGD,KAAK,eAAiB,CAACqB,EAAQC,EAAc,KAAO,CAChD,GAAI,CAAE,QAAA/kI,GAAY,KAAK,QACnB,CAAE,YAAAymG,GAAgB,KAAK,MACvBjI,EAAQiI,EAAY,YAGpB2V,EAFS/tB,GAASmQ,EAAM,MAAOA,EAAM,GAAG,IAEb,EACzBuW,GAAkB,KAAK,QAASvW,EAAM,MAAO,MAAM,EACnD,CAAE,EACR,OAAIx+F,EAAQ,aAAe8kI,IAAW,MAC1B7oC,GAAc2rB,GAAqB,CAAE,MAAO,KAAM,UAAW,CAC7D,mBACA,sBACH,EAAE,QAAS,CACR,cAAe,EAClB,EAAE,KAAMppB,EAAM,MAAO,cAAey+B,KAA4BxgB,GAAkBxgB,GAAc,MAAO,CAAE,UAAW,CACjH,yBACA,6BACA,+BACxB,EAAsB,KAAK,GAAG,EAAG,MAAO,CAAE,OAAQ8oC,EAAe,EAC7C9oC,GAAcwgB,EAAc,CAAE,MAAO,IAAK,UAAW,CAC7C,2BACA,+BACA,0BACH,EAAE,QAASL,EAAc,CAAC,CAAE,EAEjCngB,GAAc,KAAM,CAAE,cAAe,GAAM,UAAW,kBAAoB,EAC9EA,GAAc,MAAO,CAAE,UAAW,yBAA0B,MAAO,CAAE,OAAQ8oC,CAAa,EAAE,CAAC,CACpG,EAKD,KAAK,mBAAsBC,GAAc,CACrC,GAAI,CAAE,QAAAhlI,EAAS,QAAAk6F,CAAS,EAAG,KAAK,QAC5BwB,EAAc,CACd,KAAM17F,EAAQ,WACd,KAAMk6F,CACT,EACD,OAEA+B,GAAcW,GAAkB,CAAE,MAAO,KAAM,UAAW,CAClD,mBACA,sBACH,EAAE,QAAS,CACR,cAAe,EAClB,EAAE,YAAalB,EAAa,cAAe,gBAAiB,gBAAiB17F,EAAQ,cAAe,iBAAkBilI,IAAmB,mBAAoBjlI,EAAQ,iBAAkB,SAAUA,EAAQ,eAAgB,YAAaA,EAAQ,mBAAsBy8G,GAAkBxgB,GAAc,MAAO,CAAE,UAAW,CACrT,yBACA,6BACA+oC,GAAa,KAAO,iCAAmC,EAC3E,EAAkB,KAAK,GAAG,EAAG,MAAO,CAAE,OAAQA,EAAa,EAC3C/oC,GAAcwgB,EAAc,CAAE,MAAO,OAAQ,UAAW,CAChD,2BACA,+BACA,0BACxB,CAAuB,EAAC,CAAE,CACjB,EACD,KAAK,iBAAoByoB,GAAe,CACpC,KAAK,SAAS,CAAE,WAAAA,EAAY,CAC/B,CACT,CAGI,mBAAmBrJ,EAAkBsJ,EAAeC,EAAa,CAC7D,GAAI,CAAE,QAAA5sH,EAAS,MAAAzmB,CAAK,EAAK,KACrB00H,EAAW,CAAE,EACb7B,EAAoBD,GAAqBnsG,EAAQ,OAAO,EAC5D,OAAIqjH,GACApV,EAAS,KAAK,CACV,KAAM,SACN,IAAK,SACL,SAAU7B,EACV,MAAO,CACH,MAAO,KAAK,YACZ,eAAgB,gBAChB,WAAYiX,CACf,CACjB,CAAa,EAEDsJ,IACA1e,EAAS,KAAK,CACV,KAAM,OACN,IAAK,UACL,MAAO,CAAE,QAAS0e,CAAe,CACjD,CAAa,EACD1e,EAAS,KAAK,CACV,KAAM,OACN,IAAK,kBACL,aACAxqB,GAAc,KAAM,CAAE,KAAM,eAAgB,UAAW,uBAAyB,EAC5EA,GAAc,KAAM,CAAE,UAAW,uBAAyBzjF,EAAQ,MAAM,SAAS,iBAAiB,CAAG,EAAC,CAC1H,CAAa,GAELiuG,EAAS,KAAK,CACV,KAAM,OACN,IAAK,OACL,OAAQ,GACR,WAAY,EAAQjuG,EAAQ,QAAQ,WACpC,MAAO,CACH,cAAe,KAAK,cACpB,QAAS4sH,CACZ,CACb,CAAS,EACOnpC,GAAcoB,GAAe,CAAE,MAAO,KAAK,UAAW,UAAW,CAAC,aAAa,EAAG,SAAU7kF,EAAQ,QAAU,EAClHyjF,GAAc8oB,GAAkB,CAAE,OAAQ,CAAChzH,EAAM,cAAgB,CAACA,EAAM,SAAU,iBAAkBA,EAAM,SAAU,KAAM,CAAC,CAAE,MAAO,QAAQ,CAAE,EAAG,SAAU00H,CAAQ,CAAE,CAAC,CAClL,CACI,oBAAoBoV,EAAkBsJ,EAAeC,EAAa7mB,EAAQwd,EAAasJ,EAAWH,EAAY,CAC1G,IAAIlJ,EAAa,KAAK,QAAQ,YAAY,eAC1C,GAAI,CAACA,EACD,MAAM,IAAI,MAAM,8BAA8B,EAElD,GAAI,CAAE,QAAAxjH,EAAS,MAAAzmB,CAAK,EAAK,KACrB6yH,EAAoB,CAAC7yH,EAAM,UAAY4yH,GAAqBnsG,EAAQ,OAAO,EAC3EssG,EAAwB,CAAC/yH,EAAM,UAAY8yH,GAAyBrsG,EAAQ,OAAO,EACnFiuG,EAAW,CAAE,EACboV,GACApV,EAAS,KAAK,CACV,KAAM,SACN,IAAK,SACL,SAAU7B,EACV,eAAgB,GAChB,OAAQ,CACJ,CACI,IAAK,OACL,WAAap0H,GAASyrG,GAAc,KAAM,CAAE,KAAM,cAAc,EAAI,KAAK,eAAe,MAAOzrG,EAAI,eAAe,CAAC,CAAC,CAAC,CACxH,EACD,CACI,IAAK,OACL,MAAO,KAAK,YACZ,eAAgB,gBAChB,WAAYqrI,CACf,CACJ,CACjB,CAAa,EAEDsJ,IACA1e,EAAS,KAAK,CACV,KAAM,OACN,IAAK,UACL,eAAgB,GAChB,OAAQ,CACJ,CACI,IAAK,OACL,WAAawd,GAAgBhoC,GAAc,KAAM,CAAE,KAAM,cAAgB,EAAE,KAAK,mBAAmBgoC,EAAW,eAAe,CAAC,CAAC,CAAC,CACnI,EACD,CACI,IAAK,OACL,QAASkB,CACZ,CACJ,CACjB,CAAa,EACD1e,EAAS,KAAK,CACV,IAAK,kBACL,KAAM,OACN,aACAxqB,GAAc,KAAM,CAAE,KAAM,eAAgB,UAAW,uBAAyB,EAC5EA,GAAc,KAAM,CAAE,QAAS,EAAG,UAAW,uBAAyBzjF,EAAQ,MAAM,SAAS,iBAAiB,CAAC,CAAE,CAAC,CACtI,CAAa,GAEL,IAAI8sH,EAAiB9sH,EAAQ,QAAQ,aACrC,OAAAiuG,EAAS,KAAK,CACV,KAAM,OACN,IAAK,OACL,OAAQ,GACR,WAAY,EAAQjuG,EAAQ,QAAQ,WACpC,OAAQ,CACJ,CACI,IAAK,OACL,QAAUhoB,GAEVyrG,GAAc,MAAO,CAAE,UAAW,wBAA0B,EACxDA,GAAc,QAAS,CAAE,cAAe,GAAM,MAAO,CAAE,OAAQzrG,EAAI,WAAaA,EAAI,aAAe,EAAE,CAAI,EACrGA,EAAI,kBACJyrG,GAAc,QAAS,KACnBA,GAAcyoC,IAAc,CAAE,UAAWW,CAAS,CAAE,CAAC,CAAC,EAC9DppC,GAAc,MAAO,CAAE,UAAW,qCAAuC,EACrEA,GAAcygB,GAAU,CAAE,KAAM4oB,EAAiB,SAAW,KAAK,EAAiB/2B,GAAY,CAC1F,IAAIg3B,EAAkBD,GAClBJ,GACAA,EAAW,eAAe32B,CAAO,EACrC,OAAI,OAAOg3B,GAAoB,SACnBtpC,GAAc+qB,GAAuB,CAAE,UAAW,CAAC,iCAAiC,EAAG,QAAS,CAAE,IAAKue,CAAiB,EAAE,OAAQ,GAAM,KAAMh3B,CAAO,CAAE,EAE5J,IACV,EAAC,CAAC,CACd,EACD,CACI,IAAK,OACL,cAAe,KAAK,cACpB,QAAS62B,CACZ,CACJ,CACb,CAAS,EACGtgB,GACA2B,EAAS,KAAK,CACV,IAAK,SACL,KAAM,SACN,SAAU,GACV,OAAQ,CACJ,CACI,IAAK,OACL,QAAS/B,EACZ,EACD,CACI,IAAK,OACL,QAASA,EACZ,CACJ,CACjB,CAAa,EAEGzoB,GAAcoB,GAAe,CAAE,MAAO,KAAK,UAAW,UAAW,CAAC,aAAa,EAAG,SAAU7kF,EAAQ,QAAU,EAClHyjF,GAAc+/B,EAAY,CAAE,OAAQ,CAACjqI,EAAM,cAAgB,CAACA,EAAM,SAAU,SAAUA,EAAM,SAAU,iBAAkB,GAAO,UAAW,CAClI,CAAE,MAAO,SAAU,KAAM,CAAC,CAAE,MAAO,QAAQ,CAAE,CAAG,EAChD,CAAE,KAAM,CAAC,CAAE,KAAMwsH,EAAQ,SAAUwd,CAAW,CAAE,CAAG,CACvE,EAAmB,SAAUtV,CAAQ,CAAE,CAAC,CACxC,CAGI,wBAAyB,CACrB,GAAI,CAAE,aAAAuX,EAAc,gBAAAC,CAAiB,EAAG,KAAK,QAAQ,QACrD,OAAID,IAAiB,IAAQC,IAAoB,MAC7CD,EAAe,OACfC,EAAkB2G,KAEf,CAAE,aAAA5G,EAAc,gBAAAC,CAAiB,CAChD,CACA,CACA,SAASgH,IAAkBvpC,EAAa,CACpC,OAAOA,EAAY,IACvB,CAEA,MAAM8pC,GAAoB,CACtB,YAAYC,EAAWh/B,EAAai/B,EAAc,CAC9C,KAAK,UAAYD,EACjB,KAAK,YAAch/B,EACnB,KAAK,aAAei/B,CAC5B,CACI,eAAe14F,EAAM,CACjB,GAAI,CAAE,YAAAy5D,CAAW,EAAK,KACtB,GAAIlI,GAAoBkI,EAAY,aAAcz5D,CAAI,EAAG,CACrD,IAAI24F,EAAiB72F,GAAW9B,CAAI,EAChC44F,EAAS54F,EAAK,QAAO,EAAK24F,EAAe,QAAS,EACtD,GAAIC,GAAU14C,GAAUuZ,EAAY,WAAW,GAC3Cm/B,EAAS14C,GAAUuZ,EAAY,WAAW,EAC1C,OAAO,KAAK,eAAeta,GAAey5C,CAAM,CAAC,CAEjE,CACQ,OAAO,IACf,CAGI,eAAeC,EAAMF,EAAgB,CACjC,OAAKA,IACDA,EAAiB72F,GAAW+2F,CAAI,GAE7B,KAAK,eAAe15C,GAAe05C,EAAK,UAAYF,EAAe,QAAO,CAAE,CAAC,CAC5F,CAII,eAAet4G,EAAU,CACrB,GAAI,CAAE,UAAAo4G,EAAW,YAAAh/B,CAAW,EAAK,KAC7BhiF,EAAMghH,EAAU,IAAI,OAEpBK,GAAgBz4G,EAAS,aAAe6/D,GAAUuZ,EAAY,WAAW,GAAKvZ,GAAU,KAAK,YAAY,EACzG64C,EACAC,EAIJ,OAAAF,EAAe,KAAK,IAAI,EAAGA,CAAY,EACvCA,EAAe,KAAK,IAAIrhH,EAAKqhH,CAAY,EAGzCC,EAAY,KAAK,MAAMD,CAAY,EACnCC,EAAY,KAAK,IAAIA,EAAWthH,EAAM,CAAC,EAGvCuhH,EAAgBF,EAAeC,EACxBN,EAAU,KAAKM,CAAS,EAC3BN,EAAU,UAAUM,CAAS,EAAIC,CAC7C,CACA,CAEA,MAAMC,YAA0B/qC,EAAc,CAC1C,QAAS,CACL,GAAI,CAAE,MAAAnpG,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACd,CAAE,WAAA0tH,CAAU,EAAKn0I,EACrB,OAAQkqG,GAAc,QAAS,KAAMlqG,EAAM,UAAU,IAAI,CAAC4yI,EAAUp2I,IAAM,CACtE,IAAImtG,EAAc,CACd,KAAMipC,EAAS,KACf,KAAMnsH,EAAQ,QAAQ,OAAOmsH,EAAS,IAAI,EAC1C,KAAMnsH,EAAQ,OACjB,EACD,OAAQyjF,GAAc,KAAM,CAAE,IAAK0oC,EAAS,IAAK,IAAKuB,EAAW,UAAUvB,EAAS,GAAG,CAAG,EACtF5yI,EAAM,MAASkqG,GAAcuoC,GAAkB,OAAO,OAAO,GAAIG,CAAQ,CAAC,EAC1E1oC,GAAcW,GAAkB,CAAE,MAAO,KAAM,UAAW,CAClD,mBACA,wBACA,CAAC+nC,EAAS,WAAa,wBAC1B,EAAE,QAAS,CACR,YAAaA,EAAS,UAC9C,EAAuB,YAAajpC,EAAa,cAAe,kBAAmB,gBAAiB17F,EAAQ,gBAAiB,mBAAoBA,EAAQ,mBAAoB,SAAUA,EAAQ,iBAAkB,YAAaA,EAAQ,mBAAmB,CAAE,CAAC,CAC5P,CAAS,CAAC,CACV,CACA,CAKA,MAAMmmI,YAAsBjrC,EAAc,CACtC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,UAAY19F,GAAW,EAC5B,KAAK,WAAa,IAAImlH,EAC9B,CACI,QAAS,CACL,GAAI,CAAE,MAAA5wH,EAAO,QAAAymB,CAAO,EAAK,KACzB,OAAQyjF,GAAc,MAAO,CAAE,IAAK,KAAK,UAAW,UAAW,mBAAqB,EAChFA,GAAc,QAAS,CAAE,cAAe,GAAM,UAAWzjF,EAAQ,MAAM,SAAS,OAAO,EAAG,MAAO,CACzF,SAAUzmB,EAAM,cAChB,MAAOA,EAAM,YACb,OAAQA,EAAM,SAClC,CAAmB,EACHA,EAAM,kBACNkqG,GAAcgqC,IAAmB,CAAE,WAAY,KAAK,WAAY,KAAMl0I,EAAM,KAAM,UAAWA,EAAM,SAAS,CAAE,CAAC,CAAC,CAChI,CACI,mBAAoB,CAChB,KAAK,aAAc,CAC3B,CACI,oBAAqB,CACjB,KAAK,aAAc,CAC3B,CACI,sBAAuB,CACf,KAAK,MAAM,UACX,KAAK,MAAM,SAAS,IAAI,CAEpC,CACI,cAAe,CACX,GAAI,CAAE,QAAAymB,EAAS,MAAAzmB,CAAK,EAAK,KACrBA,EAAM,UACNA,EAAM,cAAgB,MAET,KAAK,UAAU,QACjB,cACPA,EAAM,SAAS,IAAIyzI,IAAoB,IAAItuB,GAAc,KAAK,UAAU,QAASkvB,IAAe,KAAK,WAAW,WAAYr0I,EAAM,SAAS,EAAG,GAAO,EAAI,EAAG,KAAK,MAAM,YAAaymB,EAAQ,QAAQ,YAAY,CAAC,CAGjO,CACA,CACA,SAAS4tH,IAAenE,EAAOoD,EAAW,CACtC,OAAOA,EAAU,IAAKV,GAAa1C,EAAM0C,EAAS,GAAG,CAAC,CAC1D,CAEA,SAAS0B,GAAex5B,EAAM0R,EAAQ,CAClC,IAAI+nB,EAAY,CAAE,EACd/3I,EACJ,IAAKA,EAAI,EAAGA,EAAIgwH,EAAQhwH,GAAK,EACzB+3I,EAAU,KAAK,EAAE,EAErB,GAAIz5B,EACA,IAAKt+G,EAAI,EAAGA,EAAIs+G,EAAK,OAAQt+G,GAAK,EAC9B+3I,EAAUz5B,EAAKt+G,CAAC,EAAE,GAAG,EAAE,KAAKs+G,EAAKt+G,CAAC,CAAC,EAG3C,OAAO+3I,CACX,CACA,SAASC,GAAsBj8B,EAAIiU,EAAQ,CACvC,IAAI2d,EAAQ,CAAE,EACd,GAAK5xB,EAKA,CACD,QAAS/7G,EAAI,EAAGA,EAAIgwH,EAAQhwH,GAAK,EAC7B2tI,EAAM3tI,CAAC,EAAI,CACP,kBAAmB+7G,EAAG,kBACtB,QAASA,EAAG,QACZ,KAAM,CAAE,CACX,EAEL,QAASkC,KAAOlC,EAAG,KACf4xB,EAAM1vB,EAAI,GAAG,EAAE,KAAK,KAAKA,CAAG,CAExC,KAfQ,SAASj+G,EAAI,EAAGA,EAAIgwH,EAAQhwH,GAAK,EAC7B2tI,EAAM3tI,CAAC,EAAI,KAenB,OAAO2tI,CACX,CAEA,MAAMsK,YAAwBtrC,EAAc,CACxC,QAAS,CACL,GAAI,CAAE,MAAAnpG,CAAK,EAAK,KAChB,OAAQkqG,GAAc0sB,GAAmB,CAAE,UAAW,CAAC,uBAAuB,EAAG,QAAS,CAClF,IAAK52H,EAAM,IACX,OAAQA,EAAM,MAC9B,EAAe,WAAY,KAAM,QAASA,EAAM,WAAW,OAAQ,QAASA,EAAM,WAAY,WAAYA,EAAM,WAAY,cAAeA,EAAM,cAAe,YAAaA,EAAM,YAAa,WAAYA,EAAM,WAAY,eAAgB,IAAM00I,GAAkB10I,EAAM,WAAYA,CAAK,EAAG,iBAAkBo3H,IAAqB,WAAY,IAAS1M,GAAkBxgB,GAAcwgB,EAAc,CAAE,MAAO,MAAO,UAAW,CAAC,8BAA+B,WAAW,CAAG,EAAE,CACrd,CACA,CACA,SAAS0M,IAAoBp3H,EAAO,CAChC,OAAOA,EAAM,SACjB,CAGA,SAAS20I,IAAiBlI,EAAW3kB,EAAa8sB,EAAa,CAC3D,IAAIvI,EAAY,IAAItlB,GAChBe,GAAe,OACfukB,EAAU,YAAcvkB,GAExB8sB,GAAe,OACfvI,EAAU,YAAcuI,GAE5B,IAAIztB,EAAgBklB,EAAU,QAAQI,CAAS,EAC3CoI,EAAezrB,IAAyBjC,CAAa,EACrD2tB,EAAMC,IAAS1I,CAAS,EAC5B,OAAAyI,EAAME,IAAWF,EAAK,CAAC,EAEhB,CAAE,SADMG,IAAWH,CAAG,EACV,aAAAD,CAAc,CACrC,CACA,SAASE,IAAS1I,EAAW,CACzB,KAAM,CAAE,eAAA5kB,CAAc,EAAK4kB,EACrB6I,EAAYC,GAAU,CAACjsB,EAAOksB,IAAYlsB,EAAQ,IAAMksB,EAAS,CAAClsB,EAAOksB,IAAY,CACvF,IAAIC,EAAeC,IAAkBjJ,EAAWnjB,EAAOksB,CAAO,EAC1DG,EAAeC,GAAWH,EAAcH,CAAS,EACjDjuB,EAAQQ,EAAeyB,CAAK,EAAEksB,CAAO,EACzC,MAAO,CACH,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEnuB,CAAK,EAAG,CAAE,eAAgBsuB,EAAa,CAAC,CAAC,CAAE,EAC3EtuB,EAAM,UAAYsuB,EAAa,CAAC,CACnC,CACT,CAAK,EACD,OAAOC,GAAW/tB,EAAe,OAC3B,CAAE,MAAO,EAAG,aAAc,EAAG,WAAYA,EAAe,CAAC,EAAE,MAAM,EACjE,KAAMytB,CAAS,EAAE,CAAC,CAC5B,CACA,SAASM,GAAWH,EAAcH,EAAW,CACzC,GAAI,CAACG,EACD,MAAO,CAAC,CAAE,EAAE,CAAC,EAEjB,GAAI,CAAE,MAAAnsB,EAAO,aAAAusB,EAAc,WAAAC,CAAY,EAAGL,EACtCD,EAAUK,EACVE,EAAQ,CAAE,EACd,KAAOP,EAAUM,GACbC,EAAM,KAAKT,EAAUhsB,EAAOksB,CAAO,CAAC,EACpCA,GAAW,EAEf,OAAAO,EAAM,KAAKC,GAAgB,EACpB,CACHD,EAAM,IAAIE,GAAW,EACrBF,EAAM,CAAC,EAAE,CAAC,CACb,CACL,CACA,SAASC,IAAiBxjI,EAAGC,EAAG,CAC5B,OAAOA,EAAE,CAAC,EAAID,EAAE,CAAC,CACrB,CACA,SAASyjI,IAAYzjI,EAAG,CACpB,OAAOA,EAAE,CAAC,CACd,CACA,SAASkjI,IAAkBjJ,EAAWyJ,EAAcC,EAAgB,CAChE,GAAI,CAAE,YAAAruB,EAAa,eAAAD,CAAc,EAAK4kB,EAClC2J,EAAevuB,EAAequB,CAAY,EAAEC,CAAc,EAC1DE,EAAevuB,EAAYouB,CAAY,EAAIE,EAAa,UACxDhuB,EAAWN,EAAY,OACvBwB,EAAQ4sB,EAEZ,KAAO5sB,EAAQlB,GAAYN,EAAYwB,CAAK,EAAI+sB,EAAc/sB,GAAS,EACnE,CACJ,KAAOA,EAAQlB,EAAUkB,GAAS,EAAG,CACjC,IAAIxoH,EAAU+mH,EAAeyB,CAAK,EAC9BjC,EACAivB,EAAcvtB,GAAajoH,EAASs1I,EAAa,KAAK,MAAOptB,EAAe,EAC5E6sB,EAAeS,EAAY,CAAC,EAAIA,EAAY,CAAC,EAC7CR,EAAaD,EACjB,MACCxuB,EAAQvmH,EAAQg1I,CAAU,IACvBzuB,EAAM,KAAK,MAAQ+uB,EAAa,KAAK,KACrCN,GAAc,EAElB,GAAID,EAAeC,EACf,MAAO,CAAE,MAAAxsB,EAAO,aAAAusB,EAAc,WAAAC,CAAY,CAEtD,CACI,OAAO,IACX,CACA,SAASV,IAAWmB,EAAeC,EAAgB,CAC/C,MAAMC,EAAclB,GAAU,CAAC99H,EAAMi/H,EAAYC,IAAkB3uB,GAAcvwG,CAAI,EAAG,CAACA,EAAMi/H,EAAYC,IAAkB,CACzH,GAAI,CAAE,eAAAC,EAAgB,UAAAC,CAAS,EAAKp/H,EAChCq/H,EAAeD,EAAYF,EAC3BI,EAAoBF,EAAYC,EAChCE,EACAppH,EAAc,CAAE,EACpB,GAAI,CAACgpH,EAAe,OAChBI,EAAWR,MAGX,SAASS,KAAaL,EAClB,GAAII,IAAa,OAAW,CACxB,IAAIz3I,EAAMk3I,EAAYQ,EAAWP,EAAYI,CAAY,EACzDE,EAAWz3I,EAAI,CAAC,EAChBquB,EAAY,KAAKruB,EAAI,CAAC,CAAC,CAC3C,KACqB,CACD,IAAIA,EAAMk3I,EAAYQ,EAAWD,EAAU,CAAC,EAC5CppH,EAAY,KAAKruB,EAAI,CAAC,CAAC,CAC3C,CAGQ,IAAI23I,GAAgBF,EAAWN,GAAcK,EAC7C,MAAO,CAACC,EAAWE,EAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEz/H,CAAI,EAAG,CAAE,UAAWy/H,EAAc,eAAgBtpH,CAAW,CAAE,CAAC,CACzI,CAAK,EACD,OAAO2oH,EAAc,IAAK9+H,GAASg/H,EAAYh/H,EAAM,EAAG,CAAC,EAAE,CAAC,CAAC,CACjE,CAEA,SAAS49H,IAAWkB,EAAe,CAC/B,IAAIltB,EAAQ,CAAE,EACd,MAAM8tB,EAAc5B,GAAU,CAAC99H,EAAM8xG,EAAY6tB,IAAepvB,GAAcvwG,CAAI,EAAG,CAACA,EAAM8xG,EAAY6tB,IAAe,CACnH,IAAIv2B,EAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEppG,CAAI,EAAG,CAAE,WAAA8xG,EAChD,WAAA6tB,EAAY,aAAc,EAAG,EACjC,OAAA/tB,EAAM,KAAKxI,CAAI,EACPA,EAAK,aAAew2B,EAAa5/H,EAAK,eAAgB8xG,EAAa9xG,EAAK,UAAW2/H,EAAa,CAAC,EAAI,CACrH,CAAK,EACD,SAASC,EAAa7H,EAAOjmB,EAAY6tB,EAAY,CACjD,IAAIE,EAAe,EACnB,QAAS7/H,KAAQ+3H,EACb8H,EAAe,KAAK,IAAIH,EAAY1/H,EAAM8xG,EAAY6tB,CAAU,EAAGE,CAAY,EAEnF,OAAOA,CACf,CACI,OAAAD,EAAad,EAAe,EAAG,CAAC,EACzBltB,CACX,CAEA,SAASksB,GAAU1iE,EAAS0kE,EAAU,CAClC,MAAMv5I,EAAQ,CAAE,EAChB,MAAO,IAAIwI,IAAS,CAChB,IAAIxK,EAAM62E,EAAQ,GAAGrsE,CAAI,EACzB,OAAQxK,KAAOgC,EACTA,EAAMhC,CAAG,EACRgC,EAAMhC,CAAG,EAAIu7I,EAAS,GAAG/wI,CAAI,CACvC,CACL,CAEA,SAASgxI,GAAkBt8B,EAAMu8B,EAASlE,EAAa,KAAMmE,EAAiB,EAAG,CAC7E,IAAIC,EAAU,CAAE,EAChB,GAAIpE,EACA,QAAS32I,EAAI,EAAGA,EAAIs+G,EAAK,OAAQt+G,GAAK,EAAG,CACrC,IAAIi+G,EAAMK,EAAKt+G,CAAC,EACZmxI,EAAYwF,EAAW,eAAe14B,EAAI,MAAO48B,CAAO,EACxDzJ,EAAU,KAAK,IAAID,GAAa2J,GAAkB,GACtDnE,EAAW,eAAe14B,EAAI,IAAK48B,CAAO,CAAC,EAC3CE,EAAQ,KAAK,CACT,MAAO,KAAK,MAAM5J,CAAS,EAC3B,IAAK,KAAK,MAAMC,CAAO,CACvC,CAAa,CACb,CAEI,OAAO2J,CACX,CACA,SAASC,IAAuB18B,EAAM28B,EACtCC,EAAkBC,EAAe,CAC7B,IAAIlL,EAAY,CAAE,EACdmL,EAAW,GACf,QAASp7I,EAAI,EAAGA,EAAIs+G,EAAK,OAAQt+G,GAAK,EAAG,CACrC,IAAI+6I,EAAUE,EAAWj7I,CAAC,EACtB+6I,EACA9K,EAAU,KAAK,CACX,MAAOjwI,EACP,UAAW,EACX,KAAM+6I,CACtB,CAAa,EAGDK,EAAS,KAAK98B,EAAKt+G,CAAC,CAAC,CAEjC,CACI,GAAI,CAAE,SAAAmwI,EAAU,aAAAkI,CAAc,EAAGF,IAAiBlI,EAAWiL,EAAkBC,CAAa,EACxF9I,EAAgB,CAAE,EACtB,QAASgJ,KAAWlL,EAChBkC,EAAc,KAAK,CACf,IAAK/zB,EAAK+8B,EAAQ,KAAK,EACvB,KAAMA,CAClB,CAAS,EAEL,QAASC,KAAWF,EAChB/I,EAAc,KAAK,CAAE,IAAKiJ,EAAS,KAAM,KAAM,EAEnD,MAAO,CAAE,cAAAjJ,EAAe,aAAAgG,CAAc,CAC1C,CAEA,MAAMkD,IAAsBh1C,GAAgB,CACxC,KAAM,UACN,OAAQ,UACR,SAAU,EACd,CAAC,EACD,MAAMi1C,WAAqB7uC,EAAc,CACrC,QAAS,CACL,OAAQe,GAAc0qB,GAAe,OAAO,OAAO,GAAI,KAAK,MAAO,CAAE,UAAW,CACxE,oBACA,aACA,KAAK,MAAM,SAAW,yBACtC,EAAe,kBAAmBmjB,GAAmB,CAAE,CAAC,CACxD,CACA,CAEA,MAAME,YAAgB9uC,EAAc,CAChC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,cAAgB1K,GAAQoc,EAAa,CAClD,CAEI,QAAS,CACL,GAAI,CAAE,MAAA76G,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,QAAAxY,CAAO,EAAKwY,EACdyxH,EAAiBjqI,EAAQ,aACzBkiI,EACFnwI,EAAM,WAAaA,EAAM,UAAU,MAChCA,EAAM,aAAeA,EAAM,YAAY,MACvCk4I,GAAkBl4I,EAAM,mBACzB,CAAE,EACFm4I,EACFn4I,EAAM,WAAaA,EAAM,UAAU,mBAChCA,EAAM,aAAeA,EAAM,YAAY,mBACxC,CAAE,EACFo4I,EAAe,KAAK,cAAcp4I,EAAM,YAAaiO,EAAQ,UAAU,EAC3E,OAAQi8F,GAAcirB,GAAkB,CAAE,MAAO,KAAM,MAAOn1H,EAAM,MAAO,UAAW,CAC9E,kBACA,GAAIA,EAAM,iBAAmB,EAChC,EAAE,QAAS,OAAO,OAAO,CAAE,KAAM,UAAU,EAAIA,EAAM,cAAc,EAAG,KAAMA,EAAM,KAAM,YAAaA,EAAM,YAAa,WAAYA,EAAM,WAAY,iBAAkBA,EAAM,kBAAqB0qH,GAAkBxgB,GAAc,MAAO,CAAE,UAAW,uBAAyB,EACjRA,GAAc,MAAO,CAAE,UAAW,oBAAsB,EACpD,KAAK,eAAelqG,EAAM,iBAAkB,cAAc,EAC1D,KAAK,eAAeA,EAAM,YAAa,UAAU,EACjD,KAAK,eAAeA,EAAM,kBAAmB,WAAW,CAAC,EAC7DkqG,GAAc,MAAO,CAAE,UAAW,wBAA0B,EAAE,KAAK,aAAakuC,EAAcD,EAA8B,GAAO,GAAO,EAAK,CAAC,EAChJjuC,GAAc,MAAO,CAAE,UAAW,wBAA0B,EAAE,KAAK,aAAaimC,EAAY,GAAI,EAAQnwI,EAAM,UAAY,EAAQA,EAAM,YAAc,EAAQk4I,EAAiB,QAAQ,CAAC,EACxLhuC,GAAc,MAAO,CAAE,UAAW,qCAAqC,EAAI,KAAK,mBAAmBlqG,EAAM,gBAAgB,CAAC,EAC1Hq1H,GAAwBpnH,CAAO,GAAMi8F,GAAcwgB,EAAc,CAAE,MAAO,MAAO,UAAW,CAAC,sBAAsB,EAAG,CAAE,CAAE,CACtI,CACI,aAAa0tB,EAAcC,EAAgBvJ,EAAYC,EAAYC,EAAiBsJ,EAAW,CAC3F,GAAI,CAAE,MAAAt4I,CAAK,EAAK,KAChB,OAAIA,EAAM,SACC00I,GAAkB0D,EAAcp4I,CAAK,EAEzC,KAAK,uBAAuBo4I,EAAcC,EAAgBvJ,EAAYC,EAAYC,EAAiBsJ,CAAS,CAC3H,CACI,uBAAuBx9B,EACvBu9B,EAAgBvJ,EAAYC,EAAYC,EAAiBsJ,EAAW,CAChE,GAAI,CAAE,cAAAX,EAAe,iBAAAY,EAAkB,iBAAAb,EAAkB,eAAAJ,GAAmB,KAAK,QAAQ,QACrF,CAAE,KAAAr8F,EAAM,WAAAk4F,EAAY,eAAAlE,EAAgB,WAAA1yB,EAAY,QAAAC,CAAO,EAAK,KAAK,MACjE2yB,EAAWL,GAAcC,GAAcC,EACvCyI,EAAaL,GAAkBt8B,EAAM7/D,EAAMk4F,EAAYmE,CAAc,EACrE,CAAE,cAAAzI,EAAe,aAAAgG,GAAiB2C,IAAuB18B,EAAM28B,EAAYC,EAAkBC,CAAa,EAC9G,OAAQztC,GAActuF,GAAU,KAC5B,KAAK,mBAAmBi5H,EAAc/5B,CAAI,EAC1C+zB,EAAc,IAAK2J,GAAiB,CAChC,GAAI,CAAE,IAAA/9B,EAAK,KAAAgG,CAAI,EAAK+3B,EAChB9lC,EAAa+H,EAAI,WAAW,SAAS,WACrC40B,EAAYF,GAAY,GAAQ,CAACkJ,EAAe3lC,CAAU,GAAK+N,GAC/Dg4B,EAASC,GAAiBj4B,GAAQA,EAAK,IAAI,EAC3Ck4B,EAAU,CAACxJ,GAAY1uB,EAAQ,KAAK,iBAAiBA,CAAI,EAAI,CAAE,KAAM,EAAG,MAAO,CAAG,EAClFm4B,EAAU,EAAQn4B,GAASA,EAAK,aAAe,EAC/Co4B,EAAU,EAAQp4B,GAAUA,EAAK,KAAK,IAAMA,EAAK,KAAK,MAAS83B,EACnE,OAAQruC,GAAc,MAAO,CAAE,UAAW,6BACjC0uC,EAAU,mCAAqC,IAAK,IAAKN,GAAa5lC,EAAY,MAAO,OAAO,OAAO,OAAO,OAAO,CAAE,WAAY28B,EAAY,GAAK,UAAYoJ,CAAM,EAAGE,CAAM,CAAG,EACvLzuC,GAAc8tC,GAAc,OAAO,OAAO,CAAE,IAAKv9B,EAAK,WAAYq0B,EAAY,WAAYC,EAAY,gBAAiBC,EAAiB,WAAYt8B,IAAeu8B,EAAgB,QAAS4J,CAAO,EAAIv8B,GAAW7B,EAAK8B,EAAYC,CAAO,CAAC,CAAC,CAAC,CACjQ,CAAa,CAAC,CACd,CAEI,mBAAmBq4B,EAAc/5B,EAAM,CACnC,GAAI,CAAE,cAAAg+B,EAAe,YAAApkC,EAAa,WAAA6H,EAAY,QAAAC,EAAS,eAAAyyB,EAAgB,UAAA8J,EAAW,YAAAC,GAAgB,KAAK,MACvG,OAAQ9uC,GAActuF,GAAU,KAAMi5H,EAAa,IAAKoE,GAAgB,CACpE,IAAIC,EAAcR,GAAiBO,EAAY,IAAI,EAC/C5hB,EAAa8hB,IAAuBF,EAAY,QAASn+B,CAAI,EACjE,OAAQ5Q,GAAcuqC,IAAiB,CAAE,IAAKz2C,GAAes5B,GAAwBD,CAAU,CAAC,EAAG,WAAYA,EAAY,IAAK6hB,EAAY,IAAK,OAAQA,EAAY,OAAQ,cAAeJ,EAAe,YAAapkC,EAAa,WAAY6H,EAAY,QAASC,EAAS,eAAgByyB,EAAgB,UAAW8J,EAAW,YAAaC,CAAW,CAAE,CAC3W,CAAS,CAAC,CACV,CACI,eAAel+B,EAAM8a,EAAU,CAC3B,GAAI,CAAE,MAAA51H,EAAO,QAAAymB,CAAO,EAAK,KAErBjR,EADa4hI,GAAkBt8B,EAAM96G,EAAM,KAAMA,EAAM,WAAYymB,EAAQ,QAAQ,cAAc,EAC3E,IAAI,CAAC8wH,EAAS/6I,IAAM,CAC1C,IAAIi+G,EAAMK,EAAKt+G,CAAC,EAChB,OAAQ0tG,GAAc,MAAO,CAAE,IAAKyS,GAAmBlC,EAAI,UAAU,EAAG,UAAW,yBAA0B,MAAOi+B,GAAiBnB,CAAO,CAAC,EAAI3hB,IAAa,WAC1J1rB,GAAcsrB,GAAS,OAAO,OAAO,CAAE,IAAK/a,CAAG,EAAI6B,GAAW7B,EAAKz6G,EAAM,WAAYA,EAAM,OAAO,CAAC,CAAC,EACpG21H,GAAWC,CAAQ,CAAC,CACpC,CAAS,EACD,OAAO1rB,GAActuF,GAAU,KAAMpG,CAAQ,CACrD,CACI,mBAAmBslG,EAAM,CACrB,GAAI,CAAE,WAAAq4B,EAAY,KAAAl4F,CAAM,EAAG,KAAK,MAChC,OAAKk4F,EAGEr4B,EAAK,IAAI,CAACL,EAAKj+G,IAAO0tG,GAAc+qB,GAEzC,CAEE,IAAKz4H,EAAG,UAAW,CAAC,gCAAgC,EAAG,QAAS,CAC5D,IAAK22I,EAAW,eAAe14B,EAAI,MAAOx/D,CAAI,CACjD,EAAE,OAAQ,GAAO,KAAMA,CAAI,CAAE,CAAE,EARzB,IASnB,CACI,iBAAiBm+F,EAAY,CACzB,GAAI,CAAE,MAAA7yC,EAAO,QAAAt4F,CAAS,EAAG,KAAK,QAC1BorI,EAAgBprI,EAAQ,iBACxBqrI,EAAYF,EAAW,WACvBG,EAAWH,EAAW,WAAaA,EAAW,UAC9C5yB,EACA8oB,EACA+J,IAEAE,EAAW,KAAK,IAAI,EAAGD,GAAaC,EAAWD,GAAa,CAAC,GAE7D/yC,GACAigB,EAAO,EAAI+yB,EACXjK,EAAQgK,IAGR9yB,EAAO8yB,EACPhK,EAAQ,EAAIiK,GAEhB,IAAIv5I,EAAQ,CACR,OAAQo5I,EAAW,WAAa,EAChC,KAAM5yB,EAAO,IAAM,IACnB,MAAO8oB,EAAQ,IAAM,GACxB,EACD,OAAI+J,GAAiB,CAACD,EAAW,eAE7Bp5I,EAAMumG,EAAQ,aAAe,aAAa,EAAI,GAAK,GAEhDvmG,CACf,CACA,CACA,SAAS00I,GAAkB0D,EAAc,CAAE,WAAA77B,EAAY,QAAAC,EAAS,eAAAyyB,EAAgB,UAAA8J,EAAW,YAAAC,GAAe,CACtG,IAAIQ,GAAmBT,EAAYA,EAAU,kBAAoB,QAC5DC,EAAcA,EAAY,kBAAoB,OAC/C,CAAE,EACN,OAAQ9uC,GAActuF,GAAU,KAAMw8H,EAAa,IAAK39B,GAAQ,CAC5D,IAAI/H,EAAa+H,EAAI,WAAW,SAAS,WACzC,OAAQvQ,GAAc,MAAO,CAAE,IAAKwI,EAAY,MAAO,CAAE,WAAY8mC,EAAgB9mC,CAAU,EAAI,SAAW,EAAE,CAAI,EAChHxI,GAAc8tC,GAAc,OAAO,OAAO,CAAE,IAAKv9B,EAAK,WAAY,GAAO,WAAY,GAAO,gBAAiB,GAAO,WAAY/H,IAAeu8B,EAAgB,QAAS,EAAK,EAAI3yB,GAAW7B,EAAK8B,EAAYC,CAAO,CAAC,CAAC,CAAC,CACnO,CAAK,CAAC,CACN,CACA,SAASk8B,GAAiBjB,EAAY,CAClC,OAAKA,EAGE,CACH,IAAKA,EAAW,MAChB,OAAQ,CAACA,EAAW,GACvB,EALU,CAAE,IAAK,GAAI,OAAQ,EAAI,CAMtC,CACA,SAAS0B,IAAuBM,EAAY5O,EAAS,CACjD,OAAO4O,EAAW,IAAKlN,GAAa1B,EAAQ0B,EAAS,KAAK,CAAC,CAC/D,CAEA,MAAMmN,YAAwBvwC,EAAc,CACxC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,iBAAmB1K,GAAQ61C,EAAc,EAC9C,KAAK,iBAAmB71C,GAAQ61C,EAAc,EAC9C,KAAK,sBAAwB71C,GAAQ61C,EAAc,EACnD,KAAK,sBAAwB71C,GAAQ61C,EAAc,EACnD,KAAK,uBAAyB71C,GAAQ61C,EAAc,EACpD,KAAK,eAAiB71C,GAAQ+1C,EAAqB,EACnD,KAAK,iBAAmB/1C,GAAQ+1C,EAAqB,EACrD,KAAK,UAAY/oI,GAAW,EAC5B,KAAK,WAAa,IAAImlH,EAC9B,CACI,QAAS,CACL,GAAI,CAAE,MAAA5wH,EAAO,QAAAymB,CAAO,EAAK,KACrB+sH,EAAkB/sH,EAAQ,QAAQ,cAClCzmB,EAAM,YACNA,EAAM,WAAW,eAAeA,EAAM,OAAO,EAC7CwsH,EAASxsH,EAAM,MAAM,OACrB2wI,EAAmB,KAAK,iBAAiB3wI,EAAM,YAAawsH,CAAM,EAClEkkB,EAAmB,KAAK,iBAAiB1wI,EAAM,YAAawsH,CAAM,EAClEikB,EAAwB,KAAK,sBAAsBzwI,EAAM,iBAAkBwsH,CAAM,EACjFmtB,EAAwB,KAAK,sBAAsB35I,EAAM,iBAAkBwsH,CAAM,EACjFokB,EAAyB,KAAK,uBAAuB5wI,EAAM,kBAAmBwsH,CAAM,EACpFqkB,EAAiB,KAAK,eAAe7wI,EAAM,UAAWwsH,CAAM,EAC5DskB,EAAmB,KAAK,iBAAiB9wI,EAAM,YAAawsH,CAAM,EACtE,OAAQtiB,GAAc,MAAO,CAAE,UAAW,mBAAoB,IAAK,KAAK,SAAW,EAC/EA,GAAc,QAAS,CAAE,KAAM,eAAgB,MAAO,CAC9C,SAAUlqG,EAAM,cAChB,MAAOA,EAAM,WACjC,CAAmB,EACHA,EAAM,kBACNkqG,GAAc,QAAS,CAAE,KAAM,cAAgB,EAC3CA,GAAc,KAAM,CAAE,KAAM,KAAO,EAC/BlqG,EAAM,MAASkqG,GAAc,KAAM,CAAE,cAAe,GAAM,UAAW,kCAAoC,EACrGA,GAAc,MAAO,CAAE,UAAW,uBAAyB,EACvDA,GAAc,MAAO,CAAE,UAAW,qCAAqC,EAAI,OAAOspC,GAAoB,UAAatpC,GAAc+qB,GAAuB,CAAE,UAAW,CAAC,iCAAiC,EAAG,QAAS,CAAE,IAAKue,CAAe,EAAI,OAAQ,GAAM,KAAMxzI,EAAM,OAAO,CAAE,CAAE,CAAC,CAAC,EAC5RA,EAAM,MAAM,IAAI,CAACuuI,EAAM/xI,IAAO0tG,GAAc+tC,IAAS,CAAE,IAAK1J,EAAK,IAAK,MAAO,KAAK,WAAW,UAAUA,EAAK,GAAG,EAAG,YAAavuI,EAAM,YAAa,KAAMuuI,EAAK,KAAM,QAASvuI,EAAM,QAAS,WAAYA,EAAM,WAAY,iBAAkBuuI,EAAK,iBAAkB,eAAgBA,EAAK,eAAgB,gBAAiBA,EAAK,gBAAiB,cAAeA,EAAK,cAAe,YAAaoC,EAAiBn0I,CAAC,EAAG,YAAak0I,EAAiBl0I,CAAC,EAAG,iBAAkBi0I,EAAsBj0I,CAAC,EAAG,iBAAkBm9I,EAAsBn9I,CAAC,EAAG,kBAAmBo0I,EAAuBp0I,CAAC,EAAG,UAAWq0I,EAAer0I,CAAC,EAAG,YAAas0I,EAAiBt0I,CAAC,EAAG,WAAYwD,EAAM,WAAY,eAAgBA,EAAM,eAAgB,SAAUA,EAAM,QAAQ,CAAE,CAAE,CAAC,CAAC,CAAC,CAAC,CACvvB,CACI,mBAAoB,CAChB,KAAK,aAAc,CAC3B,CACI,oBAAqB,CACjB,KAAK,aAAc,CAC3B,CACI,cAAe,CACX,GAAI,CAAE,MAAAA,CAAK,EAAK,KACZA,EAAM,aACNA,EAAM,cAAgB,MAEtBA,EAAM,YAAY,IAAImlH,GAAc,KAAK,UAAU,QAASy0B,IAAe,KAAK,WAAW,WAAY55I,EAAM,KAAK,EAAG,GACrH,EAAK,CAAC,CAElB,CACA,CACA,SAAS45I,IAAe1J,EAAO5jB,EAAO,CAClC,OAAOA,EAAM,IAAKiiB,GAAS2B,EAAM3B,EAAK,GAAG,CAAC,CAC9C,CAIA,MAAMsL,YAAiBnzB,EAAc,CACjC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,mBAAqBjoB,GAAQq7C,GAAkB,EACpD,KAAK,MAAQ,CACT,WAAY,IACf,EACD,KAAK,aAAgBv9I,GAAO,CACpBA,EACA,KAAK,QAAQ,6BAA6B,KAAM,CAC5C,GAAAA,EACA,kBAAmB,KAAK,MAAM,iBAClD,CAAiB,EAGD,KAAK,QAAQ,+BAA+B,IAAI,CAEvD,EACD,KAAK,oBAAuBygE,GAAY,CACpC,GAAI,CAAE,mBAAA+8E,GAAuB,KAAK,MAC9B,CAAE,WAAA5G,GAAe,KAAK,MAC1B,GAAI4G,GAAsB5G,EAAY,CAClC,GAAIn2E,EAAQ,KAAM,CACd,IAAIupD,EAAM4sB,EAAW,eAAen2E,EAAQ,IAAI,EAChDupD,EAAM,KAAK,KAAKA,CAAG,EACfA,IACAA,GAAO,GAEXwzB,EAAmBxzB,CAAG,CAC1C,CACgB,MAAO,EACvB,CACY,MAAO,EACV,EACD,KAAK,gBAAmByzB,GAAc,CAClC,KAAK,UAAYA,CACpB,EACD,KAAK,iBAAoB7G,GAAe,CACpC,KAAK,SAAS,CAAE,WAAAA,EAAY,EACxB,KAAK,MAAM,cACX,KAAK,MAAM,aAAaA,CAAU,CAEzC,CACT,CACI,QAAS,CACL,GAAI,CAAE,MAAAnzI,EAAO,MAAA+X,CAAK,EAAK,KACvB,OAAQmyF,GAAc,MAAO,CAAE,UAAW,mBAAoB,IAAK,KAAK,aAAc,MAAO,CAGrF,MAAOlqG,EAAM,YACb,SAAUA,EAAM,aAChC,CAAe,EACHkqG,GAAckqC,IAAe,CAAE,KAAMp0I,EAAM,KAAM,YAAaA,EAAM,YAAa,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,UAAWA,EAAM,WAAaA,EAAM,aAAe,GAAI,cAAeA,EAAM,cAAe,kBAAmBA,EAAM,KAAOA,EAAM,kBAAoB,KAAqD,SAAU,KAAK,iBAAkB,EACxXkqG,GAAcwvC,IAAiB,CAAE,MAAO15I,EAAM,MAAO,KAAMA,EAAM,KAAM,YAAaA,EAAM,YAAa,iBAAkBA,EAAM,iBAAkB,YAAaA,EAAM,YAAa,YAAaA,EAAM,YAAa,kBAAmBA,EAAM,kBAAmB,eAAgBA,EAAM,eAAgB,UAAWA,EAAM,UAAW,YAAaA,EAAM,YAAa,WAAYA,EAAM,WAAY,QAASA,EAAM,QAAS,iBAAkBA,EAAM,iBAAkB,YAAaA,EAAM,YAAa,cAAeA,EAAM,cAAe,kBAAmBA,EAAM,kBAAmB,WAAY+X,EAAM,WAAY,YAAa,KAAK,gBAAiB,SAAU/X,EAAM,QAAU,EAAC,CACvpB,CACI,mBAAoB,CAChB,KAAK,gBAAkB,KAAK,QAAQ,sBAAsB,KAAK,mBAAmB,CAC1F,CACI,mBAAmB0vB,EAAW,CAC1B,KAAK,gBAAgB,OAAOA,EAAU,cAAgB,KAAK,MAAM,WAAW,CACpF,CACI,sBAAuB,CACnB,KAAK,gBAAgB,OAAQ,CACrC,CACI,SAASi3F,EAAcC,EAAa,CAChC,GAAI,CAAE,QAAAte,EAAS,QAAAr6F,CAAS,EAAG,KAAK,QAC5B,CAAE,UAAA+rI,CAAS,EAAK,KAChB,CAAE,YAAAtlC,GAAgB,KAAK,MACvB,CAAE,WAAAy+B,GAAe,KAAK,MACtB,CAAE,aAAA8G,EAAc,aAAAC,CAAc,EAAG,KAAK,mBAAmB,KAAK,MAAM,aAAcjsI,EAAQ,YAAY,EACtGksI,EAAWH,EAAU,YAAYrzB,CAAY,EAC7CqtB,EAAYb,EAAW,UAAU,WAAWvsB,CAAW,EAC3D,GAAIuzB,GAAY,MAAQnG,GAAa,KAAM,CACvC,IAAIzF,EAAO,KAAK,MAAM,MAAM4L,CAAQ,EAChCC,EAAUjH,EAAW,UAAU,KAAKa,CAAS,EAC7CqG,EAAalH,EAAW,UAAU,UAAUa,CAAS,EACrDsG,GAAW1zB,EAAcwzB,GAAWC,EACpCE,EAAiB,KAAK,MAAMD,EAAUJ,CAAY,EAClDM,EAAYxG,EAAYkG,EAAeK,EACvCE,EAAU,KAAK,MAAM,MAAMN,CAAQ,EAAE,KACrCtoF,EAAO+oC,GAAa8Z,EAAY,YAAa5Z,IAAiBm/C,EAAcO,CAAS,CAAC,EACtFnpI,EAAQi3F,EAAQ,IAAImyC,EAAS5oF,CAAI,EACjCvgD,EAAMg3F,EAAQ,IAAIj3F,EAAO4oI,CAAY,EACzC,MAAO,CACH,YAAAvlC,EACA,SAAU,OAAO,OAAO,CAAE,MAAO,CAAE,MAAArjG,EAAO,IAAAC,CAAG,EAAI,OAAQ,IAASi9H,EAAK,aAAa,EACpF,MAAOyL,EAAU,IAAIG,CAAQ,EAC7B,KAAM,CACF,KAAMH,EAAU,MAAMG,CAAQ,EAC9B,MAAOH,EAAU,OAAOG,CAAQ,EAChC,IAAKC,EACL,OAAQA,EAAUC,CACrB,EACD,MAAO,CACV,CACb,CACQ,OAAO,IACf,CACA,CACA,SAASP,IAAmBnG,EAAc+G,EAAsB,CAC5D,IAAIT,EAAeS,GAAwB/G,EACvCuG,EAAe9+C,GAAqBu4C,EAAcsG,CAAY,EAClE,OAAIC,IAAiB,OACjBD,EAAetG,EACfuG,EAAe,GAGZ,CAAE,aAAAD,EAAc,aAAAC,CAAc,CACzC,CAEA,MAAMS,YAA0BjuB,EAAO,CACnC,WAAWjgB,EAAOmuC,EAAW,CACzB,IAAI9/B,EAAO,CAAE,EACb,QAASyR,EAAM,EAAGA,EAAMquB,EAAU,OAAQruB,GAAO,EAAG,CAChD,IAAI9P,EAAWxQ,GAAgBQ,EAAOmuC,EAAUruB,CAAG,CAAC,EAChD9P,GACA3B,EAAK,KAAK,CACN,MAAO2B,EAAS,MAChB,IAAKA,EAAS,IACd,QAASA,EAAS,MAAM,QAAS,IAAKhQ,EAAM,MAAM,QAAS,EAC3D,MAAOgQ,EAAS,IAAI,QAAS,IAAKhQ,EAAM,IAAI,QAAS,EACrD,IAAA8f,CACpB,CAAiB,CAEjB,CACQ,OAAOzR,CACf,CACA,CAEA,MAAM+/B,YAAoBn0B,EAAc,CACpC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,eAAiBjoB,GAAQq8C,GAAc,EAC5C,KAAK,OAAS,IAAIH,IAClB,KAAK,YAAclvI,GAAW,CACtC,CACI,QAAS,CACL,GAAI,CAAE,MAAAzL,EAAO,QAAAymB,CAAO,EAAK,KACrB,CAAE,YAAAiuF,EAAa,cAAAm9B,CAAa,EAAK7xI,EACjC,CAAE,aAAA+6I,EAAc,iBAAAhuC,CAAkB,EAAGtmF,EAAQ,QAC7Cm0H,EAAY,KAAK,eAAe/I,EAAen9B,EAAajuF,EAAQ,OAAO,EAG/E,OAAQyjF,GAAcygB,GAAU,CAAE,KAAMowB,EAAe,SAAW,OAAS,CAACv+B,EAASD,IAAgBrS,GAAc2vC,IAAU,OAAO,OAAO,CAAE,IAAK,KAAK,aAAe,KAAK,OAAO,WAAW75I,EAAO00G,EAAa,KAAMjuF,EAASm0H,CAAS,EAAG,CAAE,SAAU56I,EAAM,SAAU,KAAMA,EAAM,KAAM,YAAa00G,EAAa,UAAW10G,EAAM,UAAW,aAAcA,EAAM,aAAc,MAAO6xI,EAAc,MAAM,CAAC,EAAG,kBAAmB7xI,EAAM,kBAAmB,cAAeA,EAAM,cAAe,YAAaA,EAAM,YAAa,aAAcA,EAAM,aAAc,WAAYA,EAAM,WAAY,QAASw8G,EAAS,iBAAkBu+B,GAAgB,KAAK,OAAO,aAAav+B,EAAS9H,EAAa3H,EAAkBtmF,EAASm0H,CAAS,EAAG,WAAYr+B,EAAY,mBAAoBv8G,EAAM,mBAAoB,aAAcA,EAAM,aAAc,CAAC,CAAE,CAC9zB,CACA,CACA,SAAS86I,IAAejJ,EAAen9B,EAAapM,EAAS,CACzD,IAAIoD,EAAS,CAAE,EACf,QAASzwD,KAAQ42F,EAAc,YAC3BnmC,EAAO,KAAK,CACR,MAAOpD,EAAQ,IAAIrtD,EAAMy5D,EAAY,WAAW,EAChD,IAAKpM,EAAQ,IAAIrtD,EAAMy5D,EAAY,WAAW,CAC1D,CAAS,EAEL,OAAOhJ,CACX,CAIA,MAAMsvC,GAAsB,CACxB,CAAE,MAAO,CAAG,EACZ,CAAE,QAAS,EAAI,EACf,CAAE,QAAS,EAAI,EACf,CAAE,QAAS,EAAI,EACf,CAAE,QAAS,EAAI,CACnB,EACA,SAASC,IAAevsC,EAAaC,EAAausC,EAAuBvH,EAAcrrC,EAAS,CAC5F,IAAI3K,EAAW,IAAI,KAAK,CAAC,EACrBw9C,EAAWzsC,EACX0sC,EAAehhD,GAAe,CAAC,EAC/BihD,EAAgBH,GAAyBI,IAAqB3H,CAAY,EAC1E4H,EAAQ,CAAE,EACd,KAAOpgD,GAAUggD,CAAQ,EAAIhgD,GAAUwT,CAAW,GAAG,CACjD,IAAI1zD,EAAOqtD,EAAQ,IAAI3K,EAAUw9C,CAAQ,EACrCK,EAAYpgD,GAAqBggD,EAAcC,CAAa,IAAM,KACtEE,EAAM,KAAK,CACP,KAAAtgG,EACA,KAAMkgG,EACN,IAAKlgG,EAAK,YAAa,EACvB,WAAYojD,IAAoBpjD,CAAI,EACpC,UAAAugG,CACZ,CAAS,EACDL,EAAWvgD,GAAaugD,EAAUxH,CAAY,EAC9CyH,EAAexgD,GAAawgD,EAAczH,CAAY,CAC9D,CACI,OAAO4H,CACX,CAEA,SAASD,IAAqB3H,EAAc,CACxC,IAAIn3I,EACA6+I,EACAI,EAEJ,IAAKj/I,EAAIw+I,GAAoB,OAAS,EAAGx+I,GAAK,EAAGA,GAAK,EAGlD,GAFA6+I,EAAgBjhD,GAAe4gD,GAAoBx+I,CAAC,CAAC,EACrDi/I,EAAgBrgD,GAAqBigD,EAAe1H,CAAY,EAC5D8H,IAAkB,MAAQA,EAAgB,EAC1C,OAAOJ,EAGf,OAAO1H,CACX,CAEA,MAAM+H,YAAwB5I,GAAa,CACvC,aAAc,CACV,MAAM,GAAG,SAAS,EAClB,KAAK,mBAAqBr0C,GAAQk9C,GAAkB,EACpD,KAAK,eAAiBl9C,GAAQw8C,GAAc,CACpD,CACI,QAAS,CACL,GAAI,CAAE,QAAAhtI,EAAS,QAAAq6F,EAAS,qBAAAD,CAAsB,EAAG,KAAK,QAClD,CAAE,MAAAroG,CAAK,EAAK,KACZ,CAAE,YAAA00G,CAAW,EAAK10G,EAClB6xI,EAAgB,KAAK,mBAAmBn9B,EAAarM,CAAoB,EACzEsZ,EAAa,KAAK,eAAe,WAAW3hH,CAAK,EACjDszI,EAAY,KAAK,eAAe5+B,EAAY,YAAaA,EAAY,YAAazmG,EAAQ,kBAAmBA,EAAQ,aAAcq6F,CAAO,EAC1I,CAAE,YAAA0hC,CAAW,EAAK/7H,EAClB2tI,EAAkB,CAAC5R,EACnB6R,EAAkB7R,EAClBiI,EAAgBhkI,EAAQ,YAAei8F,GAAc+gB,GAAW,CAAE,MAAO4mB,EAAc,YAAa,YAAan9B,EAAa,qBAAsB,GAAM,YAAaknC,EAAkB,KAAK,eAAiB,IAAI,CAAE,EACrNxI,EAAiBnlI,EAAQ,aAAe,KAAYikI,GAAgBhoC,GAAc4nC,GAAU,OAAO,OAAO,CAAE,EAAEnwB,EAAW,OAAQ,CAAE,YAAajN,EAAa,cAAem9B,EAAe,iBAAkB5jI,EAAQ,iBAAkB,cAAeikI,EAAW,cAAe,aAAcA,EAAW,kBAAmB,eAAgB0J,EAAkB,KAAK,mBAAqB,KAAM,gBAAiB,GAAO,WAAY,GAAO,iBAAkB,KAAK,YAAa,YAAa1J,EAAW,YAAa,aAAcA,EAAW,aAAc,SAAUlyI,EAAM,QAAU,EAAE,KAAK,uBAAwB,EAAC,GACnlB87I,EAAmB5J,GAAgBhoC,GAAc2wC,IAAa,OAAO,OAAO,CAAE,EAAEl5B,EAAW,MAAO,CAAE,cAAekwB,EAAe,YAAan9B,EAAa,KAAMknC,EAAiB,aAAc3tI,EAAQ,aAAc,UAAWqlI,EAAW,SAAUtzI,EAAM,SAAU,kBAAmBkyI,EAAW,kBAAmB,cAAeA,EAAW,cAAe,YAAaA,EAAW,YAAa,aAAcA,EAAW,aAAc,aAAc,KAAK,iBAAkB,WAAYA,EAAW,WAAY,mBAAoB,KAAK,sBAAsB,CAAE,CAAC,EAC3iB,OAAO2J,EACD,KAAK,oBAAoB5J,EAAemB,EAAe0I,EAAiBjK,EAAc,OAAQ7H,EAAasJ,EAAW,KAAK,MAAM,UAAU,EAC3I,KAAK,mBAAmBrB,EAAemB,EAAe0I,CAAe,CACnF,CACA,CACA,SAASH,IAAmBjnC,EAAarM,EAAsB,CAC3D,IAAI0jB,EAAY,IAAIP,GAAe9W,EAAY,YAAarM,CAAoB,EAChF,OAAO,IAAIyjB,GAAcC,EAAW,EAAK,CAC7C,CAEA,IAAI71B,IAAW,81KACfnB,GAAamB,GAAQ,EChnCrB,MAAM6lD,IAAkB,CACpB,WAAY,OAChB,EAEG,IAACv0I,IAAQ2xH,GAAa,CACrB,KAAM,yBACN,YAAa,eACb,eAAgB4iB,IAChB,MAAO,CACH,SAAU,CACN,UAAWL,IACX,eAAgB,GAChB,WAAY,GACZ,aAAc,WACd,iBAAkB,EACrB,EACD,YAAa,CACT,KAAM,WACN,SAAU,CAAE,KAAM,CAAG,CACxB,EACD,aAAc,CACV,KAAM,WACN,SAAU,CAAE,MAAO,CAAG,CACzB,CACJ,CACL,CAAC,EC5BD3+E,GAAO,qBAAuB,IAC9B,IAAIi/E,GAAmB,EACnBC,GAAc,EACdC,GAA6B,GAcjC,MAAMC,EAAgB,CAClB,YAAYxK,EAAa,CACrB,KAAK,UAAY,KAEjB,KAAK,SAAW,GAChB,KAAK,eAAiB,GACtB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GAEzB,KAAK,WAAa,GAClB,KAAK,gBAAkB,GACvB,KAAK,eAAiB,GAGtB,KAAK,gBAAmB16C,GAAO,CAC3B,GAAI,CAAC,KAAK,kBAAmB,GACzBmlD,IAAqBnlD,CAAE,GACvB,KAAK,SAASA,CAAE,EAAG,CACnB,IAAI8f,EAAM,KAAK,qBAAqB9f,EAAI,EAAI,EAC5C,KAAK,QAAQ,QAAQ,cAAe8f,CAAG,EACvC,KAAK,gBAAgBA,CAAG,EACnB,KAAK,kBACN,SAAS,iBAAiB,YAAa,KAAK,eAAe,EAE/D,SAAS,iBAAiB,UAAW,KAAK,aAAa,CACvE,CACS,EACD,KAAK,gBAAmB9f,GAAO,CAC3B,IAAI8f,EAAM,KAAK,qBAAqB9f,CAAE,EACtC,KAAK,aAAa8f,CAAG,EACrB,KAAK,QAAQ,QAAQ,cAAeA,CAAG,CAC1C,EACD,KAAK,cAAiB9f,GAAO,CACzB,SAAS,oBAAoB,YAAa,KAAK,eAAe,EAC9D,SAAS,oBAAoB,UAAW,KAAK,aAAa,EAC1D,KAAK,QAAQ,QAAQ,YAAa,KAAK,qBAAqBA,CAAE,CAAC,EAC/D,KAAK,QAAO,CACf,EAGD,KAAK,iBAAoBA,GAAO,CAAE,EAqBlC,KAAK,gBAAmBA,GAAO,CAC3B,IAAI8f,EAAM,KAAK,qBAAqB9f,CAAE,EACtC,KAAK,aAAa8f,CAAG,EACrB,KAAK,QAAQ,QAAQ,cAAeA,CAAG,CAC1C,EACD,KAAK,eAAkB9f,GAAO,CAC1B,GAAI,KAAK,WAAY,CACjB,IAAIolD,EAAWplD,EAAG,OAClBolD,EAAS,oBAAoB,YAAa,KAAK,eAAe,EAC9DA,EAAS,oBAAoB,WAAY,KAAK,cAAc,EAC5DA,EAAS,oBAAoB,cAAe,KAAK,cAAc,EAC/D,OAAO,oBAAoB,SAAU,KAAK,kBAAmB,EAAI,EACjE,KAAK,QAAQ,QAAQ,YAAa,KAAK,qBAAqBplD,CAAE,CAAC,EAC/D,KAAK,QAAO,EACZ,KAAK,gBAAkB,GACvBqlD,IAAoB,CACpC,CACS,EACD,KAAK,kBAAoB,IAAM,CAC3B,KAAK,eAAiB,EACzB,EACD,KAAK,aAAgBrlD,GAAO,CACxB,GAAI,CAAC,KAAK,iBAAkB,CACxB,IAAIslD,EAAS,OAAO,QAAU,KAAK,YAAe,KAAK,UACnDC,EAAS,OAAO,QAAU,KAAK,YAAe,KAAK,UACvD,KAAK,QAAQ,QAAQ,cAAe,CAChC,UAAWvlD,EACX,QAAS,KAAK,gBACd,UAAW,KAAK,UAChB,MAAAslD,EACA,MAAAC,EACA,OAAQD,EAAQ,KAAK,UACrB,OAAQC,EAAQ,KAAK,SACzC,CAAiB,CACjB,CACS,EACD,KAAK,YAAc7K,EACnB,KAAK,QAAU,IAAIz7B,GACnBy7B,EAAY,iBAAiB,YAAa,KAAK,eAAe,EAC9DA,EAAY,iBAAiB,aAAc,KAAK,iBAAkB,CAAE,QAAS,GAAM,EACnF8K,IAAiB,CACzB,CACI,SAAU,CACN,KAAK,YAAY,oBAAoB,YAAa,KAAK,eAAe,EACtE,KAAK,YAAY,oBAAoB,aAAc,KAAK,iBAAkB,CAAE,QAAS,GAAM,EAC3FC,IAAmB,CAC3B,CACI,SAASzlD,EAAI,CACT,IAAIs6C,EAAY,KAAK,eAAet6C,CAAE,EAClC0lD,EAAS1lD,EAAG,OAChB,OAAIs6C,IACC,CAAC,KAAK,gBAAkB/6C,GAAemmD,EAAQ,KAAK,cAAc,IACnE,KAAK,UAAYpL,EACjB,KAAK,WAAa,GAClB,KAAK,eAAiB,GACf,IAEJ,EACf,CACI,SAAU,CACN2K,GAA6B,GAC7B,KAAK,WAAa,GAClB,KAAK,UAAY,KAEjB,KAAK,mBAAoB,CACjC,CACI,eAAejlD,EAAI,CACf,OAAI,KAAK,SACET,GAAeS,EAAG,OAAQ,KAAK,QAAQ,EAE3C,KAAK,WACpB,CACI,mBAAoB,CAChB,OAAO+kD,IAAoB,KAAK,eACxC,CAEI,mBAAoB,CACZ,KAAK,aACLE,GAA6B,GAEzC,CAGI,gBAAgBjlD,EAAI,CACZ,KAAK,oBACL,KAAK,aAAaA,CAAE,EACpB,OAAO,iBAAiB,SAAU,KAAK,aAAc,EAAI,EAErE,CACI,aAAaA,EAAI,CACT,KAAK,oBACL,KAAK,UAAYA,EAAG,MACpB,KAAK,UAAYA,EAAG,MACpB,KAAK,YAAc,OAAO,QAC1B,KAAK,YAAc,OAAO,QAEtC,CACI,oBAAqB,CACb,KAAK,mBACL,OAAO,oBAAoB,SAAU,KAAK,aAAc,EAAI,CAExE,CAGI,qBAAqBA,EAAI2lD,EAAS,CAC9B,IAAIC,EAAS,EACTC,EAAS,EAEb,OAAIF,GACA,KAAK,UAAY3lD,EAAG,MACpB,KAAK,UAAYA,EAAG,QAGpB4lD,EAAS5lD,EAAG,MAAQ,KAAK,UACzB6lD,EAAS7lD,EAAG,MAAQ,KAAK,WAEtB,CACH,UAAWA,EACX,QAAS,GACT,UAAW,KAAK,UAChB,MAAOA,EAAG,MACV,MAAOA,EAAG,MACV,OAAA4lD,EACA,OAAAC,CACH,CACT,CACI,qBAAqB7lD,EAAI2lD,EAAS,CAC9B,IAAIG,EAAU9lD,EAAG,QACbslD,EACAC,EACAK,EAAS,EACTC,EAAS,EAGb,OAAIC,GAAWA,EAAQ,QACnBR,EAAQQ,EAAQ,CAAC,EAAE,MACnBP,EAAQO,EAAQ,CAAC,EAAE,QAGnBR,EAAQtlD,EAAG,MACXulD,EAAQvlD,EAAG,OAGX2lD,GACA,KAAK,UAAYL,EACjB,KAAK,UAAYC,IAGjBK,EAASN,EAAQ,KAAK,UACtBO,EAASN,EAAQ,KAAK,WAEnB,CACH,UAAWvlD,EACX,QAAS,GACT,UAAW,KAAK,UAChB,MAAAslD,EACA,MAAAC,EACA,OAAAK,EACA,OAAAC,CACH,CACT,CACA,CAEA,SAASV,IAAqBnlD,EAAI,CAC9B,OAAOA,EAAG,SAAW,GAAK,CAACA,EAAG,OAClC,CAGA,SAASqlD,KAAqB,CAC1BN,IAAoB,EACpB,WAAW,IAAM,CACbA,IAAoB,CAC5B,EAAOj/E,GAAO,oBAAoB,CAClC,CAGA,SAAS0/E,KAAkB,CACvBR,IAAe,EACXA,KAAgB,GAChB,OAAO,iBAAiB,YAAae,GAAmB,CAAE,QAAS,GAAO,CAElF,CACA,SAASN,KAAoB,CACzBT,IAAe,EACVA,IACD,OAAO,oBAAoB,YAAae,GAAmB,CAAE,QAAS,GAAO,CAErF,CACA,SAASA,GAAkB/lD,EAAI,CACvBilD,IACAjlD,EAAG,eAAgB,CAE3B,CAOA,MAAMgmD,GAAc,CAChB,aAAc,CACV,KAAK,UAAY,GACjB,KAAK,SAAW,KAChB,KAAK,SAAW,KAChB,KAAK,aAAe,KAEpB,KAAK,WAAa,SAAS,KAC3B,KAAK,OAAS,KACd,KAAK,eAAiB,CAC9B,CACI,MAAMC,EAAUX,EAAOC,EAAO,CAC1B,KAAK,SAAWU,EAChB,KAAK,aAAe,KAAK,SAAS,sBAAuB,EACzD,KAAK,YAAcX,EAAQ,OAAO,QAClC,KAAK,YAAcC,EAAQ,OAAO,QAClC,KAAK,OAAS,EACd,KAAK,OAAS,EACd,KAAK,iBAAkB,CAC/B,CACI,WAAWD,EAAOC,EAAO,CACrB,KAAK,OAAUD,EAAQ,OAAO,QAAW,KAAK,YAC9C,KAAK,OAAUC,EAAQ,OAAO,QAAW,KAAK,YAC9C,KAAK,iBAAkB,CAC/B,CAEI,aAAa1yB,EAAM,CACXA,EACK,KAAK,YACF,KAAK,WACL,KAAK,SAAS,MAAM,QAAU,IAElC,KAAK,UAAYA,EACjB,KAAK,iBAAgB,GAGpB,KAAK,YACN,KAAK,WACL,KAAK,SAAS,MAAM,QAAU,QAElC,KAAK,UAAYA,EAE7B,CAEI,KAAKqzB,EAAsBjzI,EAAU,CACjC,IAAIP,EAAO,IAAM,CACb,KAAK,QAAS,EACdO,EAAU,CACb,EACGizI,GACA,KAAK,UACL,KAAK,WACL,KAAK,iBACJ,KAAK,QAAU,KAAK,QAErB,KAAK,kBAAkBxzI,EAAM,KAAK,cAAc,EAGhD,WAAWA,EAAM,CAAC,CAE9B,CACI,kBAAkBO,EAAUkzI,EAAgB,CACxC,IAAIC,EAAW,KAAK,SAChBC,EAAoB,KAAK,SAAS,sBAAqB,EAC3DD,EAAS,MAAM,WACX,OAASD,EAAiB,WACZA,EAAiB,KACnCtmD,GAAWumD,EAAU,CACjB,KAAMC,EAAkB,KACxB,IAAKA,EAAkB,GACnC,CAAS,EACDplD,IAAmBmlD,EAAU,IAAM,CAC/BA,EAAS,MAAM,WAAa,GAC5BnzI,EAAU,CACtB,CAAS,CACT,CACI,SAAU,CACF,KAAK,WACLqsF,GAAc,KAAK,QAAQ,EAC3B,KAAK,SAAW,MAEpB,KAAK,SAAW,IACxB,CACI,kBAAmB,CACX,KAAK,UAAY,KAAK,WACtBO,GAAW,KAAK,cAAe,CAC3B,KAAM,KAAK,aAAa,KAAO,KAAK,OACpC,IAAK,KAAK,aAAa,IAAM,KAAK,MAClD,CAAa,CAEb,CACI,aAAc,CACV,IAAIymD,EAAe,KAAK,aACpBF,EAAW,KAAK,SACpB,OAAKA,IACDA,EAAW,KAAK,SAAW,KAAK,SAAS,UAAU,EAAI,EAGvDA,EAAS,MAAM,WAAa,OAC5BA,EAAS,MAAM,iBAAmB,OAClCA,EAAS,MAAM,cAAgB,OAC/BA,EAAS,UAAU,IAAI,mBAAmB,EAC1CvmD,GAAWumD,EAAU,CACjB,SAAU,QACV,OAAQ,KAAK,OACb,WAAY,GACZ,UAAW,aACX,MAAOE,EAAa,MAAQA,EAAa,KACzC,OAAQA,EAAa,OAASA,EAAa,IAC3C,MAAO,OACP,OAAQ,OACR,OAAQ,CACxB,CAAa,EACD,KAAK,WAAW,YAAYF,CAAQ,GAEjCA,CACf,CACA,CAUA,MAAMG,WAAwBn3B,EAAiB,CAC3C,YAAYo3B,EAAkBC,EAAe,CACzC,MAAO,EACP,KAAK,aAAe,IAAM,CACtB,KAAK,UAAY,KAAK,iBAAiB,aAAc,EACrD,KAAK,WAAa,KAAK,iBAAiB,cAAe,EACvD,KAAK,mBAAoB,CAC5B,EACD,KAAK,iBAAmBD,EACxB,KAAK,cAAgBC,EACrB,KAAK,UAAY,KAAK,cAAgBD,EAAiB,aAAc,EACrE,KAAK,WAAa,KAAK,eAAiBA,EAAiB,cAAe,EACxE,KAAK,YAAcA,EAAiB,eAAgB,EACpD,KAAK,aAAeA,EAAiB,gBAAiB,EACtD,KAAK,YAAcA,EAAiB,eAAgB,EACpD,KAAK,aAAeA,EAAiB,gBAAiB,EACtD,KAAK,WAAa,KAAK,oBACnB,KAAK,eACL,KAAK,eAAc,EAAG,iBAAiB,SAAU,KAAK,YAAY,CAE9E,CACI,SAAU,CACF,KAAK,eACL,KAAK,eAAc,EAAG,oBAAoB,SAAU,KAAK,YAAY,CAEjF,CACI,cAAe,CACX,OAAO,KAAK,SACpB,CACI,eAAgB,CACZ,OAAO,KAAK,UACpB,CACI,aAAal3B,EAAK,CACd,KAAK,iBAAiB,aAAaA,CAAG,EACjC,KAAK,gBAGN,KAAK,UAAY,KAAK,IAAI,KAAK,IAAIA,EAAK,KAAK,gBAAiB,GAAG,CAAC,EAClE,KAAK,mBAAoB,EAErC,CACI,cAAcA,EAAK,CACf,KAAK,iBAAiB,cAAcA,CAAG,EAClC,KAAK,gBAGN,KAAK,WAAa,KAAK,IAAI,KAAK,IAAIA,EAAK,KAAK,iBAAkB,GAAG,CAAC,EACpE,KAAK,mBAAoB,EAErC,CACI,gBAAiB,CACb,OAAO,KAAK,WACpB,CACI,iBAAkB,CACd,OAAO,KAAK,YACpB,CACI,gBAAiB,CACb,OAAO,KAAK,WACpB,CACI,iBAAkB,CACd,OAAO,KAAK,YACpB,CACI,oBAAqB,CACzB,CACA,CAEA,MAAMo3B,WAA+BH,EAAgB,CACjD,YAAYjhJ,EAAImhJ,EAAe,CAC3B,MAAM,IAAIp3B,IAAwB/pH,CAAE,EAAGmhJ,CAAa,CAC5D,CACI,gBAAiB,CACb,OAAO,KAAK,iBAAiB,EACrC,CACI,mBAAoB,CAChB,OAAOn5B,IAAiB,KAAK,iBAAiB,EAAE,CACxD,CACA,CAEA,MAAMq5B,YAA8BJ,EAAgB,CAChD,YAAYE,EAAe,CACvB,MAAM,IAAIj3B,IAA0Bi3B,CAAa,CACzD,CACI,gBAAiB,CACb,OAAO,MACf,CACI,mBAAoB,CAChB,MAAO,CACH,KAAM,KAAK,WACX,MAAO,KAAK,WAAa,KAAK,YAC9B,IAAK,KAAK,UACV,OAAQ,KAAK,UAAY,KAAK,YACjC,CACT,CAGI,oBAAqB,CACjB,KAAK,WAAa,KAAK,kBAAmB,CAClD,CACA,CAKA,MAAMG,GAAU,OAAO,aAAgB,WAAa,YAAY,IAAM,KAAK,IAO3E,MAAMC,GAAa,CACf,aAAc,CAEV,KAAK,UAAY,GACjB,KAAK,YAAc,CAAC,OAAQ,cAAc,EAC1C,KAAK,cAAgB,GACrB,KAAK,YAAc,IAEnB,KAAK,eAAiB,KACtB,KAAK,eAAiB,KACtB,KAAK,YAAc,GACnB,KAAK,aAAe,KAEpB,KAAK,YAAc,GACnB,KAAK,cAAgB,GACrB,KAAK,cAAgB,GACrB,KAAK,eAAiB,GACtB,KAAK,QAAU,IAAM,CACjB,GAAI,KAAK,YAAa,CAClB,IAAIC,EAAO,KAAK,gBAAgB,KAAK,eAAiB,OAAO,QAAS,KAAK,eAAiB,OAAO,OAAO,EAC1G,GAAIA,EAAM,CACN,IAAIx5E,EAAMs5E,GAAS,EACnB,KAAK,WAAWE,GAAOx5E,EAAM,KAAK,gBAAkB,GAAI,EACxD,KAAK,iBAAiBA,CAAG,CAC7C,MAEoB,KAAK,YAAc,EAEvC,CACS,CACT,CACI,MAAMg4E,EAAOC,EAAOwB,EAAe,CAC3B,KAAK,YACL,KAAK,aAAe,KAAK,YAAYA,CAAa,EAClD,KAAK,eAAiB,KACtB,KAAK,eAAiB,KACtB,KAAK,YAAc,GACnB,KAAK,cAAgB,GACrB,KAAK,cAAgB,GACrB,KAAK,eAAiB,GACtB,KAAK,WAAWzB,EAAOC,CAAK,EAExC,CACI,WAAWD,EAAOC,EAAO,CACrB,GAAI,KAAK,UAAW,CAChB,IAAIyB,EAAiB1B,EAAQ,OAAO,QAChC2B,EAAiB1B,EAAQ,OAAO,QAChC2B,EAAS,KAAK,iBAAmB,KAAO,EAAID,EAAiB,KAAK,eAClEE,EAAS,KAAK,iBAAmB,KAAO,EAAIH,EAAiB,KAAK,eAClEE,EAAS,EACT,KAAK,YAAc,GAEdA,EAAS,IACd,KAAK,cAAgB,IAErBC,EAAS,EACT,KAAK,cAAgB,GAEhBA,EAAS,IACd,KAAK,eAAiB,IAE1B,KAAK,eAAiBH,EACtB,KAAK,eAAiBC,EACjB,KAAK,cACN,KAAK,YAAc,GACnB,KAAK,iBAAiBL,IAAS,EAE/C,CACA,CACI,MAAO,CACH,GAAI,KAAK,UAAW,CAChB,KAAK,YAAc,GACnB,QAASQ,KAAe,KAAK,aACzBA,EAAY,QAAS,EAEzB,KAAK,aAAe,IAChC,CACA,CACI,iBAAiB95E,EAAK,CAClB,KAAK,eAAiBA,EACtB,sBAAsB,KAAK,OAAO,CAC1C,CACI,WAAWw5E,EAAMr2F,EAAS,CACtB,GAAI,CAAE,YAAA22F,CAAW,EAAKN,EAClB,CAAE,cAAAO,CAAa,EAAK,KACpBC,EAAcD,EAAgBP,EAAK,SACnCS,EACDD,EAAcA,GAAgBD,EAAgBA,GAC7C,KAAK,YAAc52F,EACnB9I,EAAO,EACX,OAAQm/F,EAAK,KAAI,CACb,IAAK,OACDn/F,EAAO,GAEX,IAAK,QACDy/F,EAAY,cAAcA,EAAY,cAAa,EAAKG,EAAW5/F,CAAI,EACvE,MACJ,IAAK,MACDA,EAAO,GAEX,IAAK,SACDy/F,EAAY,aAAaA,EAAY,aAAY,EAAKG,EAAW5/F,CAAI,EACrE,KAChB,CACA,CAEI,gBAAgB4nE,EAAMD,EAAK,CACvB,GAAI,CAAE,cAAA+3B,CAAa,EAAK,KACpBG,EAAW,KACXC,EAAe,KAAK,cAAgB,CAAE,EAC1C,QAASL,KAAeK,EAAc,CAClC,IAAIj+B,EAAO49B,EAAY,WACnBM,EAAWn4B,EAAO/F,EAAK,KACvBm+B,EAAYn+B,EAAK,MAAQ+F,EACzBq4B,EAAUt4B,EAAM9F,EAAK,IACrBq+B,EAAar+B,EAAK,OAAS8F,EAE3Bo4B,GAAY,GAAKC,GAAa,GAAKC,GAAW,GAAKC,GAAc,IAC7DD,GAAWP,GAAiB,KAAK,aAAeD,EAAY,YAAa,IACxE,CAACI,GAAYA,EAAS,SAAWI,KAClCJ,EAAW,CAAE,YAAAJ,EAAa,KAAM,MAAO,SAAUQ,CAAS,GAE1DC,GAAcR,GAAiB,KAAK,eAAiBD,EAAY,cAAe,IAC/E,CAACI,GAAYA,EAAS,SAAWK,KAClCL,EAAW,CAAE,YAAAJ,EAAa,KAAM,SAAU,SAAUS,CAAY,GAMhEH,GAAYL,GAAiB,KAAK,eAAiBD,EAAY,cAAe,IAC7E,CAACI,GAAYA,EAAS,SAAWE,KAClCF,EAAW,CAAE,YAAAJ,EAAa,KAAM,OAAQ,SAAUM,CAAU,GAE5DC,GAAaN,GAAiB,KAAK,gBAAkBD,EAAY,eAAgB,IAChF,CAACI,GAAYA,EAAS,SAAWG,KAClCH,EAAW,CAAE,YAAAJ,EAAa,KAAM,QAAS,SAAUO,CAAW,GAGlF,CACQ,OAAOH,CACf,CACI,YAAYT,EAAe,CACvB,OAAO,KAAK,eAAeA,CAAa,EAAE,IAAKzhJ,GACvCA,IAAO,OACA,IAAIqhJ,IAAsB,EAAK,EAEnC,IAAID,GAAuBphJ,EAAI,EAAK,CAC9C,CACT,CACI,eAAeyhJ,EAAe,CAC1B,IAAI34B,EAAM,CAAE,EACZ,QAAS7+E,KAAS,KAAK,YACf,OAAOA,GAAU,SACjB6+E,EAAI,KAAK7+E,CAAK,EAOd6+E,EAAI,KAAK,GAAG,MAAM,UAAU,MAAM,KAAK24B,EAAc,YAAa,EAAC,iBAAiBx3G,CAAK,CAAC,CAAC,EAGnG,OAAO6+E,CACf,CACA,CAQA,MAAM05B,WAAkCl1B,GAAgB,CACpD,YAAY8nB,EAAap3G,EAAU,CAC/B,MAAMo3G,CAAW,EACjB,KAAK,YAAcA,EAGnB,KAAK,MAAQ,KACb,KAAK,YAAc,EACnB,KAAK,mBAAqB,GAC1B,KAAK,kBAAoB,GACzB,KAAK,cAAgB,GACrB,KAAK,WAAa,GAClB,KAAK,aAAe,GACpB,KAAK,oBAAsB,GAC3B,KAAK,eAAiB,KACtB,KAAK,cAAiB16C,GAAO,CACpB,KAAK,aACN,KAAK,cAAgB,GACrB,KAAK,aAAe,GACpB,KAAK,oBAAsB,GAC3B0B,IAAiB,SAAS,IAAI,EAC9BE,IAAmB,SAAS,IAAI,EAI3B5B,EAAG,SACJA,EAAG,UAAU,eAAgB,EAEjC,KAAK,QAAQ,QAAQ,cAAeA,CAAE,EAClC,KAAK,eACL,CAAC,KAAK,QAAQ,mBAEd,KAAK,OAAO,aAAa,EAAK,EAC9B,KAAK,OAAO,MAAMA,EAAG,UAAWA,EAAG,MAAOA,EAAG,KAAK,EAClD,KAAK,WAAWA,CAAE,EACb,KAAK,aACN,KAAK,wBAAwBA,CAAE,GAI9C,EACD,KAAK,cAAiBA,GAAO,CACzB,GAAI,KAAK,cAAe,CAEpB,GADA,KAAK,QAAQ,QAAQ,cAAeA,CAAE,EAClC,CAAC,KAAK,oBAAqB,CAC3B,IAAI+nD,EAAc,KAAK,YACnBC,EACA,CAAE,OAAApC,EAAQ,OAAAC,CAAM,EAAK7lD,EACzBgoD,EAAapC,EAASA,EAASC,EAASA,EACpCmC,GAAcD,EAAcA,GAC5B,KAAK,wBAAwB/nD,CAAE,CAEvD,CACoB,KAAK,aAEDA,EAAG,UAAU,OAAS,WACtB,KAAK,OAAO,WAAWA,EAAG,MAAOA,EAAG,KAAK,EACzC,KAAK,aAAa,WAAWA,EAAG,MAAOA,EAAG,KAAK,GAEnD,KAAK,QAAQ,QAAQ,WAAYA,CAAE,EAEvD,CACS,EACD,KAAK,YAAeA,GAAO,CACnB,KAAK,gBACL,KAAK,cAAgB,GACrB2B,IAAe,SAAS,IAAI,EAC5BE,IAAiB,SAAS,IAAI,EAC9B,KAAK,QAAQ,QAAQ,YAAa7B,CAAE,EAChC,KAAK,aACL,KAAK,aAAa,KAAM,EACxB,KAAK,YAAYA,CAAE,GAEnB,KAAK,iBACL,aAAa,KAAK,cAAc,EAChC,KAAK,eAAiB,MAGjC,EACD,IAAIioD,EAAU,KAAK,QAAU,IAAI/C,GAAgBxK,CAAW,EAC5DuN,EAAQ,QAAQ,GAAG,cAAe,KAAK,aAAa,EACpDA,EAAQ,QAAQ,GAAG,cAAe,KAAK,aAAa,EACpDA,EAAQ,QAAQ,GAAG,YAAa,KAAK,WAAW,EAC5C3kH,IACA2kH,EAAQ,SAAW3kH,GAEvB,KAAK,OAAS,IAAI0iH,IAClB,KAAK,aAAe,IAAIa,GAChC,CACI,SAAU,CACN,KAAK,QAAQ,QAAS,EAGtB,KAAK,YAAY,EAAE,CAC3B,CACI,WAAW7mD,EAAI,CACP,OAAO,KAAK,OAAU,SACtB,KAAK,eAAiB,WAAW,IAAM,CACnC,KAAK,eAAiB,KACtB,KAAK,eAAeA,CAAE,CACtC,EAAe,KAAK,KAAK,EAGb,KAAK,eAAeA,CAAE,CAElC,CACI,eAAeA,EAAI,CACf,KAAK,aAAe,GACpB,KAAK,aAAaA,CAAE,CAC5B,CACI,wBAAwBA,EAAI,CACxB,KAAK,oBAAsB,GAC3B,KAAK,aAAaA,CAAE,CAC5B,CACI,aAAaA,EAAI,CACT,KAAK,cAAgB,KAAK,sBACtB,CAAC,KAAK,QAAQ,gBAAkB,KAAK,sBACrC,KAAK,WAAa,GAClB,KAAK,kBAAoB,GACzB,KAAK,aAAa,MAAMA,EAAG,MAAOA,EAAG,MAAO,KAAK,WAAW,EAC5D,KAAK,QAAQ,QAAQ,YAAaA,CAAE,EAChC,KAAK,qBAAuB,IAC5B,KAAK,QAAQ,kBAAmB,EAIpD,CACI,YAAYA,EAAI,CAGZ,KAAK,OAAO,KAAK,KAAK,kBAAmB,KAAK,SAAS,KAAK,KAAMA,CAAE,CAAC,CAC7E,CACI,SAASA,EAAI,CACT,KAAK,WAAa,GAClB,KAAK,QAAQ,QAAQ,UAAWA,CAAE,CAC1C,CAEI,cAAc6yB,EAAM,CAChB,KAAK,QAAQ,iBAAmBA,CACxC,CACI,mBAAmBA,EAAM,CACrB,KAAK,OAAO,aAAaA,CAAI,CACrC,CACI,qBAAqBA,EAAM,CACvB,KAAK,kBAAoBA,CACjC,CACI,qBAAqBA,EAAM,CACvB,KAAK,aAAa,UAAYA,CACtC,CACA,CAUA,MAAMq1B,GAAc,CAChB,YAAY5iJ,EAAI,CACZ,KAAK,GAAKA,EACV,KAAK,SAAWooH,GAAYpoH,CAAE,EAE9B,KAAK,aAAewoH,GAAmBxoH,CAAE,EAAE,IAAKk1I,GAAa,IAAIkM,GAAuBlM,EAAU,EAAI,CAAC,CAC/G,CACI,SAAU,CACN,QAAS4M,KAAe,KAAK,aACzBA,EAAY,QAAS,CAEjC,CACI,aAAc,CACV,IAAI73B,EAAO,KAAK,SAAS,KACzB,QAAS63B,KAAe,KAAK,aACzB73B,GAAQ63B,EAAY,eAAiBA,EAAY,cAAe,EAEpE,OAAO73B,CACf,CACI,YAAa,CACT,IAAID,EAAM,KAAK,SAAS,IACxB,QAAS83B,KAAe,KAAK,aACzB93B,GAAO83B,EAAY,cAAgBA,EAAY,aAAc,EAEjE,OAAO93B,CACf,CACI,iBAAiBg2B,EAAOC,EAAO,CAC3B,IAAIh8B,EAAQ,CAAE,KAAM+7B,EAAO,IAAKC,CAAO,EACvC,QAAS6B,KAAe,KAAK,aACzB,GAAI,CAACe,IAAkBf,EAAY,gBAAgB,GAC/C,CAAC99B,IAAgBC,EAAO69B,EAAY,UAAU,EAC9C,MAAO,GAGf,MAAO,EACf,CACA,CAGA,SAASe,IAAkB/nI,EAAM,CAC7B,IAAIkzE,EAAUlzE,EAAK,QACnB,OAAOkzE,IAAY,QAAUA,IAAY,MAC7C,CAeA,MAAM80D,EAAY,CACd,YAAYC,EAAUC,EAAgB,CAElC,KAAK,iBAAmB,GACxB,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,WAAa,KAClB,KAAK,UAAY,KACjB,KAAK,SAAW,KAChB,KAAK,kBAAqBtoD,GAAO,CAC7B,GAAI,CAAE,SAAAqoD,CAAQ,EAAK,KACnB,KAAK,WAAa,KAClB,KAAK,UAAY,KACjB,KAAK,SAAW,KAChB,KAAK,YAAa,EAClB,KAAK,kBAAkBroD,CAAE,EACrB,KAAK,YAAc,CAAC,KAAK,gBACzBqoD,EAAS,cAAc,EAAK,EAE5B,KAAK,QAAQ,QAAQ,cAAeroD,CAAE,GAGtCqoD,EAAS,cAAc,EAAI,CAElC,EACD,KAAK,gBAAmBroD,GAAO,CAC3B,KAAK,QAAQ,QAAQ,YAAaA,CAAE,EACpC,KAAK,WAAWA,EAAI,EAAI,CAC3B,EACD,KAAK,eAAkBA,GAAO,CAC1B,KAAK,QAAQ,QAAQ,WAAYA,CAAE,EACnC,KAAK,WAAWA,CAAE,CACrB,EACD,KAAK,gBAAmBA,GAAO,CAC3B,KAAK,YAAa,EAClB,KAAK,QAAQ,QAAQ,YAAaA,CAAE,CACvC,EACD,KAAK,cAAiBA,GAAO,CACrB,KAAK,WACL,KAAK,QAAQ,QAAQ,YAAa,KAAM,GAAMA,CAAE,EAEpD,KAAK,SAAW,KAAK,UACrB,KAAK,UAAY,KACjB,KAAK,QAAQ,QAAQ,UAAWA,CAAE,CACrC,EACD,KAAK,eAAiBsoD,EACtBD,EAAS,QAAQ,GAAG,cAAe,KAAK,iBAAiB,EACzDA,EAAS,QAAQ,GAAG,YAAa,KAAK,eAAe,EACrDA,EAAS,QAAQ,GAAG,WAAY,KAAK,cAAc,EACnDA,EAAS,QAAQ,GAAG,YAAa,KAAK,eAAe,EACrDA,EAAS,QAAQ,GAAG,UAAW,KAAK,aAAa,EACjD,KAAK,SAAWA,EAChB,KAAK,QAAU,IAAIppC,EAC3B,CAGI,kBAAkBjf,EAAI,CAClB,IAAIuoD,EAAY,CAAE,KAAMvoD,EAAG,MAAO,IAAKA,EAAG,KAAO,EAC7CwoD,EAAgBD,EAChBjO,EAAYt6C,EAAG,UACfyoD,EACAnO,aAAqB,cACrBmO,EAAc/6B,GAAY4sB,CAAS,EACnCkO,EAAgB5+B,IAAe4+B,EAAeC,CAAW,GAE7D,IAAIC,EAAa,KAAK,WAAa,KAAK,kBAAkBF,EAAc,KAAMA,EAAc,GAAG,EAC/F,GAAIE,EAAY,CACZ,GAAI,KAAK,kBAAoBD,EAAa,CACtC,IAAIE,EAAoBl/B,GAAeg/B,EAAaC,EAAW,IAAI,EAC/DC,IACAH,EAAgB3+B,IAAc8+B,CAAiB,EAEnE,CACY,KAAK,YAAc7+B,IAAW0+B,EAAeD,CAAS,CAClE,MAEY,KAAK,YAAc,CAAE,KAAM,EAAG,IAAK,CAAG,CAElD,CACI,WAAWvoD,EAAI4oD,EAAa,CACxB,IAAIC,EAAM,KAAK,kBAAkB7oD,EAAG,MAAQ,KAAK,YAAY,KAAMA,EAAG,MAAQ,KAAK,YAAY,GAAG,GAC9F4oD,GAAe,CAACE,GAAY,KAAK,UAAWD,CAAG,KAC/C,KAAK,UAAYA,EACjB,KAAK,QAAQ,QAAQ,YAAaA,EAAK,GAAO7oD,CAAE,EAE5D,CACI,aAAc,CACV,KAAK,eAAiBoN,GAAQ,KAAK,eAAiB27C,IAChDA,EAAoB,UAAU,YAAa,EACpC,IAAIb,IAAca,EAAoB,EAAE,EAClD,CACT,CACI,aAAc,CACV,GAAI,CAAE,eAAAC,CAAc,EAAK,KACzB,QAAS7uI,KAAM6uI,EACXA,EAAe7uI,CAAE,EAAE,QAAS,EAEhC,KAAK,eAAiB,CAAE,CAChC,CACI,kBAAkB8uI,EAAYC,EAAW,CACrC,GAAI,CAAE,eAAAZ,EAAgB,eAAAU,CAAc,EAAK,KACrCG,EAAU,KACd,QAAShvI,KAAMmuI,EAAgB,CAC3B,IAAIzgI,EAAYygI,EAAenuI,CAAE,EAAE,UAC/BivI,EAAgBJ,EAAe7uI,CAAE,EACrC,GAAIivI,GACAA,EAAc,iBAAiBH,EAAYC,CAAS,EAAG,CACvD,IAAIG,EAAaD,EAAc,YAAa,EACxCE,EAAYF,EAAc,WAAY,EACtC15B,EAAeu5B,EAAaI,EAC5B15B,EAAcu5B,EAAYI,EAC1B,CAAE,SAAAC,CAAQ,EAAKH,EACf9gG,EAAQihG,EAAS,MAAQA,EAAS,KAClC5hC,EAAS4hC,EAAS,OAASA,EAAS,IACxC,GAEA75B,GAAgB,GAAKA,EAAepnE,GAChCqnE,GAAe,GAAKA,EAAchI,EAAQ,CAC1C,IAAIkhC,EAAMhhI,EAAU,SAAS6nG,EAAcC,EAAarnE,EAAOq/D,CAAM,EACjEkhC,GAEJzzC,GAAmByzC,EAAI,YAAY,YAAaA,EAAI,SAAS,KAAK,IAI7D,KAAK,mBACFO,EAAc,GAAG,SAASA,EAAc,GAAG,YAAW,EAAG,iBAEzD15B,EAAe25B,EAAa,OAAO,QAAS15B,EAAc25B,EAAY,OAAO,OAAO,CAAC,KACxF,CAACH,GAAWN,EAAI,MAAQM,EAAQ,SACjCN,EAAI,YAAc1uI,EAClB0uI,EAAI,QAAUhhI,EAAU,QAExBghI,EAAI,KAAK,MAAQQ,EACjBR,EAAI,KAAK,OAASQ,EAClBR,EAAI,KAAK,KAAOS,EAChBT,EAAI,KAAK,QAAUS,EACnBH,EAAUN,EAElC,CACA,CACA,CACQ,OAAOM,CACf,CACA,CACA,SAASL,GAAYU,EAAMC,EAAM,CAC7B,MAAI,CAACD,GAAQ,CAACC,EACH,GAEP,EAAQD,GAAU,EAAQC,EACnB,GAEJvjC,IAAiBsjC,EAAK,SAAUC,EAAK,QAAQ,CACxD,CAEA,SAASC,GAA6BzpC,EAAUzwF,EAAS,CACrD,IAAIzmB,EAAQ,CAAE,EACd,QAASm3G,KAAa1wF,EAAQ,YAAY,oBACtC,OAAO,OAAOzmB,EAAOm3G,EAAUD,EAAUzwF,CAAO,CAAC,EAErD,cAAO,OAAOzmB,EAAO4gJ,IAAkB1pC,EAAUzwF,EAAQ,OAAO,CAAC,EAC1DzmB,CACX,CACA,SAAS4gJ,IAAkB3jC,EAAM3U,EAAS,CACtC,MAAO,CACH,KAAMA,EAAQ,OAAO2U,EAAK,MAAM,KAAK,EACrC,QAAS3U,EAAQ,UAAU2U,EAAK,MAAM,MAAO,CAAE,SAAUA,EAAK,OAAQ,EACtE,OAAQA,EAAK,MAChB,CACL,CAMA,MAAM4jC,YAAqBhiC,EAAY,CACnC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EACd,KAAK,kBAAqBkR,GAAQ,CAC9B,GAAI,CAAE,SAAAuoC,CAAQ,EAAK,KACf3C,EAAS5lC,EAAI,UAAU,OAE3BuoC,EAAS,cAAc,CAAC,KAAK,UAAU,kBAAkB3C,CAAM,CAAC,CACnE,EAED,KAAK,cAAiB1lD,GAAO,CACzB,GAAI,CAAE,UAAAn4E,CAAS,EAAK,KAChB,CAAE,QAAAogI,GAAY,KAAK,SACvB,GAAI,CAACA,EAAQ,eAAgB,CACzB,GAAI,CAAE,WAAAS,EAAY,SAAAmB,CAAU,EAAG,KAAK,YACpC,GAAInB,GAAcmB,GAAYf,GAAYJ,EAAYmB,CAAQ,EAAG,CAC7D,GAAI,CAAE,QAAAr6H,CAAO,EAAK3H,EACdrgB,EAAM,OAAO,OAAO,OAAO,OAAO,GAAIkiJ,GAA6BhB,EAAW,SAAUl5H,CAAO,CAAC,EAAG,CAAE,MAAOk5H,EAAW,MAAO,QAAS1oD,EAAG,UAAW,KAAMxwE,EAAQ,SAAWA,EAAQ,YAAY,IAAI,CAAE,EAC5MA,EAAQ,QAAQ,QAAQ,YAAahoB,CAAG,CAC5D,CACA,CACS,EAED,KAAK,SAAW,IAAIsgJ,GAA0Bl5C,EAAS,EAAE,EACzD,KAAK,SAAS,aAAa,UAAY,GACvC,IAAIk7C,EAAc,KAAK,YAAc,IAAI1B,GAAY,KAAK,SAAUtgC,GAA2BlZ,CAAQ,CAAC,EACxGk7C,EAAY,QAAQ,GAAG,cAAe,KAAK,iBAAiB,EAC5DA,EAAY,QAAQ,GAAG,UAAW,KAAK,aAAa,CAC5D,CACI,SAAU,CACN,KAAK,SAAS,QAAS,CAC/B,CACA,CAMA,MAAMC,YAAsBniC,EAAY,CACpC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EACd,KAAK,cAAgB,KACrB,KAAK,kBAAqB5O,GAAO,CAC7B,GAAI,CAAE,UAAAn4E,EAAW,SAAAwgI,CAAQ,EAAK,KAC1B,CAAE,QAAArxI,GAAY6Q,EAAU,QACxBmiI,EAAYhzI,EAAQ,YACpB6Q,EAAU,kBAAkBm4E,EAAG,UAAU,MAAM,EAEnDqoD,EAAS,cAAc,CAAC2B,CAAS,EAEjC3B,EAAS,MAAQroD,EAAG,QAAUiqD,IAAyBpiI,CAAS,EAAI,IACvE,EACD,KAAK,gBAAmBm4E,GAAO,CAC3B,KAAK,UAAU,QAAQ,YAAY,SAASA,CAAE,CACjD,EACD,KAAK,gBAAkB,CAAC6oD,EAAKqB,IAAY,CACrC,GAAI,CAAE,QAAA16H,GAAY,KAAK,UACnB26H,EAAgB,KAChBC,EAAY,GAChB,GAAIvB,EAAK,CACL,IAAIH,EAAa,KAAK,YAAY,WACjBG,EAAI,cAAgBH,EAAW,aACzC,KAAK,mBACL,CAAC,KAAK,kBAAkBA,EAAYG,CAAG,IAE1CsB,EAAgBE,IAAsB3B,EAAYG,EAAKr5H,EAAQ,YAAY,yBAAyB,IAEpG,CAAC26H,GAAiB,CAAC/zB,IAAqB+zB,EAAetB,EAAI,YAAar5H,CAAO,KAC/E46H,EAAY,GACZD,EAAgB,KAEpC,CACgBA,EACA36H,EAAQ,SAAS,CAAE,KAAM,eAAgB,UAAW26H,EAAe,EAE7DD,GACN16H,EAAQ,SAAS,CAAE,KAAM,gBAAgB,CAAE,EAE1C46H,EAID5oD,GAAe,EAHfC,GAAc,EAKbyoD,IACD,KAAK,cAAgBC,EAE5B,EACD,KAAK,gBAAmBrqC,GAAQ,CACxB,KAAK,gBAELF,GAAkB,KAAK,cAAeE,EAAK,KAAK,UAAU,OAAO,EACjE,KAAK,cAAgB,KAE5B,EACD,GAAI,CAAE,UAAAj4F,CAAS,EAAK+mF,EAChB,CAAE,QAAA53F,GAAY6Q,EAAU,QACxBwgI,EAAW,KAAK,SAAW,IAAIP,GAA0Bl5C,EAAS,EAAE,EACxEy5C,EAAS,mBAAqB,GAC9BA,EAAS,YAAcrxI,EAAQ,mBAAqB,EACpDqxI,EAAS,aAAa,UAAYrxI,EAAQ,WAC1C,IAAI8yI,EAAc,KAAK,YAAc,IAAI1B,GAAY,KAAK,SAAUtgC,GAA2BlZ,CAAQ,CAAC,EACxGk7C,EAAY,QAAQ,GAAG,cAAe,KAAK,iBAAiB,EAC5DA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,CAChE,CACI,SAAU,CACN,KAAK,SAAS,QAAS,CAC/B,CACA,CACA,SAASG,IAAyBpiI,EAAW,CACzC,GAAI,CAAE,QAAA7Q,GAAY6Q,EAAU,QACxBu3E,EAAQpoF,EAAQ,qBACpB,OAAIooF,GAAS,OACTA,EAAQpoF,EAAQ,gBAEbooF,CACX,CACA,SAASirD,IAAsBb,EAAMC,EAAMa,EAA2B,CAClE,IAAIC,EAAYf,EAAK,SACjBgB,EAAYf,EAAK,SACjBjlD,EAAK,CACL+lD,EAAU,MAAM,MAChBA,EAAU,MAAM,IAChBC,EAAU,MAAM,MAChBA,EAAU,MAAM,GACnB,EACDhmD,EAAG,KAAK7B,GAAc,EACtB,IAAI55F,EAAQ,CAAE,EACd,QAASq7G,KAAekmC,EAA2B,CAC/C,IAAIpiJ,EAAMk8G,EAAYolC,EAAMC,CAAI,EAChC,GAAIvhJ,IAAQ,GACR,OAAO,KAEPA,GACA,OAAO,OAAOa,EAAOb,CAAG,CAEpC,CACI,OAAAa,EAAM,MAAQ,CAAE,MAAOy7F,EAAG,CAAC,EAAG,IAAKA,EAAG,CAAC,CAAG,EAC1Cz7F,EAAM,OAASwhJ,EAAU,OAClBxhJ,CACX,CAEA,MAAM0hJ,WAAsB7iC,EAAY,CACpC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EAEd,KAAK,UAAY,KACjB,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,WAAa,KAClB,KAAK,eAAiB,KACtB,KAAK,iBAAmB,KACxB,KAAK,cAAgB,KACrB,KAAK,sBAAwB,KAC7B,KAAK,kBAAqB5O,GAAO,CAC7B,IAAI0qD,EAAa1qD,EAAG,UAAU,OAC1B,CAAE,UAAAn4E,EAAW,SAAAwgI,CAAQ,EAAK,KAC1B,CAAE,OAAAsC,CAAM,EAAKtC,EACb,CAAE,QAAArxI,GAAY6Q,EAAU,QACxB+iI,EAAiB/iI,EAAU,QAC/B,KAAK,UAAYm4E,EAAG,UACpB,IAAI6qD,EAAa,KAAK,WAAapnC,GAASzjB,EAAG,SAAS,EAEpD8qD,GADa,KAAK,WAAaD,EAAW,YACb,SAAS,WAC1C,KAAK,eAAiBrvC,GAAkBovC,EAAe,eAAgB,EAAC,WAAYE,CAAe,EACnGzC,EAAS,YAAcroD,EAAG,QAAU,EAAIhpF,EAAQ,qBAChDqxI,EAAS,MAEJroD,EAAG,SAAW8qD,IAAoBjjI,EAAU,MAAM,eAC/CkjI,IAAuBljI,CAAS,EAChC,KACJ7Q,EAAQ,kBACR2zI,EAAO,WAAa3zI,EAAQ,kBAG5B2zI,EAAO,WAAaprD,GAAemrD,EAAY,KAAK,EAExDC,EAAO,eAAiB3zI,EAAQ,mBAChC,IAAIgwC,EAAUn/B,EAAU,iBAAiB6iI,CAAU,GAC/C,CAACnrD,GAAemrD,EAAY,mBAAmB,EACnDrC,EAAS,cAAc,CAACrhG,CAAO,EAG/B,KAAK,WAAaA,GACdg5C,EAAG,UAAU,UAAU,SAAS,oBAAoB,CAC3D,EACD,KAAK,gBAAmBA,GAAO,CAC3B,IAAI4qD,EAAiB,KAAK,UAAU,QAChC3mC,EAAa,KAAK,WAClB6mC,EAAkB7mC,EAAW,SAAS,WACtCjkB,EAAG,QAEC8qD,IAAoB,KAAK,UAAU,MAAM,gBACzCF,EAAe,SAAS,CAAE,KAAM,eAAgB,gBAAAE,CAAe,CAAE,EAKrEF,EAAe,SAAS,CAAE,KAAM,gBAAgB,CAAE,EAElD,KAAK,aACLA,EAAe,YAAY,SAAS5qD,CAAE,EACtC4qD,EAAe,QAAQ,QAAQ,iBAAkB,CAC7C,GAAI,KAAK,UACT,MAAO,IAAIvpC,GAAUupC,EAAgB3mC,EAAW,IAAKA,EAAW,QAAQ,EACxE,QAASjkB,EAAG,UACZ,KAAM4qD,EAAe,OACzC,CAAiB,EAER,EACD,KAAK,gBAAkB,CAAC/B,EAAKqB,IAAY,CACrC,GAAI,CAAC,KAAK,WACN,OAEJ,IAAIpoC,EAAiB,KAAK,eACtB4mC,EAAa,KAAK,YAAY,WAC9BkC,EAAiB,KAAK,UAAU,QAEhCI,EAAmB,KACnBzqC,EAAW,KACX0qC,EAAwB,KACxBb,EAAY,GACZn/B,EAAc,CACd,eAAgBnJ,EAChB,cAAe3G,GAAuB,EACtC,QAAS,EACZ,EACD,GAAI0tC,EAAK,CACLmC,EAAmBnC,EAAI,QACvB,IAAIqC,EAAmBF,EAAiB,QACpCJ,IAAmBI,GAClBE,EAAiB,UAAYA,EAAiB,WAC/C3qC,EAAW4qC,IAAqBzC,EAAYG,EAAK,KAAK,WAAW,SAAS,MAAM,MAAOmC,EAAiB,eAAc,EAAG,YAAY,0BAA0B,EAC3JzqC,IACA0qC,EAAwB5qC,GAA0ByB,EAAgBkpC,EAAiB,eAAc,EAAG,aAAczqC,EAAUyqC,CAAgB,EAC5I//B,EAAY,cAAgBggC,EACvB/0B,GAAmBjL,EAAa49B,EAAI,YAAamC,CAAgB,IAClEZ,EAAY,GACZ7pC,EAAW,KACX0qC,EAAwB,KACxBhgC,EAAY,cAAgB9P,GAAuB,KAK3D6vC,EAAmB,IAEvC,CACY,KAAK,YAAYA,EAAkB//B,CAAW,EACzCm/B,EAID5oD,GAAe,EAHfC,GAAc,EAKbyoD,IACGU,IAAmBI,GACnBlC,GAAYJ,EAAYG,CAAG,IAC3BtoC,EAAW,MAEf,KAAK,SAAS,qBAAqB,CAACA,CAAQ,EAG5C,KAAK,SAAS,mBAAmB,CAACsoC,GAAO,CAAC,KAAK,UAAU,YAAW,EAAG,cAAc,kBAAkB,CAAC,EAExG,KAAK,iBAAmBmC,EACxB,KAAK,cAAgBzqC,EACrB,KAAK,sBAAwB0qC,EAEpC,EACD,KAAK,gBAAkB,IAAM,CACpB,KAAK,YACN,KAAK,QAAO,CAEnB,EACD,KAAK,cAAiBjrD,GAAO,CACzB,GAAI,KAAK,WAAY,CACjB,IAAI4qD,EAAiB,KAAK,UAAU,QAChCQ,EAAcR,EAAe,QAC7B,CAAE,iBAAAI,EAAkB,cAAAK,CAAa,EAAK,KACtC/xC,EAAW,KAAK,WAAW,IAC3B0H,EAAgB,KAAK,WAAW,SAChCqB,EAAW,IAAIhB,GAAUupC,EAAgBtxC,EAAU0H,CAAa,EAChEc,EAAiB,KAAK,eACtBmpC,EAAwB,KAAK,sBAC7B,CAAE,SAAApB,GAAa,KAAK,YAQxB,GAPA,KAAK,UAAS,EACde,EAAe,QAAQ,QAAQ,gBAAiB,CAC5C,GAAI,KAAK,UACT,MAAOvoC,EACP,QAASriB,EAAG,UACZ,KAAMorD,CAC1B,CAAiB,EACGC,GAEA,GAAIL,IAAqBJ,EAAgB,CACrC,IAAIU,EAAkB,IAAIjqC,GAAUupC,EAAgBK,EAAsB,KAAK3xC,EAAS,KAAK,EAAG0H,EAAgBiqC,EAAsB,UAAUjqC,EAAc,UAAU,EAAI,IAAI,EAChL4pC,EAAe,SAAS,CACpB,KAAM,eACN,WAAYK,CACxC,CAAyB,EACD,IAAIM,EAAiB,CACjB,SAAUlpC,EACV,MAAOipC,EACP,cAAetpC,GAAeipC,EAAuBL,EAAgB5pC,CAAa,EAClF,QAAS,CACL4pC,EAAe,SAAS,CACpB,KAAM,eACN,WAAY9oC,CAChD,CAAiC,CACJ,CACJ,EACG0pC,EAAc,CAAE,EACpB,QAASpnC,KAAewmC,EAAe,eAAc,EAAG,YAAY,sBAChE,OAAO,OAAOY,EAAapnC,EAAYinC,EAAeT,CAAc,CAAC,EAEzEA,EAAe,QAAQ,QAAQ,YAAa,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEW,CAAc,EAAGC,CAAW,EAAG,CAAE,GAAIxrD,EAAG,UAAW,MAAOqrD,EAAc,WAAY,QAASrrD,EAAG,UAAW,KAAMorD,CAAa,EAAC,EACzNR,EAAe,QAAQ,QAAQ,cAAeW,CAAc,CAEpF,SAC6BP,EAAkB,CACvB,IAAIS,EAAiB,CACjB,MAAOppC,EACP,cAAeL,GAAeF,EAAgB8oC,EAAgB5pC,CAAa,EAC3E,QAAS,CACL4pC,EAAe,SAAS,CACpB,KAAM,eACN,WAAY9oC,CAChD,CAAiC,CACJ,CACJ,EACD8oC,EAAe,QAAQ,QAAQ,aAAc,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEa,CAAc,EAAG,CAAE,UAAWzrD,EAAG,UAAW,KAAMorD,CAAW,CAAE,CAAC,EAC7IR,EAAe,SAAS,CACpB,KAAM,gBACN,WAAY9oC,CACxC,CAAyB,EACD8oC,EAAe,QAAQ,QAAQ,cAAea,CAAc,EAC5D,IAAIC,EAAgBT,EAAsB,KAAK3xC,EAAS,KAAK,EACzDqyC,EAAqBV,EAAsB,UAAUjqC,EAAc,UAAU,EAC7E4qC,EAAgB,IAAIvqC,GAAU2pC,EAAkBU,EAAeC,CAAkB,EACrFX,EAAiB,SAAS,CACtB,KAAM,eACN,WAAYC,CACxC,CAAyB,EACD,IAAIY,EAAc,CACd,MAAOD,EACP,cAAe5pC,GAAeipC,EAAuBD,EAAkBW,CAAkB,EACzF,QAAS,CACLX,EAAiB,SAAS,CACtB,KAAM,gBACN,WAAYC,CAChD,CAAiC,CACJ,CACJ,EACDD,EAAiB,QAAQ,QAAQ,WAAYa,CAAW,EACpD7rD,EAAG,SACHgrD,EAAiB,SAAS,CACtB,KAAM,eACN,gBAAiBhqC,EAAc,UAC/D,CAA6B,EAELgqC,EAAiB,QAAQ,QAAQ,OAAQ,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEtB,GAA6BG,EAAS,SAAUmB,CAAgB,CAAC,EAAG,CAAE,UAAWhrD,EAAG,UAAW,QAASA,EAAG,UAAW,KAAM6pD,EAAS,QAAQ,OAAS,EAAC,EAChOmB,EAAiB,QAAQ,QAAQ,eAAgB,OAAO,OAAO,OAAO,OAAO,CAAE,EAAEa,CAAW,EAAG,CAAE,UAAW7rD,EAAG,UAAW,KAAM6pD,EAAS,QAAQ,OAAO,CAAE,CAAC,CACnL,OAGoBe,EAAe,QAAQ,QAAQ,cAAc,CAEjE,CACY,KAAK,QAAS,CACjB,EACD,GAAI,CAAE,UAAA/iI,CAAS,EAAK,KAChB,CAAE,QAAA7Q,GAAY6Q,EAAU,QACxBwgI,EAAW,KAAK,SAAW,IAAIP,GAA0Bl5C,EAAS,EAAE,EACxEy5C,EAAS,QAAQ,SAAWoC,GAAc,SAC1CpC,EAAS,mBAAqB,GAC9BA,EAAS,aAAa,UAAYrxI,EAAQ,WAC1C,IAAI8yI,EAAc,KAAK,YAAc,IAAI1B,GAAY,KAAK,SAAUrgC,EAAwB,EAC5F+hC,EAAY,iBAAmBl7C,EAAS,eACxCk7C,EAAY,QAAQ,GAAG,cAAe,KAAK,iBAAiB,EAC5DA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,UAAW,KAAK,aAAa,CAC5D,CACI,SAAU,CACN,KAAK,SAAS,QAAS,CAC/B,CAEI,YAAYgC,EAAahrI,EAAO,CAC5B,IAAI8pI,EAAiB,KAAK,UAAU,QAChCmB,EAAc,KAAK,iBAEnBA,GAAeA,IAAgBD,IAG3BC,IAAgBnB,EAChBmB,EAAY,SAAS,CACjB,KAAM,iBACN,MAAO,CACH,eAAgBjrI,EAAM,eACtB,cAAeq6F,GAAuB,EACtC,QAAS,EACZ,CACrB,CAAiB,EAID4wC,EAAY,SAAS,CAAE,KAAM,kBAAkB,CAAE,GAGrDD,GACAA,EAAY,SAAS,CAAE,KAAM,iBAAkB,MAAAhrI,CAAK,CAAE,CAElE,CACI,WAAY,CACR,IAAIkrI,EAAkB,KAAK,UAAU,QACjC,CAAE,iBAAAhB,CAAgB,EAAK,KACvBA,GACAA,EAAiB,SAAS,CAAE,KAAM,kBAAkB,CAAE,EAGtDgB,IAAoBhB,GACpBgB,EAAgB,SAAS,CAAE,KAAM,kBAAkB,CAAE,CAEjE,CACI,SAAU,CACN,KAAK,WAAa,KAClB,KAAK,WAAa,GAClB,KAAK,WAAa,KAClB,KAAK,eAAiB,KACtB,KAAK,iBAAmB,KACxB,KAAK,cAAgB,KACrB,KAAK,sBAAwB,IACrC,CACA,CAGAvB,GAAc,SAAW,2CACzB,SAASU,IAAqB3B,EAAMC,EAAMwC,EAAoBC,EAAW,CACrE,IAAI3B,EAAYf,EAAK,SACjBgB,EAAYf,EAAK,SACjBtzC,EAAQo0C,EAAU,MAAM,MACxBn0C,EAAQo0C,EAAU,MAAM,MACxB3pC,EAAgB,CAAE,EAClB0pC,EAAU,SAAWC,EAAU,SAC/B3pC,EAAc,OAAS2pC,EAAU,OACjC3pC,EAAc,OAAS4oC,EAAK,QAAQ,QAAQ,uBACxCe,EAAU,OAGVr0C,EAAQrwD,GAAWmmG,CAAkB,EAKrC91C,EAAQ81C,GAGhB,IAAIl6G,EAAQmkE,GAAUC,EAAOC,EAAOozC,EAAK,QAAQ,QAASA,EAAK,cAAgBC,EAAK,YAChFD,EAAK,UACL,IAAI,EACJz3G,EAAM,eACN8uE,EAAc,OAAS,IAE3B,IAAIN,EAAW,CACX,WAAYxuE,EACZ,cAAA8uE,CACH,EACD,QAASsrC,KAAYD,EACjBC,EAAS5rC,EAAUipC,EAAMC,CAAI,EAEjC,OAAOlpC,CACX,CACA,SAASwqC,IAAuBljI,EAAW,CACvC,GAAI,CAAE,QAAA7Q,GAAY6Q,EAAU,QACxBu3E,EAAQpoF,EAAQ,oBACpB,OAAIooF,GAAS,OACTA,EAAQpoF,EAAQ,gBAEbooF,CACX,CAEA,MAAMgtD,YAAsBxkC,EAAY,CACpC,YAAYhZ,EAAU,CAClB,MAAMA,CAAQ,EAEd,KAAK,cAAgB,KACrB,KAAK,YAAc,KACnB,KAAK,WAAa,KAClB,KAAK,eAAiB,KACtB,KAAK,cAAgB,KACrB,KAAK,sBAAwB,KAC7B,KAAK,kBAAqB5O,GAAO,CAC7B,GAAI,CAAE,UAAAn4E,CAAS,EAAK,KAChBqoH,EAAQ,KAAK,WAAWlwC,CAAE,EAC1BwjB,EAAMC,GAASysB,CAAK,EACpBjsB,EAAa,KAAK,WAAaT,EAAI,WACvC,KAAK,SAAS,YAAc37F,EAAU,QAAQ,QAAQ,qBAEtD,KAAK,SAAS,cAAc,CAAC,KAAK,UAAU,iBAAiBm4E,EAAG,UAAU,MAAM,GAC3EA,EAAG,SAAW,KAAK,UAAU,MAAM,iBAAmBikB,EAAW,SAAS,UAAW,CAC7F,EACD,KAAK,gBAAmBjkB,GAAO,CAC3B,GAAI,CAAE,QAAAxwE,GAAY,KAAK,UACnBy0F,EAAa,KAAK,WACtB,KAAK,eAAiBzI,GAAkBhsF,EAAQ,eAAc,EAAG,WAAY,KAAK,WAAW,SAAS,UAAU,EAChH,IAAI0gH,EAAQ,KAAK,WAAWlwC,CAAE,EAC9B,KAAK,cAAgBkwC,EACrB,KAAK,YAAczsB,GAASysB,CAAK,EACjC1gH,EAAQ,YAAY,SAAU,EAC9BA,EAAQ,QAAQ,QAAQ,mBAAoB,CACxC,GAAI0gH,EACJ,MAAO,IAAI7uB,GAAU7xF,EAASy0F,EAAW,IAAKA,EAAW,QAAQ,EACjE,QAASjkB,EAAG,UACZ,KAAMxwE,EAAQ,OAC9B,CAAa,CACJ,EACD,KAAK,gBAAkB,CAACq5H,EAAKqB,EAASlqD,IAAO,CACzC,GAAI,CAAE,QAAAxwE,GAAY,KAAK,UACnBsyF,EAAiB,KAAK,eACtB4mC,EAAa,KAAK,YAAY,WAC9B1nC,EAAgB,KAAK,WAAW,SAChCT,EAAW,KACX0qC,EAAwB,KACxBb,EAAY,GACZn/B,EAAc,CACd,eAAgBnJ,EAChB,cAAe3G,GAAuB,EACtC,QAAS,EACZ,EACG0tC,IACiBA,EAAI,cAAgBH,EAAW,aACzC,KAAK,mBACL,CAAC,KAAK,kBAAkBA,EAAYG,CAAG,IAE1CtoC,EAAW8rC,IAAgB3D,EAAYG,EAAK7oD,EAAG,UAAU,UAAU,SAAS,wBAAwB,EAAGghB,EAAc,KAAK,IAG9HT,IACA0qC,EAAwB5qC,GAA0ByB,EAAgBtyF,EAAQ,eAAc,EAAG,aAAc+wF,EAAU/wF,CAAO,EAC1Hy7F,EAAY,cAAgBggC,EACvB/0B,GAAmBjL,EAAa49B,EAAI,YAAar5H,CAAO,IACzD46H,EAAY,GACZ7pC,EAAW,KACX0qC,EAAwB,KACxBhgC,EAAY,cAAgB,OAGhCggC,EACAz7H,EAAQ,SAAS,CACb,KAAM,mBACN,MAAOy7F,CAC3B,CAAiB,EAGDz7F,EAAQ,SAAS,CAAE,KAAM,oBAAoB,CAAE,EAE9C46H,EAID5oD,GAAe,EAHfC,GAAc,EAKbyoD,IACG3pC,GAAYuoC,GAAYJ,EAAYG,CAAG,IACvCtoC,EAAW,MAEf,KAAK,cAAgBA,EACrB,KAAK,sBAAwB0qC,EAEpC,EACD,KAAK,cAAiBjrD,GAAO,CACzB,GAAI,CAAE,QAAAxwE,GAAY,KAAK,UACnB8pF,EAAW,KAAK,WAAW,IAC3B0H,EAAgB,KAAK,WAAW,SAChCqB,EAAW,IAAIhB,GAAU7xF,EAAS8pF,EAAU0H,CAAa,EACzDc,EAAiB,KAAK,eACtBmpC,EAAwB,KAAK,sBAOjC,GANAz7H,EAAQ,QAAQ,QAAQ,kBAAmB,CACvC,GAAI,KAAK,cACT,MAAO6yF,EACP,QAASriB,EAAG,UACZ,KAAMxwE,EAAQ,OAC9B,CAAa,EACG,KAAK,cAAe,CACpB,IAAI87H,EAAkB,IAAIjqC,GAAU7xF,EAASy7H,EAAsB,KAAK3xC,EAAS,KAAK,EAAG0H,EAAgBiqC,EAAsB,UAAUjqC,EAAc,UAAU,EAAI,IAAI,EACzKxxF,EAAQ,SAAS,CACb,KAAM,eACN,WAAYy7H,CAChC,CAAiB,EACD,IAAIM,EAAiB,CACjB,SAAUlpC,EACV,MAAOipC,EACP,cAAetpC,GAAeipC,EAAuBz7H,EAASwxF,CAAa,EAC3E,QAAS,CACLxxF,EAAQ,SAAS,CACb,KAAM,eACN,WAAYsyF,CACxC,CAAyB,CACJ,CACJ,EACDtyF,EAAQ,QAAQ,QAAQ,cAAe,OAAO,OAAO,OAAO,OAAO,GAAI+7H,CAAc,EAAG,CAAE,GAAI,KAAK,cAAe,WAAY,KAAK,cAAc,YAAcpoD,GAAe,CAAC,EAAG,SAAU,KAAK,cAAc,UAAYA,GAAe,CAAC,EAAG,QAASnD,EAAG,UAAW,KAAMxwE,EAAQ,OAAO,CAAE,CAAC,EAC7RA,EAAQ,QAAQ,QAAQ,cAAe+7H,CAAc,CACrE,MAEgB/7H,EAAQ,QAAQ,QAAQ,gBAAgB,EAG5C,KAAK,YAAc,KACnB,KAAK,eAAiB,KACtB,KAAK,cAAgB,IAExB,EACD,GAAI,CAAE,UAAA3H,CAAS,EAAK+mF,EAChBy5C,EAAW,KAAK,SAAW,IAAIP,GAA0Bl5C,EAAS,EAAE,EACxEy5C,EAAS,QAAQ,SAAW,oBAC5BA,EAAS,mBAAqB,GAC9BA,EAAS,aAAa,UAAYxgI,EAAU,QAAQ,QAAQ,WAC5D,IAAIiiI,EAAc,KAAK,YAAc,IAAI1B,GAAY,KAAK,SAAUtgC,GAA2BlZ,CAAQ,CAAC,EACxGk7C,EAAY,QAAQ,GAAG,cAAe,KAAK,iBAAiB,EAC5DA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,YAAa,KAAK,eAAe,EACxDA,EAAY,QAAQ,GAAG,UAAW,KAAK,aAAa,CAC5D,CACI,SAAU,CACN,KAAK,SAAS,QAAS,CAC/B,CACI,WAAW9pD,EAAI,CACX,OAAOT,GAAeS,EAAG,UAAW,WAAW,CACvD,CACA,CACA,SAASqsD,IAAgB7C,EAAMC,EAAM6C,EAAa/qC,EAAe,CAC7D,IAAIlQ,EAAUm4C,EAAK,QAAQ,QACvBrzC,EAAQqzC,EAAK,SAAS,MAAM,MAC5BpzC,EAAQqzC,EAAK,SAAS,MAAM,MAC5B13G,EAAQmkE,GAAUC,EAAOC,EAAO/E,EAASm4C,EAAK,SAAS,EAC3D,GAAI8C,GACA,GAAIj7C,EAAQ,IAAIkQ,EAAc,MAAOxvE,CAAK,EAAIwvE,EAAc,IACxD,MAAO,CAAE,WAAYxvE,CAAO,UAG3Bs/D,EAAQ,IAAIkQ,EAAc,IAAKxvE,CAAK,EAAIwvE,EAAc,MAC3D,MAAO,CAAE,SAAUxvE,CAAO,EAE9B,OAAO,IACX,CAEA,MAAMw6G,GAAa,CACf,YAAY/8H,EAAS,CACjB,KAAK,QAAUA,EACf,KAAK,0BAA4B,GACjC,KAAK,cAAgB,GACrB,KAAK,aAAe,GACpB,KAAK,SAAYg9H,GAAe,CACxBA,EAAW,UACX,KAAK,0BAA4B,GAExC,EACD,KAAK,sBAAyB1sC,GAAQ,CAClC,IAAI2sC,EAAiB,KAAK,QAAQ,QAAQ,eACtC/G,EAAS3lD,GAAsB+f,EAAI,SAAS,EAChD,KAAK,cAAgB,CAAC,CAACvgB,GAAemmD,EAAQ+G,CAAc,EAC5D,KAAK,aAAe,CAAC,CAACltD,GAAemmD,EAAQ+E,GAAc,QAAQ,CACtE,EACD,KAAK,oBAAuB3qC,GAAQ,CAChC,GAAI,CAAE,QAAAtwF,CAAO,EAAK,KACd,CAAE,gBAAAk9H,CAAe,EAAK,KACtBp2B,EAAgB9mG,EAAQ,eAAgB,EAE5C,GAAI,CAACk9H,EAAgB,eAAgB,CACjC,GAAIp2B,EAAc,eACd,CAAC,KAAK,0BACR,CACE,IAAIq2B,EAAen9H,EAAQ,QAAQ,aAC/Bm9H,IAAiB,CAACA,GAAgB,CAAC,KAAK,gBACxCn9H,EAAQ,YAAY,SAASswF,CAAG,CAExD,CACoBwW,EAAc,gBACd,CAAC,KAAK,cAEN9mG,EAAQ,SAAS,CAAE,KAAM,gBAAgB,CAAE,CAE/D,CACY,KAAK,0BAA4B,EACpC,EACD,IAAIk9H,EAAkB,KAAK,gBAAkB,IAAIxH,GAAgB,QAAQ,EACzEwH,EAAgB,iBAAmB,GACnCA,EAAgB,kBAAoB,GACpCA,EAAgB,QAAQ,GAAG,cAAe,KAAK,qBAAqB,EACpEA,EAAgB,QAAQ,GAAG,YAAa,KAAK,mBAAmB,EAIhEl9H,EAAQ,QAAQ,GAAG,SAAU,KAAK,QAAQ,CAClD,CACI,SAAU,CACN,KAAK,QAAQ,QAAQ,IAAI,SAAU,KAAK,QAAQ,EAChD,KAAK,gBAAgB,QAAS,CACtC,CACA,CAEA,MAAMs1H,IAAkB,CACpB,kBAAmB94C,EACvB,EACM4gD,IAAoB,CACtB,UAAW5gD,GACX,eAAgBA,GAChB,cAAeA,GACf,UAAWA,GACX,iBAAkBA,GAClB,gBAAiBA,GACjB,YAAaA,GACb,KAAMA,GACN,aAAcA,GACd,WAAYA,EAChB,EAoKAlmC,GAAO,eAAiB,GAwJrB,IAACv1D,IAAQ2xH,GAAa,CACrB,KAAM,4BACN,sBAAuB,CAAC0nB,IAAcG,IAAeU,GAAe2B,GAAa,EACjF,qBAAsB,CAACG,GAAY,EACnC,oBAAqBzE,GACrB,eAAgBhD,IAChB,iBAAkB8H,GACtB,CAAC,EC5kEGz+H,GAAE,sBAAsB,SAASrW,GAAExD,EAAE,CAAC,GAAG,OAAOA,GAAG,UAAU,CAAC6Z,GAAE,KAAK7Z,CAAC,EAAE,CAAC,IAAI2kF,EAAE,OAAO3kF,CAAC,EAAE,YAAW,EAAG,QAAQ,iBAAiB,EAAE,EAAE6G,EAAE89E,EAAE,SAAS,EAAE,GAAG,sBAAsBA,CAAC,WAAWA,CAAC,KAAK,MAAM,IAAI,MAAM,IAAI3kF,CAAC,4BAA4B6Z,EAAC,KAAKhT,CAAC,EAAE,CAAC,CAAC,CAAC,SAAStT,GAAEyM,EAAE2kF,EAAE,YAAY,CAAC,OAAO3kF,EAAE2kF,CAAC,IAAI3kF,EAAE2kF,CAAC,EAAE,CAAE,GAAE3kF,EAAE2kF,CAAC,CAAC,CAAC,SAASh/E,GAAE3F,EAAE2kF,EAAE,CAAC,IAAI99E,EAAE,SAASnO,EAAEmO,EAAE,cAAc,QAAQ,EAAEwoC,EAAEviB,GAAG,QAACv3B,EAAAovF,EAAE,UAAF,MAAApvF,EAAA,KAAAovF,EAAY,CAAC,GAAG3kF,EAAE,OAAOtH,CAAC,GAAGA,EAAE,oBAAoB,OAAO22C,CAAC,CAAC,EAAE32C,EAAE,iBAAiB,OAAO22C,CAAC,EAAE,IAAIp+C,EAAE0zF,EAAE,eAAe,YAAY,GAAGpxF,GAAE,OAAOtC,CAAC,EAAE,KAAK,CAAC,MAAM,SAAS,YAAY,IAAI,KAAM,EAAC,QAAO,CAAE,CAAC,EAAE,CAAC+O,EAAE,OAAOtH,EAAEA,EAAE,MAAM,CAACisF,EAAE,MAAMjsF,EAAE,MAAM,CAAC,EAAEisF,EAAE,OAAOA,EAAE,eAAeA,EAAE,OAAOjsF,EAAE,aAAa,QAAQisF,EAAE,KAAK,EAAEA,EAAE,aAAajsF,EAAE,KAAKisF,EAAE,YAAY,IAAIlyF,EAAE,IAAI,gBAAgB,CAAC,GAAGuN,EAAE,GAAG2kF,EAAE,cAAc,CAAC,EAAEA,EAAE,aAAa,EAAE,CAAE,EAAC,GAAGA,EAAE,aAAa,EAAE,CAAC,EAAE5xD,EAAE4xD,EAAE,QAAQ,0CAA0CjsF,EAAE,IAAI,GAAGq6B,CAAC,IAAItgC,CAAC,GAAG,IAAI,EAAEkyF,EAAE,eAAe99E,EAAE,KAAK,GAAG,OAAO,iBAAG,cAAa,WAAW,MAAM,IAAI,MAAM,qCAAqC,EAAE,OAAO,EAAE,YAAYnO,CAAC,EAAEA,CAAC,CAAC,SAASgvF,IAAE1nF,EAAE,0CAA0C,CAAC,OAAO,MAAM,KAAK,SAAS,qBAAqB,QAAQ,CAAC,EAAE,KAAK2kF,GAAGA,EAAE,IAAI,SAAS3kF,CAAC,CAAC,CAAC,CAAC,IAAIkjB,IAAE,KAAK,CAA8B,YAAYyhE,EAAE,CAA3CznC,GAAA,WAAGA,GAAA,gBAAQA,GAAA,sBAAe,CAAE,GAAoPA,GAAA,0BAAmB,IAAI,OAAO,OAAO,KAAzQ,GAAG,MAAM,QAAQynC,EAAE,EAAE,EAAE,QAAQ99E,KAAK89E,EAAE,GAAsBnhF,GAAnB,OAAOqD,GAAG,SAAWA,EAAKA,EAAE,EAAN,OAAerD,GAAEmhF,EAAE,EAAE,EAAE,KAAK,GAAGA,EAAE,GAAG,KAAK,QAAQ,CAAC,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,cAAc,YAAY,GAAGA,CAAC,EAAE,OAAO,KAAK,QAAQ,EAAE,CAA0C,SAAS,CAAC,OAAO,KAAK,QAAQ,SAAS,EAAE,CAAC,OAAOA,EAAE,GAAG99E,EAAE,CAAC,GAAG,KAAK,QAAQ,QAAQ89E,EAAE,KAAK,mBAAoB,GAAEA,GAAG,CAAC+C,IAAE7gF,CAAC,GAAG,KAAK,QAAQ,WAAW,GAAG,MAAM,QAAQ,KAAK,EAAE,EAAE,KAAK,GAAG,QAAQnO,GAAG,CAAC,IAAI22C,EAAE,OAAO32C,GAAG,SAAS22C,EAAE1pC,GAAEjN,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE22C,EAAE1pC,GAAEjN,EAAE,GAAG,CAAC,GAAG,KAAK,QAAQ,YAAYA,EAAE,WAAW,CAAC,EAAE,KAAK,eAAe,KAAK22C,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI32C,EAAEiN,GAAE,KAAK,GAAG,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE,KAAK,eAAe,KAAKjN,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,KAAK,QAAQ,OAAO,EAAE,CAAC,MAAMisF,EAAE,CAAC,KAAK,QAAQ,MAAMA,CAAC,CAAC,WAAW,CAAC,OAAO,KAAK,mBAAkB,GAAI,KAAK,QAAQ,QAAQpxF,GAAE,OAAO,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,UAAUoxF,EAAE99E,EAAEnO,EAAE,CAAE,EAAC,CAAC,IAAI22C,EAAE,KAAK,mBAAkB,IAAK,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,OAAO,QAAQ,IAAI,eAAeA,EAAE,GAAG,YAAY,2BAA2B,CAAC,WAAWs1C,EAAE,KAAK99E,CAAC,CAAC,EAAEwoC,GAAG97C,GAAE,OAAO,KAAK,QAAQ,aAAa,EAAE,KAAK,CAAC,GAAGmF,EAAE,MAAM,KAAK,QAAQ,wBAAwB,eAAe,eAAemO,EAAE,oBAAoB89E,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAMA,EAAE,SAAS99E,EAAE,KAAK,OAAOnO,EAAE,KAAK,MAAM22C,EAAE,KAAK,MAAMp+C,EAAE,KAAK,eAAe6V,EAAE,GAAG,GAAGrU,CAAC,EAAE,GAAG,CAAC,IAAIsgC,EAAE,KAAK,mBAAoB,IAAG,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,OAAO,QAAQ,IAAI,eAAeA,EAAE,GAAG,YAAY,uBAAuB,CAAC,MAAM4xD,EAAE,SAAS99E,EAAE,OAAOnO,EAAE,MAAM22C,EAAE,MAAMp+C,EAAE,GAAGwB,CAAC,CAAC,EAAEsgC,GAAGx/B,GAAE,OAAO,KAAK,QAAQ,aAAa,EAAE,KAAK,CAAC,MAAMoxF,GAAG,cAAc,OAAO99E,EAAE,OAAOnO,EAAE,oBAAoB22C,EAAE,MAAMp+C,EAAE,mBAAmB6V,EAAE,GAAGrU,CAAC,CAAC,CAAC,CAAC,KAAKkyF,EAAE,CAAC,IAAI99E,EAAE,KAAK,mBAAoB,IAAG,KAAK,QAAQ,SAAS,IAAI,KAAK,QAAQ,OAAO,QAAQ,IAAI,eAAeA,EAAE,GAAG,YAAY,uBAAuB89E,CAAC,EAAE99E,GAAGtT,GAAE,OAAO,KAAK,QAAQ,aAAa,EAAE,KAAKoxF,CAAC,CAAC,CAAC,ECAxyF1zF,GAAE,SAASwB,IAAEoU,EAAE89E,EAAE,CAAC,GAAG,EAAE,EAAE,CAACA,EAAE,CAAC,gBAAgB,GAAG,GAAGA,CAAC,EAAE1zF,GAAE,IAAIw2F,IAAE9C,CAAC,EAAE99E,EAAE,OAAO,iBAAiB,KAAK5V,GAAEA,GAAE,mBAAkB,IAAK0zF,EAAE,WAAWrvF,IAAEuR,EAAE89E,EAAE,UAAUA,EAAE,aAAaA,EAAE,gBAAgBA,EAAE,4BAA4B,EAAE1zF,GAAE,QAAQ,SAASA,GAAE,QAAQ,aAAa,MAAM,QAAQ0zF,EAAE,EAAE,EAAEA,EAAE,GAAG,QAAQ,GAAG,CAAC,GAAG,OAAO,GAAG,SAAS9qE,GAAE,EAAE8qE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAGA,CAAC,EAAE,EAAE,aAAa,OAAO,EAAE,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,EAAE,WAAW,GAAG9qE,GAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAE8qE,EAAE,GAAGA,CAAC,IAAI99E,EAAE,QAAQ,MAAM89E,CAAC,CAAC,CAAC,SAASrvF,IAAEuR,EAAE89E,EAAE,EAAE,CAAE,EAAC,EAAE73D,EAAE,KAAK,IAAI,CAAC,SAASnnB,EAAEjN,EAAEwqB,EAAE,CAAC,OAAOxqB,aAAa,MAAM,CAAC,EAAEA,EAAE,KAAKwqB,GAAG,EAAE,CAACyhE,EAAE,UAAU,MAAMjsF,EAAEwqB,EAAE,IAAI,WAAC,GAAG,OAAOxqB,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC,GAAG,EAAE,SAASA,EAAE,IAAI,GAAG,OAAO,GAAG,YAAY,EAAEA,EAAEwqB,CAAC,EAAE,OAAO,IAAI1f,EAAE9K,EAAE,MAAM,OAAOA,EAAE,KAAK,KAAK,UAAUA,EAAE,KAAK,IAAIA,EAAE,KAAK,IAAIA,EAAE,KAAKiN,EAAE,EAAE,CAAC,EAAE1U,aAAG,gBAAgB,QAAQ,IAAI,cAAcuS,CAAC,yCAAyC,EAAEmC,EAAE,EAAE,CAAC,IAAG1U,aAAG,iBAAgB,QAAQ,IAAI,cAAcuS,CAAC,2CAA2C,EAAE,IAAIuvB,EAAE,CAAC,GAAG,MAAMjG,EAAEp0B,EAAEwqB,CAAC,EAAE,IAAG3tB,EAAAmD,EAAE,OAAF,YAAAnD,EAAQ,sBAAsB,EAAE85C,IAAE0B,GAAAF,EAAA8zC,EAAE,UAAF,YAAA9zC,EAAW,UAAX,YAAAE,EAAoB,OAAM,GAAG1B,EAAE,SAAS,GAAG,IAAIA,GAAG,KAAKA,GAAG32C,EAAE,SAAS,WAAW,GAAG,EAAEA,EAAE,SAAS,UAAU,CAAC,EAAEA,EAAE,SAAS,EAAEiwF,GAAE,IAAI,CAAC13F,aAAG,UAAUuS,EAAE6rC,EAAEtc,EAAE,CAAC,EAAE9hC,aAAG,UAAUuS,EAAE6rC,EAAEtc,EAAE,CAAC,CAAC,CAAC,SAAS81D,IAAEhiF,EAAE,CAAC,MAAM,CAAC,QAAQ89E,GAAGlyF,IAAEkyF,EAAE99E,CAAC,CAAC,CAAC,CAA2B,SAAS0xI,KAAG,eAAC,QAAO7wD,iBAAG,IAAHA,cAAK,aAALA,cAAiB,MAAjBA,cAAsB,SAAtBA,cAA8B,mBAA9BA,cAAgD,OAAMz2F,EAAC,CCG9/C,MAAMunJ,WAAkB,KAAM,CAMjC,YAAYC,EAAcC,EAAY,CAClC,MAAMC,EAAY,WAAW,UAC7B,MAAM,GAAGF,CAAY,kBAAkBC,CAAU,GAAG,EACpD,KAAK,WAAaA,EAGlB,KAAK,UAAYC,CACpB,CACL,CAEO,MAAMC,WAAqB,KAAM,CAKpC,YAAYH,EAAe,sBAAuB,CAC9C,MAAME,EAAY,WAAW,UAC7B,MAAMF,CAAY,EAGlB,KAAK,UAAYE,CACpB,CACL,CAEO,MAAME,WAAmB,KAAM,CAKlC,YAAYJ,EAAe,qBAAsB,CAC7C,MAAME,EAAY,WAAW,UAC7B,MAAMF,CAAY,EAGlB,KAAK,UAAYE,CACpB,CACL,CAGO,MAAMG,YAAkC,KAAM,CAMjD,YAAYr2G,EAASs2G,EAAW,CAC5B,MAAMJ,EAAY,WAAW,UAC7B,MAAMl2G,CAAO,EACb,KAAK,UAAYs2G,EACjB,KAAK,UAAY,4BAGjB,KAAK,UAAYJ,CACpB,CACL,CAGO,MAAMK,YAA+B,KAAM,CAM9C,YAAYv2G,EAASs2G,EAAW,CAC5B,MAAMJ,EAAY,WAAW,UAC7B,MAAMl2G,CAAO,EACb,KAAK,UAAYs2G,EACjB,KAAK,UAAY,yBAGjB,KAAK,UAAYJ,CACpB,CACL,CAGO,MAAMM,YAAoC,KAAM,CAMnD,YAAYx2G,EAASs2G,EAAW,CAC5B,MAAMJ,EAAY,WAAW,UAC7B,MAAMl2G,CAAO,EACb,KAAK,UAAYs2G,EACjB,KAAK,UAAY,8BAGjB,KAAK,UAAYJ,CACpB,CACL,CAGO,MAAMO,YAAyC,KAAM,CAKxD,YAAYz2G,EAAS,CACjB,MAAMk2G,EAAY,WAAW,UAC7B,MAAMl2G,CAAO,EACb,KAAK,UAAY,mCAGjB,KAAK,UAAYk2G,CACpB,CACL,CAGO,MAAMQ,YAAwB,KAAM,CAMvC,YAAY12G,EAAS22G,EAAa,CAC9B,MAAMT,EAAY,WAAW,UAC7B,MAAMl2G,CAAO,EACb,KAAK,YAAc22G,EAGnB,KAAK,UAAYT,CACpB,CACL,CCjIO,MAAMU,EAAa,CACtB,YAAYX,EAAYh0E,EAAYz1C,EAAS,CACzC,KAAK,WAAaypH,EAClB,KAAK,WAAah0E,EAClB,KAAK,QAAUz1C,CAClB,CACL,CAKO,MAAMqqH,EAAW,CACpB,IAAI35G,EAAKj9B,EAAS,CACd,OAAO,KAAK,KAAK,CACb,GAAGA,EACH,OAAQ,MACR,IAAAi9B,CACZ,CAAS,CACJ,CACD,KAAKA,EAAKj9B,EAAS,CACf,OAAO,KAAK,KAAK,CACb,GAAGA,EACH,OAAQ,OACR,IAAAi9B,CACZ,CAAS,CACJ,CACD,OAAOA,EAAKj9B,EAAS,CACjB,OAAO,KAAK,KAAK,CACb,GAAGA,EACH,OAAQ,SACR,IAAAi9B,CACZ,CAAS,CACJ,CAOD,gBAAgBA,EAAK,CACjB,MAAO,EACV,CACL,CCtCU,IAAC45G,IACV,SAAUA,EAAU,CAEjBA,EAASA,EAAS,MAAW,CAAC,EAAI,QAElCA,EAASA,EAAS,MAAW,CAAC,EAAI,QAElCA,EAASA,EAAS,YAAiB,CAAC,EAAI,cAExCA,EAASA,EAAS,QAAa,CAAC,EAAI,UAEpCA,EAASA,EAAS,MAAW,CAAC,EAAI,QAElCA,EAASA,EAAS,SAAc,CAAC,EAAI,WAErCA,EAASA,EAAS,KAAU,CAAC,EAAI,MACrC,GAAGA,KAAaA,GAAW,GAAG,ECpBvB,MAAMC,EAAW,CACpB,aAAc,CAAG,CAGjB,IAAIC,EAAWj/F,EAAU,CACxB,CACL,CAEAg/F,GAAW,SAAW,IAAIA,GCLnB,MAAMp4E,IAAU,SAEhB,MAAMs4E,EAAI,CACb,OAAO,WAAWppJ,EAAKiE,EAAM,CACzB,GAAIjE,GAAQ,KACR,MAAM,IAAI,MAAM,QAAQiE,CAAI,yBAAyB,CAE5D,CACD,OAAO,WAAWjE,EAAKiE,EAAM,CACzB,GAAI,CAACjE,GAAOA,EAAI,MAAM,OAAO,EACzB,MAAM,IAAI,MAAM,QAAQiE,CAAI,iCAAiC,CAEpE,CACD,OAAO,KAAKjE,EAAKkU,EAAQjQ,EAAM,CAE3B,GAAI,EAAEjE,KAAOkU,GACT,MAAM,IAAI,MAAM,WAAWjQ,CAAI,WAAWjE,CAAG,GAAG,CAEvD,CACL,CAEO,MAAMqpJ,EAAS,CAElB,WAAW,WAAY,CACnB,OAAO,OAAO,QAAW,UAAY,OAAO,OAAO,UAAa,QACnE,CAED,WAAW,aAAc,CACrB,OAAO,OAAO,MAAS,UAAY,kBAAmB,IACzD,CAED,WAAW,eAAgB,CACvB,OAAO,OAAO,QAAW,UAAY,OAAO,OAAO,SAAa,GACnE,CAGD,WAAW,QAAS,CAChB,MAAO,CAAC,KAAK,WAAa,CAAC,KAAK,aAAe,CAAC,KAAK,aACxD,CACL,CAEO,SAASC,GAAcnkI,EAAMokI,EAAgB,CAChD,IAAIC,EAAS,GACb,OAAIhtF,GAAcr3C,CAAI,GAClBqkI,EAAS,yBAAyBrkI,EAAK,UAAU,GAC7CokI,IACAC,GAAU,eAAeC,IAAkBtkI,CAAI,CAAC,MAG/C,OAAOA,GAAS,WACrBqkI,EAAS,yBAAyBrkI,EAAK,MAAM,GACzCokI,IACAC,GAAU,eAAerkI,CAAI,MAG9BqkI,CACX,CAEO,SAASC,IAAkBtkI,EAAM,CACpC,MAAMukI,EAAO,IAAI,WAAWvkI,CAAI,EAEhC,IAAItlB,EAAM,GACV,OAAA6pJ,EAAK,QAAS/jD,GAAQ,CAClB,MAAMgkD,EAAMhkD,EAAM,GAAK,IAAM,GAC7B9lG,GAAO,KAAK8pJ,CAAG,GAAGhkD,EAAI,SAAS,EAAE,CAAC,GAC1C,CAAK,EAEM9lG,EAAI,OAAO,EAAGA,EAAI,OAAS,CAAC,CACvC,CAGO,SAAS28D,GAAcx8D,EAAK,CAC/B,OAAOA,GAAO,OAAO,YAAgB,MAChCA,aAAe,aAEXA,EAAI,aAAeA,EAAI,YAAY,OAAS,cACzD,CAEO,eAAe4pJ,GAAYC,EAAQC,EAAeC,EAAY16G,EAAK26G,EAAoBrrH,EAASvsB,EAAS,CAC5G,IAAIyyD,EAAU,GACd,GAAImlF,EAAoB,CACpB,MAAMn5G,EAAQ,MAAMm5G,IAChBn5G,IACAg0B,EAAU,CACL,cAAkB,UAAUh0B,CAAK,EAClD,EAEK,CACD,KAAM,CAAC5sC,EAAMzC,CAAK,EAAIyoJ,GAAkB,EACxCplF,EAAQ5gE,CAAI,EAAIzC,EAChBqoJ,EAAO,IAAIZ,GAAS,MAAO,IAAIa,CAAa,6BAA6BR,GAAc3qH,EAASvsB,EAAQ,iBAAiB,CAAC,GAAG,EAC7H,MAAMq6D,EAAejQ,GAAc79B,CAAO,EAAI,cAAgB,OACxDyiC,EAAW,MAAM2oF,EAAW,KAAK16G,EAAK,CACxC,QAAA1Q,EACA,QAAS,CAAE,GAAGkmC,EAAS,GAAGzyD,EAAQ,OAAS,EAC3C,aAAAq6D,EACA,QAASr6D,EAAQ,QACjB,gBAAiBA,EAAQ,eACjC,CAAK,EACDy3I,EAAO,IAAIZ,GAAS,MAAO,IAAIa,CAAa,kDAAkD1oF,EAAS,UAAU,GAAG,CACxH,CAEO,SAAS8oF,IAAaL,EAAQ,CACjC,OAAIA,IAAW,OACJ,IAAIM,GAAclB,GAAS,WAAW,EAE7CY,IAAW,KACJX,GAAW,SAElBW,EAAO,MAAQ,OACRA,EAEJ,IAAIM,GAAcN,CAAM,CACnC,CAEO,MAAMO,GAAoB,CAC7B,YAAYjgG,EAASkgG,EAAU,CAC3B,KAAK,SAAWlgG,EAChB,KAAK,UAAYkgG,CACpB,CACD,SAAU,CACN,MAAM1+I,EAAQ,KAAK,SAAS,UAAU,QAAQ,KAAK,SAAS,EACxDA,EAAQ,IACR,KAAK,SAAS,UAAU,OAAOA,EAAO,CAAC,EAEvC,KAAK,SAAS,UAAU,SAAW,GAAK,KAAK,SAAS,gBACtD,KAAK,SAAS,eAAgB,EAAC,MAAOzJ,GAAM,EAAG,CAEtD,CACL,CAEO,MAAMioJ,EAAc,CACvB,YAAYG,EAAiB,CACzB,KAAK,UAAYA,EACjB,KAAK,IAAM,OACd,CACD,IAAIC,EAAUp4G,EAAS,CACnB,GAAIo4G,GAAY,KAAK,UAAW,CAC5B,MAAMC,EAAM,IAAI,IAAI,KAAM,EAAC,YAAW,CAAE,KAAKvB,GAASsB,CAAQ,CAAC,KAAKp4G,CAAO,GAC3E,OAAQo4G,EAAQ,CACZ,KAAKtB,GAAS,SACd,KAAKA,GAAS,MACV,KAAK,IAAI,MAAMuB,CAAG,EAClB,MACJ,KAAKvB,GAAS,QACV,KAAK,IAAI,KAAKuB,CAAG,EACjB,MACJ,KAAKvB,GAAS,YACV,KAAK,IAAI,KAAKuB,CAAG,EACjB,MACJ,QAEI,KAAK,IAAI,IAAIA,CAAG,EAChB,KACP,CACJ,CACJ,CACL,CAEO,SAASP,IAAqB,CACjC,IAAIQ,EAAsB,uBAC1B,OAAIpB,GAAS,SACToB,EAAsB,cAEnB,CAACA,EAAqBC,IAAmB55E,IAAS65E,IAAW,EAAEC,IAAY,EAAEC,IAAmB,EAAC,CAC5G,CAEO,SAASH,IAAmBz/H,EAAS6/H,EAAIC,EAASC,EAAgB,CAErE,IAAIC,EAAY,qBAChB,MAAMC,EAAgBjgI,EAAQ,MAAM,GAAG,EACvC,OAAAggI,GAAa,GAAGC,EAAc,CAAC,CAAC,IAAIA,EAAc,CAAC,CAAC,GACpDD,GAAa,KAAKhgI,CAAO,KACrB6/H,GAAMA,IAAO,GACbG,GAAa,GAAGH,CAAE,KAGlBG,GAAa,eAEjBA,GAAa,GAAGF,CAAO,GACnBC,EACAC,GAAa,KAAKD,CAAc,GAGhCC,GAAa,4BAEjBA,GAAa,IACNA,CACX,CAEc,SAASN,KAAY,CAC/B,GAAItB,GAAS,OACT,OAAQ,QAAQ,SAAQ,CACpB,IAAK,QACD,MAAO,aACX,IAAK,SACD,MAAO,QACX,IAAK,QACD,MAAO,QACX,QACI,OAAO,QAAQ,QACtB,KAGD,OAAO,EAEf,CAEc,SAASwB,KAAoB,CACvC,GAAIxB,GAAS,OACT,OAAO,QAAQ,SAAS,IAGhC,CACA,SAASuB,KAAa,CAClB,OAAIvB,GAAS,OACF,SAGA,SAEf,CAEO,SAAS8B,GAAe/iJ,EAAG,CAC9B,OAAIA,EAAE,MACKA,EAAE,MAEJA,EAAE,QACAA,EAAE,QAEN,GAAGA,CAAC,EACf,CAEO,SAAShF,KAAgB,CAE5B,GAAI,OAAO,WAAe,IACtB,OAAO,WAEX,GAAI,OAAO,KAAS,IAChB,OAAO,KAEX,GAAI,OAAO,OAAW,IAClB,OAAO,OAEX,GAAI,OAAO,OAAW,IAClB,OAAO,OAEX,MAAM,IAAI,MAAM,uBAAuB,CAC3C,CCxPO,MAAMgoJ,YAAwBpC,EAAW,CAC5C,YAAYa,EAAQ,CAGhB,GAFA,QACA,KAAK,QAAUA,EACX,OAAO,MAAU,IAAa,CAG9B,MAAMwB,EAAc,OAAO,qBAAwB,WAAa,wBAA0B,QAE1F,KAAK,KAAO,IAAKA,EAAY,cAAc,GAAG,UAC9C,KAAK,WAAaA,EAAY,YAAY,EAG1C,KAAK,WAAaA,EAAY,cAAc,EAAE,KAAK,WAAY,KAAK,IAAI,CAC3E,MAEG,KAAK,WAAa,MAAM,KAAKjoJ,IAAe,GAEhD,GAAI,OAAO,gBAAoB,IAAa,CAGxC,MAAMioJ,EAAc,OAAO,qBAAwB,WAAa,wBAA0B,QAE1F,KAAK,qBAAuBA,EAAY,kBAAkB,CAC7D,MAEG,KAAK,qBAAuB,eAEnC,CAED,MAAM,KAAKlqF,EAAS,CAEhB,GAAIA,EAAQ,aAAeA,EAAQ,YAAY,QAC3C,MAAM,IAAIonF,GAEd,GAAI,CAACpnF,EAAQ,OACT,MAAM,IAAI,MAAM,oBAAoB,EAExC,GAAI,CAACA,EAAQ,IACT,MAAM,IAAI,MAAM,iBAAiB,EAErC,MAAMmqF,EAAkB,IAAI,KAAK,qBACjC,IAAIpkJ,EAEAi6D,EAAQ,cACRA,EAAQ,YAAY,QAAU,IAAM,CAChCmqF,EAAgB,MAAK,EACrBpkJ,EAAQ,IAAIqhJ,EAC5B,GAIQ,IAAIgD,EAAY,KAChB,GAAIpqF,EAAQ,QAAS,CACjB,MAAMqqF,EAAYrqF,EAAQ,QAC1BoqF,EAAY,WAAW,IAAM,CACzBD,EAAgB,MAAK,EACrB,KAAK,QAAQ,IAAIrC,GAAS,QAAS,4BAA4B,EAC/D/hJ,EAAQ,IAAIohJ,EACf,EAAEkD,CAAS,CACf,CACD,IAAIpqF,EACJ,GAAI,CACAA,EAAW,MAAM,KAAK,WAAWD,EAAQ,IAAK,CAC1C,KAAMA,EAAQ,QACd,MAAO,WACP,YAAaA,EAAQ,kBAAoB,GAAO,UAAY,cAC5D,QAAS,CACL,eAAgB,2BAChB,mBAAoB,iBACpB,GAAGA,EAAQ,OACd,EACD,OAAQA,EAAQ,OAChB,KAAM,OACN,SAAU,SACV,OAAQmqF,EAAgB,MACxC,CAAa,CACJ,OACMljJ,EAAG,CACN,MAAIlB,IAGJ,KAAK,QAAQ,IAAI+hJ,GAAS,QAAS,4BAA4B7gJ,CAAC,GAAG,EAC7DA,EACT,QACO,CACAmjJ,GACA,aAAaA,CAAS,EAEtBpqF,EAAQ,cACRA,EAAQ,YAAY,QAAU,KAErC,CACD,GAAI,CAACC,EAAS,GAAI,CACd,MAAM+mF,EAAe,MAAMsD,GAAmBrqF,EAAU,MAAM,EAC9D,MAAM,IAAI8mF,GAAUC,GAAgB/mF,EAAS,WAAYA,EAAS,MAAM,CAC3E,CAED,MAAM2R,EAAU,MADA04E,GAAmBrqF,EAAUD,EAAQ,YAAY,EAEjE,OAAO,IAAI4nF,GAAa3nF,EAAS,OAAQA,EAAS,WAAY2R,CAAO,CACxE,CACD,gBAAgB1jC,EAAK,CACjB,IAAIk7B,EAAU,GACd,OAAI8+E,GAAS,QAAU,KAAK,MAExB,KAAK,KAAK,WAAWh6G,EAAK,CAACjnC,EAAGjG,IAAMooE,EAAUpoE,EAAE,KAAK,IAAI,CAAC,EAEvDooE,CACV,CACL,CACA,SAASkhF,GAAmBrqF,EAAUqL,EAAc,CAChD,IAAI9tC,EACJ,OAAQ8tC,EAAY,CAChB,IAAK,cACD9tC,EAAUyiC,EAAS,cACnB,MACJ,IAAK,OACDziC,EAAUyiC,EAAS,OACnB,MACJ,IAAK,OACL,IAAK,WACL,IAAK,OACD,MAAM,IAAI,MAAM,GAAGqL,CAAY,oBAAoB,EACvD,QACI9tC,EAAUyiC,EAAS,OACnB,KACP,CACD,OAAOziC,CACX,CCjIO,MAAM+sH,YAAsB1C,EAAW,CAC1C,YAAYa,EAAQ,CAChB,QACA,KAAK,QAAUA,CAClB,CAED,KAAK1oF,EAAS,CAEV,OAAIA,EAAQ,aAAeA,EAAQ,YAAY,QACpC,QAAQ,OAAO,IAAIonF,EAAY,EAErCpnF,EAAQ,OAGRA,EAAQ,IAGN,IAAI,QAAQ,CAAC59C,EAASszB,IAAW,CACpC,MAAM80G,EAAM,IAAI,eAChBA,EAAI,KAAKxqF,EAAQ,OAAQA,EAAQ,IAAK,EAAI,EAC1CwqF,EAAI,gBAAkBxqF,EAAQ,kBAAoB,OAAY,GAAOA,EAAQ,gBAC7EwqF,EAAI,iBAAiB,mBAAoB,gBAAgB,EAEzDA,EAAI,iBAAiB,eAAgB,0BAA0B,EAC/D,MAAM9mF,EAAU1D,EAAQ,QACpB0D,GACA,OAAO,KAAKA,CAAO,EACd,QAASgB,GAAW,CACrB8lF,EAAI,iBAAiB9lF,EAAQhB,EAAQgB,CAAM,CAAC,CAChE,CAAiB,EAED1E,EAAQ,eACRwqF,EAAI,aAAexqF,EAAQ,cAE3BA,EAAQ,cACRA,EAAQ,YAAY,QAAU,IAAM,CAChCwqF,EAAI,MAAK,EACT90G,EAAO,IAAI0xG,EAAY,CAC3C,GAEgBpnF,EAAQ,UACRwqF,EAAI,QAAUxqF,EAAQ,SAE1BwqF,EAAI,OAAS,IAAM,CACXxqF,EAAQ,cACRA,EAAQ,YAAY,QAAU,MAE9BwqF,EAAI,QAAU,KAAOA,EAAI,OAAS,IAClCpoI,EAAQ,IAAIwlI,GAAa4C,EAAI,OAAQA,EAAI,WAAYA,EAAI,UAAYA,EAAI,YAAY,CAAC,EAGtF90G,EAAO,IAAIqxG,GAAUyD,EAAI,UAAYA,EAAI,cAAgBA,EAAI,WAAYA,EAAI,MAAM,CAAC,CAExG,EACYA,EAAI,QAAU,IAAM,CAChB,KAAK,QAAQ,IAAI1C,GAAS,QAAS,4BAA4B0C,EAAI,MAAM,KAAKA,EAAI,UAAU,GAAG,EAC/F90G,EAAO,IAAIqxG,GAAUyD,EAAI,WAAYA,EAAI,MAAM,CAAC,CAChE,EACYA,EAAI,UAAY,IAAM,CAClB,KAAK,QAAQ,IAAI1C,GAAS,QAAS,4BAA4B,EAC/DpyG,EAAO,IAAIyxG,EAAc,CACzC,EACYqD,EAAI,KAAKxqF,EAAQ,SAAW,EAAE,CAC1C,CAAS,EAhDU,QAAQ,OAAO,IAAI,MAAM,iBAAiB,CAAC,EAH3C,QAAQ,OAAO,IAAI,MAAM,oBAAoB,CAAC,CAoD5D,CACL,CC9DO,MAAMyqF,YAA0B5C,EAAW,CAE9C,YAAYa,EAAQ,CAEhB,GADA,QACI,OAAO,MAAU,KAAeR,GAAS,OACzC,KAAK,YAAc,IAAI+B,IAAgBvB,CAAM,UAExC,OAAO,eAAmB,IAC/B,KAAK,YAAc,IAAI6B,IAAc7B,CAAM,MAG3C,OAAM,IAAI,MAAM,6BAA6B,CAEpD,CAED,KAAK1oF,EAAS,CAEV,OAAIA,EAAQ,aAAeA,EAAQ,YAAY,QACpC,QAAQ,OAAO,IAAIonF,EAAY,EAErCpnF,EAAQ,OAGRA,EAAQ,IAGN,KAAK,YAAY,KAAKA,CAAO,EAFzB,QAAQ,OAAO,IAAI,MAAM,iBAAiB,CAAC,EAH3C,QAAQ,OAAO,IAAI,MAAM,oBAAoB,CAAC,CAM5D,CACD,gBAAgB9xB,EAAK,CACjB,OAAO,KAAK,YAAY,gBAAgBA,CAAG,CAC9C,CACL,CCnCO,MAAMw8G,EAAkB,CAC3B,OAAO,MAAMxkG,EAAQ,CACjB,MAAO,GAAGA,CAAM,GAAGwkG,GAAkB,eAAe,EACvD,CACD,OAAO,MAAM5hG,EAAO,CAChB,GAAIA,EAAMA,EAAM,OAAS,CAAC,IAAM4hG,GAAkB,gBAC9C,MAAM,IAAI,MAAM,wBAAwB,EAE5C,MAAMC,EAAW7hG,EAAM,MAAM4hG,GAAkB,eAAe,EAC9D,OAAAC,EAAS,IAAG,EACLA,CACV,CACL,CACAD,GAAkB,oBAAsB,GACxCA,GAAkB,gBAAkB,OAAO,aAAaA,GAAkB,mBAAmB,ECbtF,MAAME,GAAkB,CAE3B,sBAAsBC,EAAkB,CACpC,OAAOH,GAAkB,MAAM,KAAK,UAAUG,CAAgB,CAAC,CAClE,CACD,uBAAuB7mI,EAAM,CACzB,IAAI8mI,EACAC,EACJ,GAAI1vF,GAAcr3C,CAAI,EAAG,CAErB,MAAMgnI,EAAa,IAAI,WAAWhnI,CAAI,EAChCinI,EAAiBD,EAAW,QAAQN,GAAkB,mBAAmB,EAC/E,GAAIO,IAAmB,GACnB,MAAM,IAAI,MAAM,wBAAwB,EAI5C,MAAMC,EAAiBD,EAAiB,EACxCH,EAAc,OAAO,aAAa,MAAM,KAAM,MAAM,UAAU,MAAM,KAAKE,EAAW,MAAM,EAAGE,CAAc,CAAC,CAAC,EAC7GH,EAAiBC,EAAW,WAAaE,EAAkBF,EAAW,MAAME,CAAc,EAAE,OAAS,IACxG,KACI,CACD,MAAMC,EAAWnnI,EACXinI,EAAiBE,EAAS,QAAQT,GAAkB,eAAe,EACzE,GAAIO,IAAmB,GACnB,MAAM,IAAI,MAAM,wBAAwB,EAI5C,MAAMC,EAAiBD,EAAiB,EACxCH,EAAcK,EAAS,UAAU,EAAGD,CAAc,EAClDH,EAAiBI,EAAS,OAASD,EAAkBC,EAAS,UAAUD,CAAc,EAAI,IAC7F,CAED,MAAMP,EAAWD,GAAkB,MAAMI,CAAW,EAC9C7qF,EAAW,KAAK,MAAM0qF,EAAS,CAAC,CAAC,EACvC,GAAI1qF,EAAS,KACT,MAAM,IAAI,MAAM,gDAAgD,EAKpE,MAAO,CAAC8qF,EAHgB9qF,CAGc,CACzC,CACL,CC9CO,IAAImrF,IACV,SAAUA,EAAa,CAEpBA,EAAYA,EAAY,WAAgB,CAAC,EAAI,aAE7CA,EAAYA,EAAY,WAAgB,CAAC,EAAI,aAE7CA,EAAYA,EAAY,WAAgB,CAAC,EAAI,aAE7CA,EAAYA,EAAY,iBAAsB,CAAC,EAAI,mBAEnDA,EAAYA,EAAY,iBAAsB,CAAC,EAAI,mBAEnDA,EAAYA,EAAY,KAAU,CAAC,EAAI,OAEvCA,EAAYA,EAAY,MAAW,CAAC,EAAI,OAC5C,GAAGA,KAAgBA,GAAc,GAAG,ECf7B,MAAMC,GAAQ,CACjB,aAAc,CACV,KAAK,UAAY,EACpB,CACD,KAAKjpJ,EAAM,CACP,UAAW8mJ,KAAY,KAAK,UACxBA,EAAS,KAAK9mJ,CAAI,CAEzB,CACD,MAAM4D,EAAK,CACP,UAAWkjJ,KAAY,KAAK,UACpBA,EAAS,OACTA,EAAS,MAAMljJ,CAAG,CAG7B,CACD,UAAW,CACP,UAAWkjJ,KAAY,KAAK,UACpBA,EAAS,UACTA,EAAS,SAAQ,CAG5B,CACD,UAAUA,EAAU,CAChB,YAAK,UAAU,KAAKA,CAAQ,EACrB,IAAID,IAAoB,KAAMC,CAAQ,CAChD,CACL,CCxBA,MAAMoC,IAAwB,GAAK,IAC7BC,IAA8B,GAAK,IAElC,IAAIC,IACV,SAAUA,EAAoB,CAE3BA,EAAmB,aAAkB,eAErCA,EAAmB,WAAgB,aAEnCA,EAAmB,UAAe,YAElCA,EAAmB,cAAmB,gBAEtCA,EAAmB,aAAkB,cACzC,GAAGA,KAAuBA,GAAqB,CAAE,EAAC,EAE3C,MAAMC,EAAc,CACvB,YAAYC,EAAYhD,EAAQx8E,EAAUy/E,EAAiB,CACvD,KAAK,eAAiB,EACtB,KAAK,qBAAuB,IAAM,CAC9B,KAAK,QAAQ,IAAI7D,GAAS,QAAS,sNAAsN,CACrQ,EACQG,GAAI,WAAWyD,EAAY,YAAY,EACvCzD,GAAI,WAAWS,EAAQ,QAAQ,EAC/BT,GAAI,WAAW/7E,EAAU,UAAU,EACnC,KAAK,4BAA8Bo/E,IACnC,KAAK,gCAAkCC,IACvC,KAAK,QAAU7C,EACf,KAAK,UAAYx8E,EACjB,KAAK,WAAaw/E,EAClB,KAAK,iBAAmBC,EACxB,KAAK,mBAAqB,IAAIf,IAC9B,KAAK,WAAW,UAAa5mI,GAAS,KAAK,qBAAqBA,CAAI,EACpE,KAAK,WAAW,QAAWje,GAAU,KAAK,kBAAkBA,CAAK,EACjE,KAAK,WAAa,GAClB,KAAK,SAAW,GAChB,KAAK,iBAAmB,GACxB,KAAK,uBAAyB,GAC9B,KAAK,sBAAwB,GAC7B,KAAK,cAAgB,EACrB,KAAK,2BAA6B,GAClC,KAAK,iBAAmBylJ,GAAmB,aAC3C,KAAK,mBAAqB,GAC1B,KAAK,mBAAqB,KAAK,UAAU,aAAa,CAAE,KAAMJ,GAAY,IAAI,CAAE,CACnF,CAMD,OAAO,OAAOM,EAAYhD,EAAQx8E,EAAUy/E,EAAiB,CACzD,OAAO,IAAIF,GAAcC,EAAYhD,EAAQx8E,EAAUy/E,CAAe,CACzE,CAED,IAAI,OAAQ,CACR,OAAO,KAAK,gBACf,CAID,IAAI,cAAe,CACf,OAAO,KAAK,YAAc,KAAK,WAAW,cAAgB,IAC7D,CAED,IAAI,SAAU,CACV,OAAO,KAAK,WAAW,SAAW,EACrC,CAMD,IAAI,QAAQz9G,EAAK,CACb,GAAI,KAAK,mBAAqBs9G,GAAmB,cAAgB,KAAK,mBAAqBA,GAAmB,aAC1G,MAAM,IAAI,MAAM,wFAAwF,EAE5G,GAAI,CAACt9G,EACD,MAAM,IAAI,MAAM,4CAA4C,EAEhE,KAAK,WAAW,QAAUA,CAC7B,CAKD,OAAQ,CACJ,YAAK,cAAgB,KAAK,6BACnB,KAAK,aACf,CACD,MAAM,4BAA6B,CAC/B,GAAI,KAAK,mBAAqBs9G,GAAmB,aAC7C,OAAO,QAAQ,OAAO,IAAI,MAAM,uEAAuE,CAAC,EAE5G,KAAK,iBAAmBA,GAAmB,WAC3C,KAAK,QAAQ,IAAI1D,GAAS,MAAO,yBAAyB,EAC1D,GAAI,CACA,MAAM,KAAK,iBACPI,GAAS,WAET,OAAO,SAAS,iBAAiB,SAAU,KAAK,oBAAoB,EAExE,KAAK,iBAAmBsD,GAAmB,UAC3C,KAAK,mBAAqB,GAC1B,KAAK,QAAQ,IAAI1D,GAAS,MAAO,uCAAuC,CAC3E,OACM,EAAG,CACN,YAAK,iBAAmB0D,GAAmB,aAC3C,KAAK,QAAQ,IAAI1D,GAAS,MAAO,gEAAgE,CAAC,IAAI,EAC/F,QAAQ,OAAO,CAAC,CAC1B,CACJ,CACD,MAAM,gBAAiB,CACnB,KAAK,sBAAwB,OAC7B,KAAK,2BAA6B,GAElC,MAAM8D,EAAmB,IAAI,QAAQ,CAACxpI,EAASszB,IAAW,CACtD,KAAK,mBAAqBtzB,EAC1B,KAAK,mBAAqBszB,CACtC,CAAS,EACD,MAAM,KAAK,WAAW,MAAM,KAAK,UAAU,cAAc,EACzD,GAAI,CACA,MAAMm1G,EAAmB,CACrB,SAAU,KAAK,UAAU,KACzB,QAAS,KAAK,UAAU,OACxC,EAYY,GAXA,KAAK,QAAQ,IAAI/C,GAAS,MAAO,4BAA4B,EAC7D,MAAM,KAAK,aAAa,KAAK,mBAAmB,sBAAsB+C,CAAgB,CAAC,EACvF,KAAK,QAAQ,IAAI/C,GAAS,YAAa,sBAAsB,KAAK,UAAU,IAAI,IAAI,EAEpF,KAAK,gBAAe,EACpB,KAAK,oBAAmB,EACxB,KAAK,wBAAuB,EAC5B,MAAM8D,EAIF,KAAK,sBAKL,MAAM,KAAK,qBAElB,OACM3kJ,EAAG,CACN,WAAK,QAAQ,IAAI6gJ,GAAS,MAAO,oCAAoC7gJ,CAAC,2CAA2C,EACjH,KAAK,gBAAe,EACpB,KAAK,kBAAiB,EAGtB,MAAM,KAAK,WAAW,KAAKA,CAAC,EACtBA,CACT,CACJ,CAKD,MAAM,MAAO,CAET,MAAM4kJ,EAAe,KAAK,cAC1B,KAAK,aAAe,KAAK,gBACzB,MAAM,KAAK,aACX,GAAI,CAEA,MAAMA,CACT,MACS,CAET,CACJ,CACD,cAAc9lJ,EAAO,CACjB,OAAI,KAAK,mBAAqBylJ,GAAmB,cAC7C,KAAK,QAAQ,IAAI1D,GAAS,MAAO,8BAA8B/hJ,CAAK,4DAA4D,EACzH,QAAQ,WAEf,KAAK,mBAAqBylJ,GAAmB,eAC7C,KAAK,QAAQ,IAAI1D,GAAS,MAAO,+BAA+B/hJ,CAAK,yEAAyE,EACvI,KAAK,eAEhB,KAAK,iBAAmBylJ,GAAmB,cAC3C,KAAK,QAAQ,IAAI1D,GAAS,MAAO,yBAAyB,EACtD,KAAK,uBAIL,KAAK,QAAQ,IAAIA,GAAS,MAAO,+DAA+D,EAChG,aAAa,KAAK,qBAAqB,EACvC,KAAK,sBAAwB,OAC7B,KAAK,eAAc,EACZ,QAAQ,YAEnB,KAAK,gBAAe,EACpB,KAAK,kBAAiB,EACtB,KAAK,sBAAwB/hJ,GAAS,IAAI,MAAM,qEAAqE,EAI9G,KAAK,WAAW,KAAKA,CAAK,GACpC,CAQD,OAAOs/D,KAAej8D,EAAM,CACxB,KAAM,CAAC0iJ,EAASC,CAAS,EAAI,KAAK,wBAAwB3iJ,CAAI,EACxD4iJ,EAAuB,KAAK,wBAAwB3mF,EAAYj8D,EAAM2iJ,CAAS,EAErF,IAAIE,EACJ,MAAMjjG,EAAU,IAAIqiG,IACpB,OAAAriG,EAAQ,eAAiB,IAAM,CAC3B,MAAMkjG,EAAmB,KAAK,wBAAwBF,EAAqB,YAAY,EACvF,cAAO,KAAK,WAAWA,EAAqB,YAAY,EACjDC,EAAa,KAAK,IACd,KAAK,kBAAkBC,CAAgB,CACjD,CACb,EACQ,KAAK,WAAWF,EAAqB,YAAY,EAAI,CAACG,EAAiBpmJ,IAAU,CAC7E,GAAIA,EAAO,CACPijD,EAAQ,MAAMjjD,CAAK,EACnB,MACH,MACQomJ,IAEDA,EAAgB,OAASf,GAAY,WACjCe,EAAgB,MAChBnjG,EAAQ,MAAM,IAAI,MAAMmjG,EAAgB,KAAK,CAAC,EAG9CnjG,EAAQ,SAAQ,EAIpBA,EAAQ,KAAMmjG,EAAgB,MAGlD,EACQF,EAAe,KAAK,kBAAkBD,CAAoB,EACrD,MAAO/kJ,GAAM,CACd+hD,EAAQ,MAAM/hD,CAAC,EACf,OAAO,KAAK,WAAW+kJ,EAAqB,YAAY,CACpE,CAAS,EACD,KAAK,eAAeF,EAASG,CAAY,EAClCjjG,CACV,CACD,aAAahY,EAAS,CAClB,YAAK,wBAAuB,EACrB,KAAK,WAAW,KAAKA,CAAO,CACtC,CAKD,kBAAkBA,EAAS,CACvB,OAAO,KAAK,aAAa,KAAK,UAAU,aAAaA,CAAO,CAAC,CAChE,CAUD,KAAKq0B,KAAej8D,EAAM,CACtB,KAAM,CAAC0iJ,EAASC,CAAS,EAAI,KAAK,wBAAwB3iJ,CAAI,EACxDgjJ,EAAc,KAAK,kBAAkB,KAAK,kBAAkB/mF,EAAYj8D,EAAM,GAAM2iJ,CAAS,CAAC,EACpG,YAAK,eAAeD,EAASM,CAAW,EACjCA,CACV,CAYD,OAAO/mF,KAAej8D,EAAM,CACxB,KAAM,CAAC0iJ,EAASC,CAAS,EAAI,KAAK,wBAAwB3iJ,CAAI,EACxD4iJ,EAAuB,KAAK,kBAAkB3mF,EAAYj8D,EAAM,GAAO2iJ,CAAS,EA+BtF,OA9BU,IAAI,QAAQ,CAAC3pI,EAASszB,IAAW,CAEvC,KAAK,WAAWs2G,EAAqB,YAAY,EAAI,CAACG,EAAiBpmJ,IAAU,CAC7E,GAAIA,EAAO,CACP2vC,EAAO3vC,CAAK,EACZ,MACH,MACQomJ,IAEDA,EAAgB,OAASf,GAAY,WACjCe,EAAgB,MAChBz2G,EAAO,IAAI,MAAMy2G,EAAgB,KAAK,CAAC,EAGvC/pI,EAAQ+pI,EAAgB,MAAM,EAIlCz2G,EAAO,IAAI,MAAM,4BAA4By2G,EAAgB,IAAI,EAAE,CAAC,EAG5F,EACY,MAAMF,EAAe,KAAK,kBAAkBD,CAAoB,EAC3D,MAAO/kJ,GAAM,CACdyuC,EAAOzuC,CAAC,EAER,OAAO,KAAK,WAAW+kJ,EAAqB,YAAY,CACxE,CAAa,EACD,KAAK,eAAeF,EAASG,CAAY,CACrD,CAAS,CAEJ,CAMD,GAAG5mF,EAAYgnF,EAAW,CAClB,CAAChnF,GAAc,CAACgnF,IAGpBhnF,EAAaA,EAAW,cACnB,KAAK,SAASA,CAAU,IACzB,KAAK,SAASA,CAAU,EAAI,IAG5B,KAAK,SAASA,CAAU,EAAE,QAAQgnF,CAAS,IAAM,IAGrD,KAAK,SAAShnF,CAAU,EAAE,KAAKgnF,CAAS,EAC3C,CACD,IAAIhnF,EAAYv7D,EAAQ,CACpB,GAAI,CAACu7D,EACD,OAEJA,EAAaA,EAAW,cACxB,MAAMrwB,EAAW,KAAK,SAASqwB,CAAU,EACzC,GAAKrwB,EAGL,GAAIlrC,EAAQ,CACR,MAAMwiJ,EAAYt3G,EAAS,QAAQlrC,CAAM,EACrCwiJ,IAAc,KACdt3G,EAAS,OAAOs3G,EAAW,CAAC,EACxBt3G,EAAS,SAAW,GACpB,OAAO,KAAK,SAASqwB,CAAU,EAG1C,MAEG,OAAO,KAAK,SAASA,CAAU,CAEtC,CAKD,QAAQn4D,EAAU,CACVA,GACA,KAAK,iBAAiB,KAAKA,CAAQ,CAE1C,CAKD,eAAeA,EAAU,CACjBA,GACA,KAAK,uBAAuB,KAAKA,CAAQ,CAEhD,CAKD,cAAcA,EAAU,CAChBA,GACA,KAAK,sBAAsB,KAAKA,CAAQ,CAE/C,CACD,qBAAqB8W,EAAM,CAOvB,GANA,KAAK,gBAAe,EACf,KAAK,6BACNA,EAAO,KAAK,0BAA0BA,CAAI,EAC1C,KAAK,2BAA6B,IAGlCA,EAAM,CAEN,MAAM2mI,EAAW,KAAK,UAAU,cAAc3mI,EAAM,KAAK,OAAO,EAChE,UAAWgtB,KAAW25G,EAClB,OAAQ35G,EAAQ,KAAI,CAChB,KAAKo6G,GAAY,WACb,KAAK,oBAAoBp6G,CAAO,EAChC,MACJ,KAAKo6G,GAAY,WACjB,KAAKA,GAAY,WAAY,CACzB,MAAMl+I,EAAW,KAAK,WAAW8jC,EAAQ,YAAY,EACrD,GAAI9jC,EAAU,CACN8jC,EAAQ,OAASo6G,GAAY,YAC7B,OAAO,KAAK,WAAWp6G,EAAQ,YAAY,EAE/C,GAAI,CACA9jC,EAAS8jC,CAAO,CACnB,OACM/pC,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,gCAAgCkC,GAAe/iJ,CAAC,CAAC,EAAE,CACvF,CACJ,CACD,KACH,CACD,KAAKmkJ,GAAY,KAEb,MACJ,KAAKA,GAAY,MAAO,CACpB,KAAK,QAAQ,IAAItD,GAAS,YAAa,qCAAqC,EAC5E,MAAM/hJ,EAAQirC,EAAQ,MAAQ,IAAI,MAAM,sCAAwCA,EAAQ,KAAK,EAAI,OAC7FA,EAAQ,iBAAmB,GAI3B,KAAK,WAAW,KAAKjrC,CAAK,EAI1B,KAAK,aAAe,KAAK,cAAcA,CAAK,EAEhD,KACH,CACD,QACI,KAAK,QAAQ,IAAI+hJ,GAAS,QAAS,yBAAyB92G,EAAQ,IAAI,GAAG,EAC3E,KACP,CAER,CACD,KAAK,oBAAmB,CAC3B,CACD,0BAA0BhtB,EAAM,CAC5B,IAAIuoI,EACAxB,EACJ,GAAI,CACA,CAACA,EAAewB,CAAe,EAAI,KAAK,mBAAmB,uBAAuBvoI,CAAI,CACzF,OACM/c,EAAG,CACN,MAAM+pC,EAAU,qCAAuC/pC,EACvD,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO92G,CAAO,EACxC,MAAMjrC,EAAQ,IAAI,MAAMirC,CAAO,EAC/B,WAAK,mBAAmBjrC,CAAK,EACvBA,CACT,CACD,GAAIwmJ,EAAgB,MAAO,CACvB,MAAMv7G,EAAU,oCAAsCu7G,EAAgB,MACtE,KAAK,QAAQ,IAAIzE,GAAS,MAAO92G,CAAO,EACxC,MAAMjrC,EAAQ,IAAI,MAAMirC,CAAO,EAC/B,WAAK,mBAAmBjrC,CAAK,EACvBA,CACT,MAEG,KAAK,QAAQ,IAAI+hJ,GAAS,MAAO,4BAA4B,EAEjE,YAAK,mBAAkB,EAChBiD,CACV,CACD,yBAA0B,CAClB,KAAK,WAAW,SAAS,oBAK7B,KAAK,eAAiB,IAAI,KAAI,EAAG,QAAS,EAAG,KAAK,gCAClD,KAAK,kBAAiB,EACzB,CACD,qBAAsB,CAClB,IAAI,CAAC,KAAK,WAAW,UAAY,CAAC,KAAK,WAAW,SAAS,qBAEvD,KAAK,eAAiB,WAAW,IAAM,KAAK,gBAAiB,KAAK,2BAA2B,EAEzF,KAAK,oBAAsB,QAAW,CACtC,IAAIyB,EAAW,KAAK,eAAiB,IAAI,KAAI,EAAG,UAC5CA,EAAW,IACXA,EAAW,GAGf,KAAK,kBAAoB,WAAW,SAAY,CAC5C,GAAI,KAAK,mBAAqBhB,GAAmB,UAC7C,GAAI,CACA,MAAM,KAAK,aAAa,KAAK,kBAAkB,CAClD,MACK,CAGF,KAAK,kBAAiB,CACzB,CAER,EAAEgB,CAAQ,CACd,CAER,CAED,eAAgB,CAIZ,KAAK,WAAW,KAAK,IAAI,MAAM,qEAAqE,CAAC,CACxG,CACD,oBAAoBC,EAAmB,CACnC,MAAMlnI,EAAU,KAAK,SAASknI,EAAkB,OAAO,YAAW,CAAE,EACpE,GAAIlnI,EAAS,CACT,GAAI,CACAA,EAAQ,QAAS6C,GAAMA,EAAE,MAAM,KAAMqkI,EAAkB,SAAS,CAAC,CACpE,OACMxlJ,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,6BAA6B2E,EAAkB,OAAO,YAAW,CAAE,iBAAiBxlJ,CAAC,IAAI,CAC7H,CACD,GAAIwlJ,EAAkB,aAAc,CAEhC,MAAMz7G,EAAU,qFAChB,KAAK,QAAQ,IAAI82G,GAAS,MAAO92G,CAAO,EAExC,KAAK,aAAe,KAAK,cAAc,IAAI,MAAMA,CAAO,CAAC,CAC5D,CACJ,MAEG,KAAK,QAAQ,IAAI82G,GAAS,QAAS,mCAAmC2E,EAAkB,MAAM,UAAU,CAE/G,CACD,kBAAkB1mJ,EAAO,CACrB,KAAK,QAAQ,IAAI+hJ,GAAS,MAAO,kCAAkC/hJ,CAAK,2BAA2B,KAAK,gBAAgB,GAAG,EAE3H,KAAK,sBAAwB,KAAK,uBAAyBA,GAAS,IAAI,MAAM,+EAA+E,EAGzJ,KAAK,oBACL,KAAK,mBAAkB,EAE3B,KAAK,0BAA0BA,GAAS,IAAI,MAAM,oEAAoE,CAAC,EACvH,KAAK,gBAAe,EACpB,KAAK,kBAAiB,EAClB,KAAK,mBAAqBylJ,GAAmB,cAC7C,KAAK,eAAezlJ,CAAK,EAEpB,KAAK,mBAAqBylJ,GAAmB,WAAa,KAAK,iBAEpE,KAAK,WAAWzlJ,CAAK,EAEhB,KAAK,mBAAqBylJ,GAAmB,WAClD,KAAK,eAAezlJ,CAAK,CAOhC,CACD,eAAeA,EAAO,CAClB,GAAI,KAAK,mBAAoB,CACzB,KAAK,iBAAmBylJ,GAAmB,aAC3C,KAAK,mBAAqB,GACtBtD,GAAS,WACT,OAAO,SAAS,oBAAoB,SAAU,KAAK,oBAAoB,EAE3E,GAAI,CACA,KAAK,iBAAiB,QAASlnJ,GAAMA,EAAE,MAAM,KAAM,CAAC+E,CAAK,CAAC,CAAC,CAC9D,OACMkB,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,0CAA0C/hJ,CAAK,kBAAkBkB,CAAC,IAAI,CAC1G,CACJ,CACJ,CACD,MAAM,WAAWlB,EAAO,CACpB,MAAM2mJ,EAAqB,KAAK,MAChC,IAAIC,EAA4B,EAC5BC,EAAa7mJ,IAAU,OAAYA,EAAQ,IAAI,MAAM,iDAAiD,EACtG8mJ,EAAiB,KAAK,mBAAmBF,IAA6B,EAAGC,CAAU,EACvF,GAAIC,IAAmB,KAAM,CACzB,KAAK,QAAQ,IAAI/E,GAAS,MAAO,oGAAoG,EACrI,KAAK,eAAe/hJ,CAAK,EACzB,MACH,CAQD,GAPA,KAAK,iBAAmBylJ,GAAmB,aACvCzlJ,EACA,KAAK,QAAQ,IAAI+hJ,GAAS,YAAa,6CAA6C/hJ,CAAK,IAAI,EAG7F,KAAK,QAAQ,IAAI+hJ,GAAS,YAAa,0BAA0B,EAEjE,KAAK,uBAAuB,SAAW,EAAG,CAC1C,GAAI,CACA,KAAK,uBAAuB,QAAS9mJ,GAAMA,EAAE,MAAM,KAAM,CAAC+E,CAAK,CAAC,CAAC,CACpE,OACMkB,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,iDAAiD/hJ,CAAK,kBAAkBkB,CAAC,IAAI,CACjH,CAED,GAAI,KAAK,mBAAqBukJ,GAAmB,aAAc,CAC3D,KAAK,QAAQ,IAAI1D,GAAS,MAAO,uFAAuF,EACxH,MACH,CACJ,CACD,KAAO+E,IAAmB,MAAM,CAM5B,GALA,KAAK,QAAQ,IAAI/E,GAAS,YAAa,4BAA4B6E,CAAyB,kBAAkBE,CAAc,MAAM,EAClI,MAAM,IAAI,QAASzqI,GAAY,CAC3B,KAAK,sBAAwB,WAAWA,EAASyqI,CAAc,CAC/E,CAAa,EACD,KAAK,sBAAwB,OACzB,KAAK,mBAAqBrB,GAAmB,aAAc,CAC3D,KAAK,QAAQ,IAAI1D,GAAS,MAAO,mFAAmF,EACpH,MACH,CACD,GAAI,CAIA,GAHA,MAAM,KAAK,iBACX,KAAK,iBAAmB0D,GAAmB,UAC3C,KAAK,QAAQ,IAAI1D,GAAS,YAAa,yCAAyC,EAC5E,KAAK,sBAAsB,SAAW,EACtC,GAAI,CACA,KAAK,sBAAsB,QAAS9mJ,GAAMA,EAAE,MAAM,KAAM,CAAC,KAAK,WAAW,YAAY,CAAC,CAAC,CAC1F,OACMiG,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,uDAAuD,KAAK,WAAW,YAAY,kBAAkB7gJ,CAAC,IAAI,CAC9I,CAEL,MACH,OACMA,EAAG,CAEN,GADA,KAAK,QAAQ,IAAI6gJ,GAAS,YAAa,8CAA8C7gJ,CAAC,IAAI,EACtF,KAAK,mBAAqBukJ,GAAmB,aAAc,CAC3D,KAAK,QAAQ,IAAI1D,GAAS,MAAO,4BAA4B,KAAK,gBAAgB,4EAA4E,EAE1J,KAAK,mBAAqB0D,GAAmB,eAC7C,KAAK,eAAc,EAEvB,MACH,CACDoB,EAAa3lJ,aAAa,MAAQA,EAAI,IAAI,MAAMA,EAAE,SAAQ,CAAE,EAC5D4lJ,EAAiB,KAAK,mBAAmBF,IAA6B,KAAK,IAAK,EAAGD,EAAoBE,CAAU,CACpH,CACJ,CACD,KAAK,QAAQ,IAAI9E,GAAS,YAAa,+CAA+C,KAAK,IAAG,EAAK4E,CAAkB,WAAWC,CAAyB,6CAA6C,EACtM,KAAK,eAAc,CACtB,CACD,mBAAmBG,EAAoBC,EAAqBC,EAAa,CACrE,GAAI,CACA,OAAO,KAAK,iBAAiB,6BAA6B,CACtD,oBAAAD,EACA,mBAAAD,EACA,YAAAE,CAChB,CAAa,CACJ,OACM/lJ,EAAG,CACN,YAAK,QAAQ,IAAI6gJ,GAAS,MAAO,6CAA6CgF,CAAkB,KAAKC,CAAmB,kBAAkB9lJ,CAAC,IAAI,EACxI,IACV,CACJ,CACD,0BAA0BlB,EAAO,CAC7B,MAAM25D,EAAY,KAAK,WACvB,KAAK,WAAa,GAClB,OAAO,KAAKA,CAAS,EAChB,QAAS9gE,GAAQ,CAClB,MAAMsO,EAAWwyD,EAAU9gE,CAAG,EAC9B,GAAI,CACAsO,EAAS,KAAMnH,CAAK,CACvB,OACMkB,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,wCAAwC/hJ,CAAK,kBAAkBikJ,GAAe/iJ,CAAC,CAAC,EAAE,CACtH,CACb,CAAS,CACJ,CACD,mBAAoB,CACZ,KAAK,oBACL,aAAa,KAAK,iBAAiB,EACnC,KAAK,kBAAoB,OAEhC,CACD,iBAAkB,CACV,KAAK,gBACL,aAAa,KAAK,cAAc,CAEvC,CACD,kBAAkBo+D,EAAYj8D,EAAM6jJ,EAAalB,EAAW,CACxD,GAAIkB,EACA,OAAIlB,EAAU,SAAW,EACd,CACH,UAAW3iJ,EACX,UAAA2iJ,EACA,OAAQ1mF,EACR,KAAM+lF,GAAY,UACtC,EAGuB,CACH,UAAWhiJ,EACX,OAAQi8D,EACR,KAAM+lF,GAAY,UACtC,EAGa,CACD,MAAM8B,EAAe,KAAK,cAE1B,OADA,KAAK,gBACDnB,EAAU,SAAW,EACd,CACH,UAAW3iJ,EACX,aAAc8jJ,EAAa,SAAU,EACrC,UAAAnB,EACA,OAAQ1mF,EACR,KAAM+lF,GAAY,UACtC,EAGuB,CACH,UAAWhiJ,EACX,aAAc8jJ,EAAa,SAAU,EACrC,OAAQ7nF,EACR,KAAM+lF,GAAY,UACtC,CAES,CACJ,CACD,eAAeU,EAASG,EAAc,CAClC,GAAIH,EAAQ,SAAW,EAIvB,CAAKG,IACDA,EAAe,QAAQ,WAI3B,UAAWkB,KAAYrB,EACnBA,EAAQqB,CAAQ,EAAE,UAAU,CACxB,SAAU,IAAM,CACZlB,EAAeA,EAAa,KAAK,IAAM,KAAK,kBAAkB,KAAK,yBAAyBkB,CAAQ,CAAC,CAAC,CACzG,EACD,MAAQnnJ,GAAQ,CACZ,IAAIgrC,EACAhrC,aAAe,MACfgrC,EAAUhrC,EAAI,QAETA,GAAOA,EAAI,SAChBgrC,EAAUhrC,EAAI,WAGdgrC,EAAU,gBAEdi7G,EAAeA,EAAa,KAAK,IAAM,KAAK,kBAAkB,KAAK,yBAAyBkB,EAAUn8G,CAAO,CAAC,CAAC,CAClH,EACD,KAAO5uC,GAAS,CACZ6pJ,EAAeA,EAAa,KAAK,IAAM,KAAK,kBAAkB,KAAK,yBAAyBkB,EAAU/qJ,CAAI,CAAC,CAAC,CAC/G,CACjB,CAAa,EAER,CACD,wBAAwBgH,EAAM,CAC1B,MAAM0iJ,EAAU,GACVC,EAAY,GAClB,QAAS,EAAI,EAAG,EAAI3iJ,EAAK,OAAQ,IAAK,CAClC,MAAM00C,EAAW10C,EAAK,CAAC,EACvB,GAAI,KAAK,cAAc00C,CAAQ,EAAG,CAC9B,MAAMqvG,EAAW,KAAK,cACtB,KAAK,gBAELrB,EAAQqB,CAAQ,EAAIrvG,EACpBiuG,EAAU,KAAKoB,EAAS,SAAU,GAElC/jJ,EAAK,OAAO,EAAG,CAAC,CACnB,CACJ,CACD,MAAO,CAAC0iJ,EAASC,CAAS,CAC7B,CACD,cAActqJ,EAAK,CAEf,OAAOA,GAAOA,EAAI,WAAa,OAAOA,EAAI,WAAc,UAC3D,CACD,wBAAwB4jE,EAAYj8D,EAAM2iJ,EAAW,CACjD,MAAMmB,EAAe,KAAK,cAE1B,OADA,KAAK,gBACDnB,EAAU,SAAW,EACd,CACH,UAAW3iJ,EACX,aAAc8jJ,EAAa,SAAU,EACrC,UAAAnB,EACA,OAAQ1mF,EACR,KAAM+lF,GAAY,gBAClC,EAGmB,CACH,UAAWhiJ,EACX,aAAc8jJ,EAAa,SAAU,EACrC,OAAQ7nF,EACR,KAAM+lF,GAAY,gBAClC,CAEK,CACD,wBAAwBh3I,EAAI,CACxB,MAAO,CACH,aAAcA,EACd,KAAMg3I,GAAY,gBAC9B,CACK,CACD,yBAAyBh3I,EAAIhS,EAAM,CAC/B,MAAO,CACH,aAAcgS,EACd,KAAAhS,EACA,KAAMgpJ,GAAY,UAC9B,CACK,CACD,yBAAyBh3I,EAAIrO,EAAOkE,EAAQ,CACxC,OAAIlE,EACO,CACH,MAAAA,EACA,aAAcqO,EACd,KAAMg3I,GAAY,UAClC,EAEe,CACH,aAAch3I,EACd,OAAAnK,EACA,KAAMmhJ,GAAY,UAC9B,CACK,CACL,CCl0BA,MAAMgC,IAAuC,CAAC,EAAG,IAAM,IAAO,IAAO,IAAI,EAElE,MAAMC,EAAuB,CAChC,YAAYC,EAAa,CACrB,KAAK,aAAeA,IAAgB,OAAY,CAAC,GAAGA,EAAa,IAAI,EAAIF,GAC5E,CACD,6BAA6BG,EAAc,CACvC,OAAO,KAAK,aAAaA,EAAa,kBAAkB,CAC3D,CACL,CCVO,MAAMC,EAAY,CACzB,CACAA,GAAY,cAAgB,gBAC5BA,GAAY,OAAS,SCDX,IAACC,IACV,SAAUA,EAAmB,CAE1BA,EAAkBA,EAAkB,KAAU,CAAC,EAAI,OAEnDA,EAAkBA,EAAkB,WAAgB,CAAC,EAAI,aAEzDA,EAAkBA,EAAkB,iBAAsB,CAAC,EAAI,mBAE/DA,EAAkBA,EAAkB,YAAiB,CAAC,EAAI,aAC9D,GAAGA,KAAsBA,GAAoB,CAAE,EAAC,EAEzC,IAAIC,IACV,SAAUA,EAAgB,CAEvBA,EAAeA,EAAe,KAAU,CAAC,EAAI,OAE7CA,EAAeA,EAAe,OAAY,CAAC,EAAI,QACnD,GAAGA,KAAmBA,GAAiB,GAAG,ECfnC,IAAAC,IAAA,KAAsB,CACzB,aAAc,CACV,KAAK,WAAa,GAClB,KAAK,QAAU,IAClB,CACD,OAAQ,CACC,KAAK,aACN,KAAK,WAAa,GACd,KAAK,SACL,KAAK,QAAO,EAGvB,CACD,IAAI,QAAS,CACT,OAAO,IACV,CACD,IAAI,SAAU,CACV,OAAO,KAAK,UACf,CACL,EChBO,MAAMC,EAAqB,CAC9B,YAAYhF,EAAYC,EAAoBH,EAAQz3I,EAAS,CACzD,KAAK,YAAc23I,EACnB,KAAK,oBAAsBC,EAC3B,KAAK,QAAUH,EACf,KAAK,WAAa,IAAImF,IACtB,KAAK,SAAW58I,EAChB,KAAK,SAAW,GAChB,KAAK,UAAY,KACjB,KAAK,QAAU,IAClB,CAED,IAAI,aAAc,CACd,OAAO,KAAK,WAAW,OAC1B,CACD,MAAM,QAAQi9B,EAAK4/G,EAAgB,CAO/B,GANA7F,GAAI,WAAW/5G,EAAK,KAAK,EACzB+5G,GAAI,WAAW6F,EAAgB,gBAAgB,EAC/C7F,GAAI,KAAK6F,EAAgBJ,GAAgB,gBAAgB,EACzD,KAAK,KAAOx/G,EACZ,KAAK,QAAQ,IAAI45G,GAAS,MAAO,qCAAqC,EAElEgG,IAAmBJ,GAAe,QACjC,OAAO,eAAmB,KAAe,OAAO,IAAI,eAAc,EAAG,cAAiB,SACvF,MAAM,IAAI,MAAM,4FAA4F,EAEhH,KAAM,CAAC5qJ,EAAMzC,CAAK,EAAIyoJ,GAAkB,EAClCplF,EAAU,CAAE,CAAC5gE,CAAI,EAAGzC,EAAO,GAAG,KAAK,SAAS,SAC5C0tJ,EAAc,CAChB,YAAa,KAAK,WAAW,OAC7B,QAAArqF,EACA,QAAS,IACT,gBAAiB,KAAK,SAAS,eAC3C,EACYoqF,IAAmBJ,GAAe,SAClCK,EAAY,aAAe,eAE/B,MAAMr+G,EAAQ,MAAM,KAAK,kBACzB,KAAK,mBAAmBq+G,EAAar+G,CAAK,EAG1C,MAAMs+G,EAAU,GAAG9/G,CAAG,MAAM,KAAK,IAAK,IACtC,KAAK,QAAQ,IAAI45G,GAAS,MAAO,oCAAoCkG,CAAO,GAAG,EAC/E,MAAM/tF,EAAW,MAAM,KAAK,YAAY,IAAI+tF,EAASD,CAAW,EAC5D9tF,EAAS,aAAe,KACxB,KAAK,QAAQ,IAAI6nF,GAAS,MAAO,qDAAqD7nF,EAAS,UAAU,GAAG,EAE5G,KAAK,YAAc,IAAI8mF,GAAU9mF,EAAS,YAAc,GAAIA,EAAS,UAAU,EAC/E,KAAK,SAAW,IAGhB,KAAK,SAAW,GAEpB,KAAK,WAAa,KAAK,MAAM,KAAK,KAAM8tF,CAAW,CACtD,CACD,MAAM,iBAAkB,CACpB,OAAI,KAAK,oBACE,MAAM,KAAK,sBAEf,IACV,CACD,mBAAmB/tF,EAAStwB,EAAO,CAI/B,GAHKswB,EAAQ,UACTA,EAAQ,QAAU,IAElBtwB,EAAO,CACPswB,EAAQ,QAAQwtF,GAAY,aAAa,EAAI,UAAU99G,CAAK,GAC5D,MACH,CACGswB,EAAQ,QAAQwtF,GAAY,aAAa,GACzC,OAAOxtF,EAAQ,QAAQwtF,GAAY,aAAa,CAEvD,CACD,MAAM,MAAMt/G,EAAK6/G,EAAa,CAC1B,GAAI,CACA,KAAO,KAAK,UAAU,CAElB,MAAMr+G,EAAQ,MAAM,KAAK,kBACzB,KAAK,mBAAmBq+G,EAAar+G,CAAK,EAC1C,GAAI,CACA,MAAMs+G,EAAU,GAAG9/G,CAAG,MAAM,KAAK,IAAK,IACtC,KAAK,QAAQ,IAAI45G,GAAS,MAAO,oCAAoCkG,CAAO,GAAG,EAC/E,MAAM/tF,EAAW,MAAM,KAAK,YAAY,IAAI+tF,EAASD,CAAW,EAC5D9tF,EAAS,aAAe,KACxB,KAAK,QAAQ,IAAI6nF,GAAS,YAAa,oDAAoD,EAC3F,KAAK,SAAW,IAEX7nF,EAAS,aAAe,KAC7B,KAAK,QAAQ,IAAI6nF,GAAS,MAAO,qDAAqD7nF,EAAS,UAAU,GAAG,EAE5G,KAAK,YAAc,IAAI8mF,GAAU9mF,EAAS,YAAc,GAAIA,EAAS,UAAU,EAC/E,KAAK,SAAW,IAIZA,EAAS,SACT,KAAK,QAAQ,IAAI6nF,GAAS,MAAO,0CAA0CK,GAAcloF,EAAS,QAAS,KAAK,SAAS,iBAAiB,CAAC,GAAG,EAC1I,KAAK,WACL,KAAK,UAAUA,EAAS,OAAO,GAKnC,KAAK,QAAQ,IAAI6nF,GAAS,MAAO,oDAAoD,CAGhG,OACM7gJ,EAAG,CACD,KAAK,SAKFA,aAAakgJ,GAEb,KAAK,QAAQ,IAAIW,GAAS,MAAO,oDAAoD,GAIrF,KAAK,YAAc7gJ,EACnB,KAAK,SAAW,IAVpB,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,wDAAwD7gJ,EAAE,OAAO,EAAE,CAa3G,CACJ,CACJ,QACO,CACJ,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,2CAA2C,EAGvE,KAAK,aACN,KAAK,cAAa,CAEzB,CACJ,CACD,MAAM,KAAK9jI,EAAM,CACb,OAAK,KAAK,SAGHykI,GAAY,KAAK,QAAS,cAAe,KAAK,YAAa,KAAK,KAAM,KAAK,oBAAqBzkI,EAAM,KAAK,QAAQ,EAF/G,QAAQ,OAAO,IAAI,MAAM,8CAA8C,CAAC,CAGtF,CACD,MAAM,MAAO,CACT,KAAK,QAAQ,IAAI8jI,GAAS,MAAO,2CAA2C,EAE5E,KAAK,SAAW,GAChB,KAAK,WAAW,QAChB,GAAI,CACA,MAAM,KAAK,WAEX,KAAK,QAAQ,IAAIA,GAAS,MAAO,qDAAqD,KAAK,IAAI,GAAG,EAClG,MAAMpkF,EAAU,GACV,CAAC5gE,EAAMzC,CAAK,EAAIyoJ,GAAkB,EACxCplF,EAAQ5gE,CAAI,EAAIzC,EAChB,MAAM4tJ,EAAgB,CAClB,QAAS,CAAE,GAAGvqF,EAAS,GAAG,KAAK,SAAS,OAAS,EACjD,QAAS,KAAK,SAAS,QACvB,gBAAiB,KAAK,SAAS,eAC/C,EACkBh0B,EAAQ,MAAM,KAAK,kBACzB,KAAK,mBAAmBu+G,EAAev+G,CAAK,EAC5C,MAAM,KAAK,YAAY,OAAO,KAAK,KAAMu+G,CAAa,EACtD,KAAK,QAAQ,IAAInG,GAAS,MAAO,8CAA8C,CAClF,QACO,CACJ,KAAK,QAAQ,IAAIA,GAAS,MAAO,wCAAwC,EAGzE,KAAK,cAAa,CACrB,CACJ,CACD,eAAgB,CACZ,GAAI,KAAK,QAAS,CACd,IAAIoG,EAAa,gDACb,KAAK,cACLA,GAAc,WAAa,KAAK,aAEpC,KAAK,QAAQ,IAAIpG,GAAS,MAAOoG,CAAU,EAC3C,KAAK,QAAQ,KAAK,WAAW,CAChC,CACJ,CACL,CCxLO,MAAMC,GAA0B,CACnC,YAAYvF,EAAYC,EAAoBH,EAAQz3I,EAAS,CACzD,KAAK,YAAc23I,EACnB,KAAK,oBAAsBC,EAC3B,KAAK,QAAUH,EACf,KAAK,SAAWz3I,EAChB,KAAK,UAAY,KACjB,KAAK,QAAU,IAClB,CACD,MAAM,QAAQi9B,EAAK4/G,EAAgB,CAO/B,GANA7F,GAAI,WAAW/5G,EAAK,KAAK,EACzB+5G,GAAI,WAAW6F,EAAgB,gBAAgB,EAC/C7F,GAAI,KAAK6F,EAAgBJ,GAAgB,gBAAgB,EACzD,KAAK,QAAQ,IAAI5F,GAAS,MAAO,6BAA6B,EAE9D,KAAK,KAAO55G,EACR,KAAK,oBAAqB,CAC1B,MAAMwB,EAAQ,MAAM,KAAK,sBACrBA,IACAxB,IAAQA,EAAI,QAAQ,GAAG,EAAI,EAAI,IAAM,KAAO,gBAAgB,mBAAmBwB,CAAK,CAAC,GAE5F,CACD,OAAO,IAAI,QAAQ,CAACttB,EAASszB,IAAW,CACpC,IAAI04G,EAAS,GACb,GAAIN,IAAmBJ,GAAe,KAAM,CACxCh4G,EAAO,IAAI,MAAM,2EAA2E,CAAC,EAC7F,MACH,CACD,IAAIm+D,EACJ,GAAIq0C,GAAS,WAAaA,GAAS,YAC/Br0C,EAAc,IAAI,KAAK,SAAS,YAAY3lE,EAAK,CAAE,gBAAiB,KAAK,SAAS,eAAiB,OAElG,CAED,MAAMk7B,EAAU,KAAK,YAAY,gBAAgBl7B,CAAG,EAC9Cw1B,EAAU,GAChBA,EAAQ,OAAS0F,EACjB,KAAM,CAACtmE,EAAMzC,CAAK,EAAIyoJ,GAAkB,EACxCplF,EAAQ5gE,CAAI,EAAIzC,EAChBwzG,EAAc,IAAI,KAAK,SAAS,YAAY3lE,EAAK,CAAE,gBAAiB,KAAK,SAAS,gBAAiB,QAAS,CAAE,GAAGw1B,EAAS,GAAG,KAAK,SAAS,OAAS,EAAE,CACzJ,CACD,GAAI,CACAmwC,EAAY,UAAa5sG,GAAM,CAC3B,GAAI,KAAK,UACL,GAAI,CACA,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,kCAAkCK,GAAclhJ,EAAE,KAAM,KAAK,SAAS,iBAAiB,CAAC,GAAG,EAC5H,KAAK,UAAUA,EAAE,IAAI,CACxB,OACMlB,EAAO,CACV,KAAK,OAAOA,CAAK,EACjB,MACH,CAEzB,EAEgB8tG,EAAY,QAAW5sG,GAAM,CAErBmnJ,EACA,KAAK,OAAM,EAGX14G,EAAO,IAAI,MAAM,8PAE4D,CAAC,CAEtG,EACgBm+D,EAAY,OAAS,IAAM,CACvB,KAAK,QAAQ,IAAIi0C,GAAS,YAAa,oBAAoB,KAAK,IAAI,EAAE,EACtE,KAAK,aAAej0C,EACpBu6C,EAAS,GACThsI,GACpB,CACa,OACMnb,EAAG,CACNyuC,EAAOzuC,CAAC,EACR,MACH,CACb,CAAS,CACJ,CACD,MAAM,KAAK+c,EAAM,CACb,OAAK,KAAK,aAGHykI,GAAY,KAAK,QAAS,MAAO,KAAK,YAAa,KAAK,KAAM,KAAK,oBAAqBzkI,EAAM,KAAK,QAAQ,EAFvG,QAAQ,OAAO,IAAI,MAAM,8CAA8C,CAAC,CAGtF,CACD,MAAO,CACH,YAAK,OAAM,EACJ,QAAQ,SAClB,CACD,OAAO,EAAG,CACF,KAAK,eACL,KAAK,aAAa,QAClB,KAAK,aAAe,OAChB,KAAK,SACL,KAAK,QAAQ,CAAC,EAGzB,CACL,CCjGO,MAAMqqI,GAAmB,CAC5B,YAAYzF,EAAYC,EAAoBH,EAAQ4F,EAAmBC,EAAsB7qF,EAAS,CAClG,KAAK,QAAUglF,EACf,KAAK,oBAAsBG,EAC3B,KAAK,mBAAqByF,EAC1B,KAAK,sBAAwBC,EAC7B,KAAK,YAAc3F,EACnB,KAAK,UAAY,KACjB,KAAK,QAAU,KACf,KAAK,SAAWllF,CACnB,CACD,MAAM,QAAQx1B,EAAK4/G,EAAgB,CAK/B,GAJA7F,GAAI,WAAW/5G,EAAK,KAAK,EACzB+5G,GAAI,WAAW6F,EAAgB,gBAAgB,EAC/C7F,GAAI,KAAK6F,EAAgBJ,GAAgB,gBAAgB,EACzD,KAAK,QAAQ,IAAI5F,GAAS,MAAO,oCAAoC,EACjE,KAAK,oBAAqB,CAC1B,MAAMp4G,EAAQ,MAAM,KAAK,sBACrBA,IACAxB,IAAQA,EAAI,QAAQ,GAAG,EAAI,EAAI,IAAM,KAAO,gBAAgB,mBAAmBwB,CAAK,CAAC,GAE5F,CACD,OAAO,IAAI,QAAQ,CAACttB,EAASszB,IAAW,CACpCxH,EAAMA,EAAI,QAAQ,QAAS,IAAI,EAC/B,IAAIsgH,EACJ,MAAMplF,EAAU,KAAK,YAAY,gBAAgBl7B,CAAG,EACpD,IAAIkgH,EAAS,GACb,GAAIlG,GAAS,OAAQ,CACjB,MAAMxkF,EAAU,GACV,CAAC5gE,EAAMzC,CAAK,EAAIyoJ,GAAkB,EACxCplF,EAAQ5gE,CAAI,EAAIzC,EACZ+oE,IACA1F,EAAQ8pF,GAAY,MAAM,EAAI,GAAGpkF,CAAO,IAG5ColF,EAAY,IAAI,KAAK,sBAAsBtgH,EAAK,OAAW,CACvD,QAAS,CAAE,GAAGw1B,EAAS,GAAG,KAAK,QAAU,CAC7D,CAAiB,CACJ,CACI8qF,IAEDA,EAAY,IAAI,KAAK,sBAAsBtgH,CAAG,GAE9C4/G,IAAmBJ,GAAe,SAClCc,EAAU,WAAa,eAE3BA,EAAU,OAAUC,GAAW,CAC3B,KAAK,QAAQ,IAAI3G,GAAS,YAAa,0BAA0B55G,CAAG,GAAG,EACvE,KAAK,WAAasgH,EAClBJ,EAAS,GACThsI,GAChB,EACYosI,EAAU,QAAWh3H,GAAU,CAC3B,IAAIzxB,EAAQ,KAER,OAAO,WAAe,KAAeyxB,aAAiB,WACtDzxB,EAAQyxB,EAAM,MAGdzxB,EAAQ,wCAEZ,KAAK,QAAQ,IAAI+hJ,GAAS,YAAa,0BAA0B/hJ,CAAK,GAAG,CACzF,EACYyoJ,EAAU,UAAax9G,GAAY,CAE/B,GADA,KAAK,QAAQ,IAAI82G,GAAS,MAAO,yCAAyCK,GAAcn3G,EAAQ,KAAM,KAAK,kBAAkB,CAAC,GAAG,EAC7H,KAAK,UACL,GAAI,CACA,KAAK,UAAUA,EAAQ,IAAI,CAC9B,OACMjrC,EAAO,CACV,KAAK,OAAOA,CAAK,EACjB,MACH,CAErB,EACYyoJ,EAAU,QAAWh3H,GAAU,CAG3B,GAAI42H,EACA,KAAK,OAAO52H,CAAK,MAEhB,CACD,IAAIzxB,EAAQ,KAER,OAAO,WAAe,KAAeyxB,aAAiB,WACtDzxB,EAAQyxB,EAAM,MAGdzxB,EAAQ,iSAKZ2vC,EAAO,IAAI,MAAM3vC,CAAK,CAAC,CAC1B,CACjB,CACA,CAAS,CACJ,CACD,KAAKie,EAAM,CACP,OAAI,KAAK,YAAc,KAAK,WAAW,aAAe,KAAK,sBAAsB,MAC7E,KAAK,QAAQ,IAAI8jI,GAAS,MAAO,wCAAwCK,GAAcnkI,EAAM,KAAK,kBAAkB,CAAC,GAAG,EACxH,KAAK,WAAW,KAAKA,CAAI,EAClB,QAAQ,WAEZ,QAAQ,OAAO,oCAAoC,CAC7D,CACD,MAAO,CACH,OAAI,KAAK,YAGL,KAAK,OAAO,MAAS,EAElB,QAAQ,SAClB,CACD,OAAOwT,EAAO,CAEN,KAAK,aAEL,KAAK,WAAW,QAAU,IAAM,GAChC,KAAK,WAAW,UAAY,IAAM,GAClC,KAAK,WAAW,QAAU,IAAM,GAChC,KAAK,WAAW,QAChB,KAAK,WAAa,QAEtB,KAAK,QAAQ,IAAIswH,GAAS,MAAO,uCAAuC,EACpE,KAAK,UACD,KAAK,cAActwH,CAAK,IAAMA,EAAM,WAAa,IAASA,EAAM,OAAS,KACzE,KAAK,QAAQ,IAAI,MAAM,sCAAsCA,EAAM,IAAI,KAAKA,EAAM,QAAU,iBAAiB,IAAI,CAAC,EAE7GA,aAAiB,MACtB,KAAK,QAAQA,CAAK,EAGlB,KAAK,QAAO,EAGvB,CACD,cAAcA,EAAO,CACjB,OAAOA,GAAS,OAAOA,EAAM,UAAa,WAAa,OAAOA,EAAM,MAAS,QAChF,CACL,CCxIA,MAAMk3H,GAAgB,IAEf,MAAMC,GAAe,CACxB,YAAYzgH,EAAKj9B,EAAU,GAAI,CAS3B,GARA,KAAK,qBAAuB,IAAM,GAClC,KAAK,SAAW,GAChB,KAAK,kBAAoB,EACzBg3I,GAAI,WAAW/5G,EAAK,KAAK,EACzB,KAAK,QAAU66G,IAAa93I,EAAQ,MAAM,EAC1C,KAAK,QAAU,KAAK,YAAYi9B,CAAG,EACnCj9B,EAAUA,GAAW,GACrBA,EAAQ,kBAAoBA,EAAQ,oBAAsB,OAAY,GAAQA,EAAQ,kBAClF,OAAOA,EAAQ,iBAAoB,WAAaA,EAAQ,kBAAoB,OAC5EA,EAAQ,gBAAkBA,EAAQ,kBAAoB,OAAY,GAAOA,EAAQ,oBAGjF,OAAM,IAAI,MAAM,iEAAiE,EAErFA,EAAQ,QAAUA,EAAQ,UAAY,OAAY,IAAM,IAAOA,EAAQ,QACvE,IAAI29I,EAAkB,KAClBC,EAAoB,KACxB,GAAI3G,GAAS,QAAU,OAAO,QAAY,IAAa,CAGnD,MAAMgC,EAAc,OAAO,qBAAwB,WAAa,wBAA0B,QAC1F0E,EAAkB1E,EAAY,IAAI,EAClC2E,EAAoB3E,EAAY,aAAa,CAChD,CACG,CAAChC,GAAS,QAAU,OAAO,UAAc,KAAe,CAACj3I,EAAQ,UACjEA,EAAQ,UAAY,UAEfi3I,GAAS,QAAU,CAACj3I,EAAQ,WAC7B29I,IACA39I,EAAQ,UAAY29I,GAGxB,CAAC1G,GAAS,QAAU,OAAO,YAAgB,KAAe,CAACj3I,EAAQ,YACnEA,EAAQ,YAAc,YAEjBi3I,GAAS,QAAU,CAACj3I,EAAQ,aAC7B,OAAO49I,EAAsB,MAC7B59I,EAAQ,YAAc49I,GAG9B,KAAK,YAAc59I,EAAQ,YAAc,IAAIw5I,IAAkB,KAAK,OAAO,EAC3E,KAAK,iBAAmB,eACxB,KAAK,mBAAqB,GAC1B,KAAK,SAAWx5I,EAChB,KAAK,UAAY,KACjB,KAAK,QAAU,IAClB,CACD,MAAM,MAAM68I,EAAgB,CAIxB,GAHAA,EAAiBA,GAAkBJ,GAAe,OAClDzF,GAAI,KAAK6F,EAAgBJ,GAAgB,gBAAgB,EACzD,KAAK,QAAQ,IAAI5F,GAAS,MAAO,6CAA6C4F,GAAeI,CAAc,CAAC,IAAI,EAC5G,KAAK,mBAAqB,eAC1B,OAAO,QAAQ,OAAO,IAAI,MAAM,yEAAyE,CAAC,EAM9G,GAJA,KAAK,iBAAmB,aACxB,KAAK,sBAAwB,KAAK,eAAeA,CAAc,EAC/D,MAAM,KAAK,sBAEP,KAAK,mBAAqB,gBAAqC,CAE/D,MAAM98G,EAAU,+DAChB,YAAK,QAAQ,IAAI82G,GAAS,MAAO92G,CAAO,EAExC,MAAM,KAAK,aACJ,QAAQ,OAAO,IAAI,MAAMA,CAAO,CAAC,CAC3C,SACQ,KAAK,mBAAqB,YAA6B,CAE5D,MAAMA,EAAU,8GAChB,YAAK,QAAQ,IAAI82G,GAAS,MAAO92G,CAAO,EACjC,QAAQ,OAAO,IAAI,MAAMA,CAAO,CAAC,CAC3C,CACD,KAAK,mBAAqB,EAC7B,CACD,KAAKhtB,EAAM,CACP,OAAI,KAAK,mBAAqB,YACnB,QAAQ,OAAO,IAAI,MAAM,qEAAqE,CAAC,GAErG,KAAK,aACN,KAAK,WAAa,IAAI8qI,GAAmB,KAAK,SAAS,GAGpD,KAAK,WAAW,KAAK9qI,CAAI,EACnC,CACD,MAAM,KAAKje,EAAO,CACd,GAAI,KAAK,mBAAqB,eAC1B,YAAK,QAAQ,IAAI+hJ,GAAS,MAAO,+BAA+B/hJ,CAAK,wEAAwE,EACtI,QAAQ,UAEnB,GAAI,KAAK,mBAAqB,gBAC1B,YAAK,QAAQ,IAAI+hJ,GAAS,MAAO,+BAA+B/hJ,CAAK,yEAAyE,EACvI,KAAK,aAEhB,KAAK,iBAAmB,gBACxB,KAAK,aAAe,IAAI,QAASqc,GAAY,CAEzC,KAAK,qBAAuBA,CACxC,CAAS,EAED,MAAM,KAAK,cAAcrc,CAAK,EAC9B,MAAM,KAAK,YACd,CACD,MAAM,cAAcA,EAAO,CAIvB,KAAK,WAAaA,EAClB,GAAI,CACA,MAAM,KAAK,qBACd,MACS,CAET,CAID,GAAI,KAAK,UAAW,CAChB,GAAI,CACA,MAAM,KAAK,UAAU,MACxB,OACMkB,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,gDAAgD7gJ,CAAC,IAAI,EACtF,KAAK,gBAAe,CACvB,CACD,KAAK,UAAY,MACpB,MAEG,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,wFAAwF,CAEhI,CACD,MAAM,eAAegG,EAAgB,CAGjC,IAAI5/G,EAAM,KAAK,QACf,KAAK,oBAAsB,KAAK,SAAS,mBACzC,GAAI,CACA,GAAI,KAAK,SAAS,gBACd,GAAI,KAAK,SAAS,YAAcu/G,GAAkB,WAE9C,KAAK,UAAY,KAAK,oBAAoBA,GAAkB,UAAU,EAGtE,MAAM,KAAK,gBAAgBv/G,EAAK4/G,CAAc,MAG9C,OAAM,IAAI,MAAM,8EAA8E,MAGjG,CACD,IAAIiB,EAAoB,KACpBC,EAAY,EAChB,EAAG,CAGC,GAFAD,EAAoB,MAAM,KAAK,wBAAwB7gH,CAAG,EAEtD,KAAK,mBAAqB,iBAAuC,KAAK,mBAAqB,eAC3F,MAAM,IAAI,MAAM,gDAAgD,EAEpE,GAAI6gH,EAAkB,MAClB,MAAM,IAAI,MAAMA,EAAkB,KAAK,EAE3C,GAAIA,EAAkB,gBAClB,MAAM,IAAI,MAAM,8LAA8L,EAKlN,GAHIA,EAAkB,MAClB7gH,EAAM6gH,EAAkB,KAExBA,EAAkB,YAAa,CAG/B,MAAME,EAAcF,EAAkB,YACtC,KAAK,oBAAsB,IAAME,CACpC,CACDD,GACH,OAAQD,EAAkB,KAAOC,EAAYN,IAC9C,GAAIM,IAAcN,IAAiBK,EAAkB,IACjD,MAAM,IAAI,MAAM,uCAAuC,EAE3D,MAAM,KAAK,iBAAiB7gH,EAAK,KAAK,SAAS,UAAW6gH,EAAmBjB,CAAc,CAC9F,CACG,KAAK,qBAAqBF,KAC1B,KAAK,SAAS,kBAAoB,IAElC,KAAK,mBAAqB,eAG1B,KAAK,QAAQ,IAAI9F,GAAS,MAAO,4CAA4C,EAC7E,KAAK,iBAAmB,YAK/B,OACM7gJ,EAAG,CACN,YAAK,QAAQ,IAAI6gJ,GAAS,MAAO,mCAAqC7gJ,CAAC,EACvE,KAAK,iBAAmB,eACxB,KAAK,UAAY,OAEjB,KAAK,qBAAoB,EAClB,QAAQ,OAAOA,CAAC,CAC1B,CACJ,CACD,MAAM,wBAAwBinC,EAAK,CAC/B,MAAMw1B,EAAU,GAChB,GAAI,KAAK,oBAAqB,CAC1B,MAAMh0B,EAAQ,MAAM,KAAK,sBACrBA,IACAg0B,EAAQ8pF,GAAY,aAAa,EAAI,UAAU99G,CAAK,GAE3D,CACD,KAAM,CAAC5sC,EAAMzC,CAAK,EAAIyoJ,GAAkB,EACxCplF,EAAQ5gE,CAAI,EAAIzC,EAChB,MAAM6uJ,EAAe,KAAK,qBAAqBhhH,CAAG,EAClD,KAAK,QAAQ,IAAI45G,GAAS,MAAO,gCAAgCoH,CAAY,GAAG,EAChF,GAAI,CACA,MAAMjvF,EAAW,MAAM,KAAK,YAAY,KAAKivF,EAAc,CACvD,QAAS,GACT,QAAS,CAAE,GAAGxrF,EAAS,GAAG,KAAK,SAAS,OAAS,EACjD,QAAS,KAAK,SAAS,QACvB,gBAAiB,KAAK,SAAS,eAC/C,CAAa,EACD,GAAIzD,EAAS,aAAe,IACxB,OAAO,QAAQ,OAAO,IAAI,MAAM,mDAAmDA,EAAS,UAAU,GAAG,CAAC,EAE9G,MAAM8uF,EAAoB,KAAK,MAAM9uF,EAAS,OAAO,EACrD,OAAI,CAAC8uF,EAAkB,kBAAoBA,EAAkB,iBAAmB,KAG5EA,EAAkB,gBAAkBA,EAAkB,cAEnDA,CACV,OACM9nJ,EAAG,CACN,IAAI+/I,EAAe,mDAAqD//I,EACxE,OAAIA,aAAa8/I,IACT9/I,EAAE,aAAe,MACjB+/I,EAAeA,EAAe,uFAGtC,KAAK,QAAQ,IAAIc,GAAS,MAAOd,CAAY,EACtC,QAAQ,OAAO,IAAIS,IAAiCT,CAAY,CAAC,CAC3E,CACJ,CACD,kBAAkB94G,EAAKihH,EAAiB,CACpC,OAAKA,EAGEjhH,GAAOA,EAAI,QAAQ,GAAG,IAAM,GAAK,IAAM,KAAO,MAAMihH,CAAe,GAF/DjhH,CAGd,CACD,MAAM,iBAAiBA,EAAKkhH,EAAoBL,EAAmBM,EAAyB,CACxF,IAAIC,EAAa,KAAK,kBAAkBphH,EAAK6gH,EAAkB,eAAe,EAC9E,GAAI,KAAK,cAAcK,CAAkB,EAAG,CACxC,KAAK,QAAQ,IAAItH,GAAS,MAAO,yEAAyE,EAC1G,KAAK,UAAYsH,EACjB,MAAM,KAAK,gBAAgBE,EAAYD,CAAuB,EAC9D,KAAK,aAAeN,EAAkB,aACtC,MACH,CACD,MAAMQ,EAAsB,GACtBC,EAAaT,EAAkB,qBAAuB,GAC5D,IAAIU,EAAYV,EAChB,UAAWW,KAAYF,EAAY,CAC/B,MAAMG,EAAmB,KAAK,yBAAyBD,EAAUN,EAAoBC,CAAuB,EAC5G,GAAIM,aAA4B,MAE5BJ,EAAoB,KAAK,GAAGG,EAAS,SAAS,UAAU,EACxDH,EAAoB,KAAKI,CAAgB,UAEpC,KAAK,cAAcA,CAAgB,EAAG,CAE3C,GADA,KAAK,UAAYA,EACb,CAACF,EAAW,CACZ,GAAI,CACAA,EAAY,MAAM,KAAK,wBAAwBvhH,CAAG,CACrD,OACM0hH,EAAI,CACP,OAAO,QAAQ,OAAOA,CAAE,CAC3B,CACDN,EAAa,KAAK,kBAAkBphH,EAAKuhH,EAAU,eAAe,CACrE,CACD,GAAI,CACA,MAAM,KAAK,gBAAgBH,EAAYD,CAAuB,EAC9D,KAAK,aAAeI,EAAU,aAC9B,MACH,OACMG,EAAI,CAIP,GAHA,KAAK,QAAQ,IAAI9H,GAAS,MAAO,kCAAkC4H,EAAS,SAAS,MAAME,CAAE,EAAE,EAC/FH,EAAY,OACZF,EAAoB,KAAK,IAAI/H,IAA4B,GAAGkI,EAAS,SAAS,YAAYE,CAAE,GAAInC,GAAkBiC,EAAS,SAAS,CAAC,CAAC,EAClI,KAAK,mBAAqB,aAA+B,CACzD,MAAM1+G,EAAU,uDAChB,YAAK,QAAQ,IAAI82G,GAAS,MAAO92G,CAAO,EACjC,QAAQ,OAAO,IAAI,MAAMA,CAAO,CAAC,CAC3C,CACJ,CACJ,CACJ,CACD,OAAIu+G,EAAoB,OAAS,EACtB,QAAQ,OAAO,IAAI7H,IAAgB,yEAAyE6H,EAAoB,KAAK,GAAG,CAAC,GAAIA,CAAmB,CAAC,EAErK,QAAQ,OAAO,IAAI,MAAM,6EAA6E,CAAC,CACjH,CACD,oBAAoBjI,EAAW,CAC3B,OAAQA,EAAS,CACb,KAAKmG,GAAkB,WACnB,GAAI,CAAC,KAAK,SAAS,UACf,MAAM,IAAI,MAAM,mDAAmD,EAEvE,OAAO,IAAIY,IAAmB,KAAK,YAAa,KAAK,oBAAqB,KAAK,QAAS,KAAK,SAAS,kBAAmB,KAAK,SAAS,UAAW,KAAK,SAAS,SAAW,EAAE,EACjL,KAAKZ,GAAkB,iBACnB,GAAI,CAAC,KAAK,SAAS,YACf,MAAM,IAAI,MAAM,qDAAqD,EAEzE,OAAO,IAAIU,IAA0B,KAAK,YAAa,KAAK,oBAAqB,KAAK,QAAS,KAAK,QAAQ,EAChH,KAAKV,GAAkB,YACnB,OAAO,IAAIG,GAAqB,KAAK,YAAa,KAAK,oBAAqB,KAAK,QAAS,KAAK,QAAQ,EAC3G,QACI,MAAM,IAAI,MAAM,sBAAsBtG,CAAS,GAAG,CACzD,CACJ,CACD,gBAAgBp5G,EAAK4/G,EAAgB,CACjC,YAAK,UAAU,UAAY,KAAK,UAChC,KAAK,UAAU,QAAW7mJ,GAAM,KAAK,gBAAgBA,CAAC,EAC/C,KAAK,UAAU,QAAQinC,EAAK4/G,CAAc,CACpD,CACD,yBAAyB4B,EAAUN,EAAoBC,EAAyB,CAC5E,MAAM/H,EAAYmG,GAAkBiC,EAAS,SAAS,EACtD,GAAIpI,GAAc,KACd,YAAK,QAAQ,IAAIQ,GAAS,MAAO,uBAAuB4H,EAAS,SAAS,+CAA+C,EAClH,IAAI,MAAM,uBAAuBA,EAAS,SAAS,+CAA+C,EAGzG,GAAIG,IAAiBT,EAAoB9H,CAAS,EAE9C,GADwBoI,EAAS,gBAAgB,IAAK39I,GAAM27I,GAAe37I,CAAC,CAAC,EACzD,QAAQs9I,CAAuB,GAAK,EAAG,CACvD,GAAK/H,IAAcmG,GAAkB,YAAc,CAAC,KAAK,SAAS,WAC7DnG,IAAcmG,GAAkB,kBAAoB,CAAC,KAAK,SAAS,YACpE,YAAK,QAAQ,IAAI3F,GAAS,MAAO,uBAAuB2F,GAAkBnG,CAAS,CAAC,qDAAqD,EAClI,IAAID,IAA0B,IAAIoG,GAAkBnG,CAAS,CAAC,0CAA2CA,CAAS,EAGzH,KAAK,QAAQ,IAAIQ,GAAS,MAAO,wBAAwB2F,GAAkBnG,CAAS,CAAC,IAAI,EACzF,GAAI,CACA,OAAO,KAAK,oBAAoBA,CAAS,CAC5C,OACMsI,EAAI,CACP,OAAOA,CACV,CAER,KAEG,aAAK,QAAQ,IAAI9H,GAAS,MAAO,uBAAuB2F,GAAkBnG,CAAS,CAAC,gEAAgEoG,GAAe2B,CAAuB,CAAC,IAAI,EACxL,IAAI,MAAM,IAAI5B,GAAkBnG,CAAS,CAAC,sBAAsBoG,GAAe2B,CAAuB,CAAC,GAAG,MAIrH,aAAK,QAAQ,IAAIvH,GAAS,MAAO,uBAAuB2F,GAAkBnG,CAAS,CAAC,0CAA0C,EACvH,IAAIC,IAAuB,IAAIkG,GAAkBnG,CAAS,CAAC,+BAAgCA,CAAS,CAGtH,CACD,cAAcA,EAAW,CACrB,OAAOA,GAAa,OAAQA,GAAe,UAAY,YAAaA,CACvE,CACD,gBAAgBvhJ,EAAO,CAMnB,GALA,KAAK,QAAQ,IAAI+hJ,GAAS,MAAO,iCAAiC/hJ,CAAK,2BAA2B,KAAK,gBAAgB,GAAG,EAC1H,KAAK,UAAY,OAEjBA,EAAQ,KAAK,YAAcA,EAC3B,KAAK,WAAa,OACd,KAAK,mBAAqB,eAAmC,CAC7D,KAAK,QAAQ,IAAI+hJ,GAAS,MAAO,yCAAyC/hJ,CAAK,4EAA4E,EAC3J,MACH,CACD,GAAI,KAAK,mBAAqB,aAC1B,WAAK,QAAQ,IAAI+hJ,GAAS,QAAS,yCAAyC/hJ,CAAK,wEAAwE,EACnJ,IAAI,MAAM,iCAAiCA,CAAK,qEAAqE,EAqB/H,GAnBI,KAAK,mBAAqB,iBAG1B,KAAK,qBAAoB,EAEzBA,EACA,KAAK,QAAQ,IAAI+hJ,GAAS,MAAO,uCAAuC/hJ,CAAK,IAAI,EAGjF,KAAK,QAAQ,IAAI+hJ,GAAS,YAAa,0BAA0B,EAEjE,KAAK,aACL,KAAK,WAAW,KAAM,EAAC,MAAO7gJ,GAAM,CAChC,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,0CAA0C7gJ,CAAC,IAAI,CAChG,CAAa,EACD,KAAK,WAAa,QAEtB,KAAK,aAAe,OACpB,KAAK,iBAAmB,eACpB,KAAK,mBAAoB,CACzB,KAAK,mBAAqB,GAC1B,GAAI,CACI,KAAK,SACL,KAAK,QAAQlB,CAAK,CAEzB,OACMkB,EAAG,CACN,KAAK,QAAQ,IAAI6gJ,GAAS,MAAO,0BAA0B/hJ,CAAK,kBAAkBkB,CAAC,IAAI,CAC1F,CACJ,CACJ,CACD,YAAYinC,EAAK,CAEb,GAAIA,EAAI,YAAY,WAAY,CAAC,IAAM,GAAKA,EAAI,YAAY,UAAW,CAAC,IAAM,EAC1E,OAAOA,EAEX,GAAI,CAACg6G,GAAS,UACV,MAAM,IAAI,MAAM,mBAAmBh6G,CAAG,IAAI,EAO9C,MAAM4hH,EAAO,OAAO,SAAS,cAAc,GAAG,EAC9C,OAAAA,EAAK,KAAO5hH,EACZ,KAAK,QAAQ,IAAI45G,GAAS,YAAa,gBAAgB55G,CAAG,SAAS4hH,EAAK,IAAI,IAAI,EACzEA,EAAK,IACf,CACD,qBAAqB5hH,EAAK,CACtB,MAAM1jC,EAAQ0jC,EAAI,QAAQ,GAAG,EAC7B,IAAIghH,EAAehhH,EAAI,UAAU,EAAG1jC,IAAU,GAAK0jC,EAAI,OAAS1jC,CAAK,EACrE,OAAI0kJ,EAAaA,EAAa,OAAS,CAAC,IAAM,MAC1CA,GAAgB,KAEpBA,GAAgB,YAChBA,GAAgB1kJ,IAAU,GAAK,GAAK0jC,EAAI,UAAU1jC,CAAK,EACnD0kJ,EAAa,QAAQ,kBAAkB,IAAM,KAC7CA,GAAgB1kJ,IAAU,GAAK,IAAM,IACrC0kJ,GAAgB,oBAAsB,KAAK,mBAExCA,CACV,CACL,CACA,SAASW,IAAiBT,EAAoBW,EAAiB,CAC3D,MAAO,CAACX,IAAwBW,EAAkBX,KAAwB,CAC9E,CAEO,MAAMN,EAAmB,CAC5B,YAAYkB,EAAY,CACpB,KAAK,WAAaA,EAClB,KAAK,QAAU,GACf,KAAK,WAAa,GAClB,KAAK,kBAAoB,IAAIC,GAC7B,KAAK,iBAAmB,IAAIA,GAC5B,KAAK,iBAAmB,KAAK,WAChC,CACD,KAAKjsI,EAAM,CACP,YAAK,YAAYA,CAAI,EAChB,KAAK,mBACN,KAAK,iBAAmB,IAAIisI,IAEzB,KAAK,iBAAiB,OAChC,CACD,MAAO,CACH,YAAK,WAAa,GAClB,KAAK,kBAAkB,UAChB,KAAK,gBACf,CACD,YAAYjsI,EAAM,CACd,GAAI,KAAK,QAAQ,QAAU,OAAQ,KAAK,QAAQ,CAAC,GAAO,OAAQA,EAC5D,MAAM,IAAI,MAAM,+BAA+B,OAAQ,KAAK,OAAQ,oBAAoB,OAAQA,CAAK,EAAE,EAE3G,KAAK,QAAQ,KAAKA,CAAI,EACtB,KAAK,kBAAkB,SAC1B,CACD,MAAM,WAAY,CACd,OAAa,CAET,GADA,MAAM,KAAK,kBAAkB,QACzB,CAAC,KAAK,WAAY,CACd,KAAK,kBACL,KAAK,iBAAiB,OAAO,qBAAqB,EAEtD,KACH,CACD,KAAK,kBAAoB,IAAIisI,GAC7B,MAAMC,EAAkB,KAAK,iBAC7B,KAAK,iBAAmB,OACxB,MAAMlsI,EAAO,OAAQ,KAAK,QAAQ,CAAC,GAAO,SACtC,KAAK,QAAQ,KAAK,EAAE,EACpB8qI,GAAmB,eAAe,KAAK,OAAO,EAClD,KAAK,QAAQ,OAAS,EACtB,GAAI,CACA,MAAM,KAAK,WAAW,KAAK9qI,CAAI,EAC/BksI,EAAgB,QAAO,CAC1B,OACMnqJ,EAAO,CACVmqJ,EAAgB,OAAOnqJ,CAAK,CAC/B,CACJ,CACJ,CACD,OAAO,eAAeoqJ,EAAc,CAChC,MAAMC,EAAcD,EAAa,IAAK96I,GAAMA,EAAE,UAAU,EAAE,OAAO,CAAC,EAAGA,IAAM,EAAIA,CAAC,EAC1EpL,EAAS,IAAI,WAAWmmJ,CAAW,EACzC,IAAI7kH,EAAS,EACb,UAAWnpC,KAAQ+tJ,EACflmJ,EAAO,IAAI,IAAI,WAAW7H,CAAI,EAAGmpC,CAAM,EACvCA,GAAUnpC,EAAK,WAEnB,OAAO6H,EAAO,MACjB,CACL,CACA,MAAMgmJ,EAAc,CAChB,aAAc,CACV,KAAK,QAAU,IAAI,QAAQ,CAAC7tI,EAASszB,IAAW,CAAC,KAAK,UAAW,KAAK,SAAS,EAAI,CAACtzB,EAASszB,CAAM,CAAC,CACvG,CACD,SAAU,CACN,KAAK,UAAS,CACjB,CACD,OAAO82B,EAAQ,CACX,KAAK,UAAUA,CAAM,CACxB,CACL,CC9gBA,MAAM6jF,IAAyB,OAExB,MAAMC,GAAgB,CACzB,aAAc,CAEV,KAAK,KAAOD,IAEZ,KAAK,QAAU,EAEf,KAAK,eAAiB3C,GAAe,IACxC,CAMD,cAAc5kG,EAAO4/F,EAAQ,CAEzB,GAAI,OAAO5/F,GAAU,SACjB,MAAM,IAAI,MAAM,yDAAyD,EAE7E,GAAI,CAACA,EACD,MAAO,GAEP4/F,IAAW,OACXA,EAASX,GAAW,UAGxB,MAAM4C,EAAWD,GAAkB,MAAM5hG,CAAK,EACxCynG,EAAc,GACpB,UAAWv/G,KAAW25G,EAAU,CAC5B,MAAM6F,EAAgB,KAAK,MAAMx/G,CAAO,EACxC,GAAI,OAAOw/G,EAAc,MAAS,SAC9B,MAAM,IAAI,MAAM,kBAAkB,EAEtC,OAAQA,EAAc,KAAI,CACtB,KAAKpF,GAAY,WACb,KAAK,qBAAqBoF,CAAa,EACvC,MACJ,KAAKpF,GAAY,WACb,KAAK,qBAAqBoF,CAAa,EACvC,MACJ,KAAKpF,GAAY,WACb,KAAK,qBAAqBoF,CAAa,EACvC,MACJ,KAAKpF,GAAY,KAEb,MACJ,KAAKA,GAAY,MAEb,MACJ,QAEI1C,EAAO,IAAIZ,GAAS,YAAa,yBAA2B0I,EAAc,KAAO,YAAY,EAC7F,QACP,CACDD,EAAY,KAAKC,CAAa,CACjC,CACD,OAAOD,CACV,CAMD,aAAav/G,EAAS,CAClB,OAAO05G,GAAkB,MAAM,KAAK,UAAU15G,CAAO,CAAC,CACzD,CACD,qBAAqBA,EAAS,CAC1B,KAAK,sBAAsBA,EAAQ,OAAQ,yCAAyC,EAChFA,EAAQ,eAAiB,QACzB,KAAK,sBAAsBA,EAAQ,aAAc,yCAAyC,CAEjG,CACD,qBAAqBA,EAAS,CAE1B,GADA,KAAK,sBAAsBA,EAAQ,aAAc,yCAAyC,EACtFA,EAAQ,OAAS,OACjB,MAAM,IAAI,MAAM,yCAAyC,CAEhE,CACD,qBAAqBA,EAAS,CAC1B,GAAIA,EAAQ,QAAUA,EAAQ,MAC1B,MAAM,IAAI,MAAM,yCAAyC,EAEzD,CAACA,EAAQ,QAAUA,EAAQ,OAC3B,KAAK,sBAAsBA,EAAQ,MAAO,yCAAyC,EAEvF,KAAK,sBAAsBA,EAAQ,aAAc,yCAAyC,CAC7F,CACD,sBAAsB3wC,EAAO2mJ,EAAc,CACvC,GAAI,OAAO3mJ,GAAU,UAAYA,IAAU,GACvC,MAAM,IAAI,MAAM2mJ,CAAY,CAEnC,CACL,CC5FA,MAAMyJ,IAAsB,CACxB,MAAO3I,GAAS,MAChB,MAAOA,GAAS,MAChB,KAAMA,GAAS,YACf,YAAaA,GAAS,YACtB,KAAMA,GAAS,QACf,QAASA,GAAS,QAClB,MAAOA,GAAS,MAChB,SAAUA,GAAS,SACnB,KAAMA,GAAS,IACnB,EACA,SAAS4I,IAAc5tJ,EAAM,CAIzB,MAAM6tJ,EAAUF,IAAoB3tJ,EAAK,YAAa,GACtD,GAAI,OAAO6tJ,EAAY,IACnB,OAAOA,EAGP,MAAM,IAAI,MAAM,sBAAsB7tJ,CAAI,EAAE,CAEpD,CAEO,MAAM8tJ,GAAqB,CAC9B,iBAAiBC,EAAS,CAEtB,GADA5I,GAAI,WAAW4I,EAAS,SAAS,EAC7BC,IAASD,CAAO,EAChB,KAAK,OAASA,UAET,OAAOA,GAAY,SAAU,CAClC,MAAMzH,EAAWsH,IAAcG,CAAO,EACtC,KAAK,OAAS,IAAI7H,GAAcI,CAAQ,CAC3C,MAEG,KAAK,OAAS,IAAIJ,GAAc6H,CAAO,EAE3C,OAAO,IACV,CACD,QAAQ3iH,EAAK6iH,EAAwB,CACjC,OAAA9I,GAAI,WAAW/5G,EAAK,KAAK,EACzB+5G,GAAI,WAAW/5G,EAAK,KAAK,EACzB,KAAK,IAAMA,EAGP,OAAO6iH,GAA2B,SAClC,KAAK,sBAAwB,CAAE,GAAG,KAAK,sBAAuB,GAAGA,GAGjE,KAAK,sBAAwB,CACzB,GAAG,KAAK,sBACR,UAAWA,CAC3B,EAEe,IACV,CAKD,gBAAgB7kF,EAAU,CACtB,OAAA+7E,GAAI,WAAW/7E,EAAU,UAAU,EACnC,KAAK,SAAWA,EACT,IACV,CACD,uBAAuB8kF,EAA8B,CACjD,GAAI,KAAK,gBACL,MAAM,IAAI,MAAM,yCAAyC,EAE7D,OAAKA,EAGI,MAAM,QAAQA,CAA4B,EAC/C,KAAK,gBAAkB,IAAI3D,GAAuB2D,CAA4B,EAG9E,KAAK,gBAAkBA,EANvB,KAAK,gBAAkB,IAAI3D,GAQxB,IACV,CAKD,OAAQ,CAGJ,MAAM4D,EAAwB,KAAK,uBAAyB,GAO5D,GALIA,EAAsB,SAAW,SAEjCA,EAAsB,OAAS,KAAK,QAGpC,CAAC,KAAK,IACN,MAAM,IAAI,MAAM,0FAA0F,EAE9G,MAAMvF,EAAa,IAAIiD,IAAe,KAAK,IAAKsC,CAAqB,EACrE,OAAOxF,GAAc,OAAOC,EAAY,KAAK,QAAU3D,GAAW,SAAU,KAAK,UAAY,IAAIuI,IAAmB,KAAK,eAAe,CAC3I,CACL,CACA,SAASQ,IAASpI,EAAQ,CACtB,OAAOA,EAAO,MAAQ,MAC1B,qBClFIwI,GAAK,WAAYC,GAAM,YAAaC,GAAM,WAE1CC,GAAO,IAAIH,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAgB,EAAG,EAAoB,CAAC,CAAC,EAE5II,GAAO,IAAIJ,GAAG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAiB,EAAG,CAAC,CAAC,EAEnIK,GAAO,IAAIL,GAAG,CAAC,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAE,CAAC,EAEhFM,GAAO,SAAUC,EAAIp9I,EAAO,CAE5B,QADIgB,EAAI,IAAI87I,GAAI,EAAE,EACT3xJ,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtB6V,EAAE7V,CAAC,EAAI6U,GAAS,GAAKo9I,EAAGjyJ,EAAI,CAAC,EAIjC,QADI+O,EAAI,IAAI6iJ,GAAI/7I,EAAE,EAAE,CAAC,EACZ7V,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtB,QAASm0B,EAAIte,EAAE7V,CAAC,EAAGm0B,EAAIte,EAAE7V,EAAI,CAAC,EAAG,EAAEm0B,EAC/BplB,EAAEolB,CAAC,EAAMA,EAAIte,EAAE7V,CAAC,GAAM,EAAKA,EAGnC,MAAO,CAAE,EAAG6V,EAAG,EAAG9G,CAAG,CACzB,EACIzK,GAAK0tJ,GAAKH,GAAM,CAAC,EAAGK,GAAK5tJ,GAAG,EAAG6tJ,GAAQ7tJ,GAAG,EAE9C4tJ,GAAG,EAAE,EAAI,IAAKC,GAAM,GAAG,EAAI,GAC3B,IAAIvyG,GAAKoyG,GAAKF,GAAM,CAAC,EAAGM,IAAKxyG,GAAG,EAAGyyG,GAAQzyG,GAAG,EAE1C0yG,GAAM,IAAIX,GAAI,KAAK,EACvB,QAAS3xJ,GAAI,EAAGA,GAAI,MAAO,EAAEA,GAAG,CAE5B,IAAI6J,IAAM7J,GAAI,QAAW,GAAOA,GAAI,QAAW,EAC/C6J,IAAMA,GAAI,QAAW,GAAOA,GAAI,QAAW,EAC3CA,IAAMA,GAAI,QAAW,GAAOA,GAAI,OAAW,EAC3CyoJ,GAAItyJ,EAAC,IAAO6J,GAAI,QAAW,GAAOA,GAAI,MAAW,IAAO,CAC5D,CAIA,IAAI0oJ,GAAQ,SAAUC,EAAIC,EAAI,EAAG,CAO7B,QANIlgJ,EAAIigJ,EAAG,OAEP,EAAI,EAEJ9tJ,EAAI,IAAIitJ,GAAIc,CAAE,EAEX,EAAIlgJ,EAAG,EAAE,EACRigJ,EAAG,CAAC,GACJ,EAAE9tJ,EAAE8tJ,EAAG,CAAC,EAAI,CAAC,EAGrB,IAAIE,EAAK,IAAIf,GAAIc,CAAE,EACnB,IAAK,EAAI,EAAG,EAAIA,EAAI,EAAE,EAClBC,EAAG,CAAC,EAAKA,EAAG,EAAI,CAAC,EAAIhuJ,EAAE,EAAI,CAAC,GAAM,EAEtC,IAAIiuJ,EACJ,GAAI,EAAG,CAEHA,EAAK,IAAIhB,GAAI,GAAKc,CAAE,EAEpB,IAAIG,EAAM,GAAKH,EACf,IAAK,EAAI,EAAG,EAAIlgJ,EAAG,EAAE,EAEjB,GAAIigJ,EAAG,CAAC,EAQJ,QANIK,EAAM,GAAK,EAAKL,EAAG,CAAC,EAEpBM,EAAML,EAAKD,EAAG,CAAC,EAEfnuJ,EAAIquJ,EAAGF,EAAG,CAAC,EAAI,CAAC,KAAOM,EAElBlqI,EAAIvkB,GAAM,GAAKyuJ,GAAO,EAAIzuJ,GAAKukB,EAAG,EAAEvkB,EAEzCsuJ,EAAGL,GAAIjuJ,CAAC,GAAKuuJ,CAAG,EAAIC,CAIxC,KAGQ,KADAF,EAAK,IAAIhB,GAAIp/I,CAAC,EACT,EAAI,EAAG,EAAIA,EAAG,EAAE,EACbigJ,EAAG,CAAC,IACJG,EAAG,CAAC,EAAIL,GAAII,EAAGF,EAAG,CAAC,EAAI,CAAC,GAAG,GAAM,GAAKA,EAAG,CAAC,GAItD,OAAOG,CACX,EAEII,GAAM,IAAIrB,GAAG,GAAG,EACpB,QAAS1xJ,GAAI,EAAGA,GAAI,IAAK,EAAEA,GACvB+yJ,GAAI/yJ,EAAC,EAAI,EACb,QAASA,GAAI,IAAKA,GAAI,IAAK,EAAEA,GACzB+yJ,GAAI/yJ,EAAC,EAAI,EACb,QAASA,GAAI,IAAKA,GAAI,IAAK,EAAEA,GACzB+yJ,GAAI/yJ,EAAC,EAAI,EACb,QAASA,GAAI,IAAKA,GAAI,IAAK,EAAEA,GACzB+yJ,GAAI/yJ,EAAC,EAAI,EAEb,IAAIgzJ,GAAM,IAAItB,GAAG,EAAE,EACnB,QAAS1xJ,GAAI,EAAGA,GAAI,GAAI,EAAEA,GACtBgzJ,GAAIhzJ,EAAC,EAAI,EAEb,IAAIizJ,IAAoBV,GAAKQ,GAAK,EAAG,CAAC,EAAGG,IAAqBX,GAAKQ,GAAK,EAAG,CAAC,EAExEI,IAAoBZ,GAAKS,GAAK,EAAG,CAAC,EAAGI,IAAqBb,GAAKS,GAAK,EAAG,CAAC,EAExEK,GAAM,SAAUz9I,EAAG,CAEnB,QADIgT,EAAIhT,EAAE,CAAC,EACF5V,EAAI,EAAGA,EAAI4V,EAAE,OAAQ,EAAE5V,EACxB4V,EAAE5V,CAAC,EAAI4oB,IACPA,EAAIhT,EAAE5V,CAAC,GAEf,OAAO4oB,CACX,EAEI0qI,GAAO,SAAUxxH,EAAGptB,EAAGkU,EAAG,CAC1B,IAAIw1B,EAAK1pC,EAAI,EAAK,EAClB,OAASotB,EAAEsc,CAAC,EAAKtc,EAAEsc,EAAI,CAAC,GAAK,KAAQ1pC,EAAI,GAAMkU,CACnD,EAEI2qI,GAAS,SAAUzxH,EAAGptB,EAAG,CACzB,IAAI0pC,EAAK1pC,EAAI,EAAK,EAClB,OAASotB,EAAEsc,CAAC,EAAKtc,EAAEsc,EAAI,CAAC,GAAK,EAAMtc,EAAEsc,EAAI,CAAC,GAAK,MAAS1pC,EAAI,EAChE,EAEI8+I,GAAO,SAAU9+I,EAAG,CAAE,OAASA,EAAI,GAAK,EAAK,CAAI,EAGjD++I,GAAM,SAAUpvJ,EAAGkO,EAAG9K,EAAG,CAGzB,OAAIA,GAAK,MAAQA,EAAIpD,EAAE,UACnBoD,EAAIpD,EAAE,QAEH,IAAIqtJ,GAAGrtJ,EAAE,SAASkO,EAAG9K,CAAC,CAAC,CAClC,EAsBIisJ,IAAK,CACL,iBACA,qBACA,yBACA,mBACA,kBACA,oBACJ,CACI,cACA,qBACA,uBACA,8BACA,oBACA,mBACA,kBAEJ,EAEIltJ,GAAM,SAAUmtJ,EAAK9J,EAAK+J,EAAI,CAC9B,IAAInsJ,EAAI,IAAI,MAAMoiJ,GAAO6J,IAAGC,CAAG,CAAC,EAIhC,GAHAlsJ,EAAE,KAAOksJ,EACL,MAAM,mBACN,MAAM,kBAAkBlsJ,EAAGjB,EAAG,EAC9B,CAACotJ,EACD,MAAMnsJ,EACV,OAAOA,CACX,EAEIosJ,IAAQ,SAAUC,EAAKC,EAAIC,EAAKC,EAAM,CAEtC,IAAIC,EAAKJ,EAAI,OAAQK,EAA0B,EAC/C,GAAI,CAACD,GAAMH,EAAG,GAAK,CAACA,EAAG,EACnB,OAAOC,GAAO,IAAItC,GAAG,CAAC,EAC1B,IAAI0C,EAAQ,CAACJ,EAETK,EAASD,GAASL,EAAG,GAAK,EAE1BO,EAAOP,EAAG,EAEVK,IACAJ,EAAM,IAAItC,GAAGwC,EAAK,CAAC,GAEvB,IAAIK,EAAO,SAAU7vJ,GAAG,CACpB,IAAI8vJ,GAAKR,EAAI,OAEb,GAAItvJ,GAAI8vJ,GAAI,CAER,IAAIC,GAAO,IAAI/C,GAAG,KAAK,IAAI8C,GAAK,EAAG9vJ,EAAC,CAAC,EACrC+vJ,GAAK,IAAIT,CAAG,EACZA,EAAMS,EAClB,CACK,EAEGC,EAAQX,EAAG,GAAK,EAAGnhG,EAAMmhG,EAAG,GAAK,EAAGY,EAAKZ,EAAG,GAAK,EAAGa,EAAKb,EAAG,EAAGc,EAAKd,EAAG,EAAGe,EAAMf,EAAG,EAAGgB,EAAMhB,EAAG,EAE/FiB,EAAOd,EAAK,EAChB,EAAG,CACC,GAAI,CAACU,EAAI,CAELF,EAAQpB,GAAKQ,EAAKlhG,EAAK,CAAC,EAExB,IAAItqD,EAAOgrJ,GAAKQ,EAAKlhG,EAAM,EAAG,CAAC,EAE/B,GADAA,GAAO,EACFtqD,EAiBA,GAAIA,GAAQ,EACbssJ,EAAK1B,IAAM2B,EAAKzB,IAAM0B,EAAM,EAAGC,EAAM,UAChCzsJ,GAAQ,EAAG,CAEhB,IAAI2sJ,EAAO3B,GAAKQ,EAAKlhG,EAAK,EAAE,EAAI,IAAKsiG,EAAQ5B,GAAKQ,EAAKlhG,EAAM,GAAI,EAAE,EAAI,EACnEuiG,EAAKF,EAAO3B,GAAKQ,EAAKlhG,EAAM,EAAG,EAAE,EAAI,EACzCA,GAAO,GAKP,QAHIwiG,EAAM,IAAI1D,GAAGyD,CAAE,EAEfE,EAAM,IAAI3D,GAAG,EAAE,EACV1xJ,EAAI,EAAGA,EAAIk1J,EAAO,EAAEl1J,EAEzBq1J,EAAItD,GAAK/xJ,CAAC,CAAC,EAAIszJ,GAAKQ,EAAKlhG,EAAM5yD,EAAI,EAAG,CAAC,EAE3C4yD,GAAOsiG,EAAQ,EAKf,QAHII,EAAMjC,GAAIgC,CAAG,EAAGE,GAAU,GAAKD,GAAO,EAEtCE,EAAMjD,GAAK8C,EAAKC,EAAK,CAAC,EACjBt1J,EAAI,EAAGA,EAAIm1J,GAAK,CACrB,IAAIpmJ,EAAIymJ,EAAIlC,GAAKQ,EAAKlhG,EAAK2iG,CAAM,CAAC,EAElC3iG,GAAO7jD,EAAI,GAEX,IAAIwD,EAAIxD,GAAK,EAEb,GAAIwD,EAAI,GACJ6iJ,EAAIp1J,GAAG,EAAIuS,MAEV,CAED,IAAI/Q,EAAI,EAAGc,EAAI,EAOf,IANIiQ,GAAK,IACLjQ,EAAI,EAAIgxJ,GAAKQ,EAAKlhG,EAAK,CAAC,EAAGA,GAAO,EAAGpxD,EAAI4zJ,EAAIp1J,EAAI,CAAC,GAC7CuS,GAAK,IACVjQ,EAAI,EAAIgxJ,GAAKQ,EAAKlhG,EAAK,CAAC,EAAGA,GAAO,GAC7BrgD,GAAK,KACVjQ,EAAI,GAAKgxJ,GAAKQ,EAAKlhG,EAAK,GAAG,EAAGA,GAAO,GAClCtwD,KACH8yJ,EAAIp1J,GAAG,EAAIwB,CACvC,CACA,CAEgB,IAAIi0J,GAAKL,EAAI,SAAS,EAAGH,CAAI,EAAGS,GAAKN,EAAI,SAASH,CAAI,EAEtDH,EAAMzB,GAAIoC,EAAE,EAEZV,EAAM1B,GAAIqC,EAAE,EACZd,EAAKrC,GAAKkD,GAAIX,EAAK,CAAC,EACpBD,EAAKtC,GAAKmD,GAAIX,EAAK,CAAC,CACpC,MAEgBvuJ,GAAI,CAAC,MAtEE,CAEP,IAAI+L,EAAIihJ,GAAK5gG,CAAG,EAAI,EAAGluD,EAAIovJ,EAAIvhJ,EAAI,CAAC,EAAKuhJ,EAAIvhJ,EAAI,CAAC,GAAK,EAAImhF,EAAInhF,EAAI7N,EACnE,GAAIgvF,EAAIwgE,EAAI,CACJI,GACA9tJ,GAAI,CAAC,EACT,KACpB,CAEoB6tJ,GACAE,EAAKI,EAAKjwJ,CAAC,EAEfsvJ,EAAI,IAAIF,EAAI,SAASvhJ,EAAGmhF,CAAC,EAAGihE,CAAE,EAE9BZ,EAAG,EAAIY,GAAMjwJ,EAAGqvJ,EAAG,EAAInhG,EAAM8gC,EAAI,EAAGqgE,EAAG,EAAIW,EAC3C,QAChB,CAuDY,GAAI9hG,EAAMoiG,EAAM,CACRV,GACA9tJ,GAAI,CAAC,EACT,KAChB,CACA,CAGY6tJ,GACAE,EAAKI,EAAK,MAAM,EAGpB,QAFIgB,GAAO,GAAKb,GAAO,EAAGc,GAAO,GAAKb,GAAO,EACzCc,EAAOjjG,GACHijG,EAAOjjG,EAAK,CAEhB,IAAIpxD,EAAIozJ,EAAGrB,GAAOO,EAAKlhG,CAAG,EAAI+iG,CAAG,EAAGG,EAAMt0J,GAAK,EAE/C,GADAoxD,GAAOpxD,EAAI,GACPoxD,EAAMoiG,EAAM,CACRV,GACA9tJ,GAAI,CAAC,EACT,KAChB,CAGY,GAFKhF,GACDgF,GAAI,CAAC,EACLsvJ,EAAM,IACN9B,EAAIW,GAAI,EAAImB,UACPA,GAAO,IAAK,CACjBD,EAAOjjG,EAAKgiG,EAAK,KACjB,KAChB,KACiB,CACD,IAAIn/G,EAAMqgH,EAAM,IAEhB,GAAIA,EAAM,IAAK,CAEX,IAAI91J,EAAI81J,EAAM,IAAKjgJ,EAAIg8I,GAAK7xJ,CAAC,EAC7By1C,EAAM69G,GAAKQ,EAAKlhG,GAAM,GAAK/8C,GAAK,CAAC,EAAIq8I,GAAGlyJ,CAAC,EACzC4yD,GAAO/8C,CAC3B,CAEgB,IAAIisB,EAAI+yH,EAAGtB,GAAOO,EAAKlhG,CAAG,EAAIgjG,CAAG,EAAGG,EAAOj0H,GAAK,EAC3CA,GACDt7B,GAAI,CAAC,EACTosD,GAAO9wB,EAAI,GACX,IAAI4zH,GAAKtD,IAAG2D,CAAI,EAChB,GAAIA,EAAO,EAAG,CACV,IAAIlgJ,EAAIi8I,GAAKiE,CAAI,EACjBL,IAAMnC,GAAOO,EAAKlhG,CAAG,GAAK,GAAK/8C,GAAK,EAAG+8C,GAAO/8C,CAClE,CACgB,GAAI+8C,EAAMoiG,EAAM,CACRV,GACA9tJ,GAAI,CAAC,EACT,KACpB,CACoB6tJ,GACAE,EAAKI,EAAK,MAAM,EACpB,IAAI7/I,GAAM6/I,EAAKl/G,EACf,GAAIk/G,EAAKe,GAAI,CACT,IAAIM,GAAQ7B,EAAKuB,GAAIO,GAAO,KAAK,IAAIP,GAAI5gJ,EAAG,EAG5C,IAFIkhJ,GAAQrB,EAAK,GACbnuJ,GAAI,CAAC,EACFmuJ,EAAKsB,GAAM,EAAEtB,EAChBX,EAAIW,CAAE,EAAIV,EAAK+B,GAAQrB,CAAE,CACjD,CACgB,KAAOA,EAAK7/I,GAAK,EAAE6/I,EACfX,EAAIW,CAAE,EAAIX,EAAIW,EAAKe,EAAE,CACzC,CACA,CACQ3B,EAAG,EAAIa,EAAIb,EAAG,EAAI8B,EAAM9B,EAAG,EAAIY,EAAIZ,EAAG,EAAIW,EACtCE,IACAF,EAAQ,EAAGX,EAAG,EAAIe,EAAKf,EAAG,EAAIc,EAAId,EAAG,EAAIgB,EAChD,OAAQ,CAACL,GAEV,OAAOC,GAAMX,EAAI,QAAUI,EAAQX,GAAIO,EAAK,EAAGW,CAAE,EAAIX,EAAI,SAAS,EAAGW,CAAE,CAC3E,EAEIuB,GAAQ,SAAUp0H,EAAGptB,EAAGrQ,EAAG,CAC3BA,IAAMqQ,EAAI,EACV,IAAI0pC,EAAK1pC,EAAI,EAAK,EAClBotB,EAAEsc,CAAC,GAAK/5C,EACRy9B,EAAEsc,EAAI,CAAC,GAAK/5C,GAAK,CACrB,EAEI8xJ,GAAU,SAAUr0H,EAAGptB,EAAGrQ,EAAG,CAC7BA,IAAMqQ,EAAI,EACV,IAAI0pC,EAAK1pC,EAAI,EAAK,EAClBotB,EAAEsc,CAAC,GAAK/5C,EACRy9B,EAAEsc,EAAI,CAAC,GAAK/5C,GAAK,EACjBy9B,EAAEsc,EAAI,CAAC,GAAK/5C,GAAK,EACrB,EAEI+xJ,GAAQ,SAAUt0H,EAAG2wH,EAAI,CAGzB,QADI/+D,EAAI,CAAE,EACD1zF,EAAI,EAAGA,EAAI8hC,EAAE,OAAQ,EAAE9hC,EACxB8hC,EAAE9hC,CAAC,GACH0zF,EAAE,KAAK,CAAE,EAAG1zF,EAAG,EAAG8hC,EAAE9hC,CAAC,EAAG,EAEhC,IAAIuS,EAAImhF,EAAE,OACN2iE,EAAK3iE,EAAE,MAAO,EAClB,GAAI,CAACnhF,EACD,MAAO,CAAE,EAAG+jJ,GAAI,EAAG,CAAG,EAC1B,GAAI/jJ,GAAK,EAAG,CACR,IAAIlO,EAAI,IAAIqtJ,GAAGh+D,EAAE,CAAC,EAAE,EAAI,CAAC,EACzB,OAAArvF,EAAEqvF,EAAE,CAAC,EAAE,CAAC,EAAI,EACL,CAAE,EAAGrvF,EAAG,EAAG,CAAG,CAC7B,CACIqvF,EAAE,KAAK,SAAU99E,EAAGC,EAAG,CAAE,OAAOD,EAAE,EAAIC,EAAE,EAAI,EAG5C69E,EAAE,KAAK,CAAE,EAAG,GAAI,EAAG,MAAO,EAC1B,IAAIhvF,EAAIgvF,EAAE,CAAC,EAAG3kF,EAAI2kF,EAAE,CAAC,EAAG4R,EAAK,EAAGI,EAAK,EAAG7tE,EAAK,EAO7C,IANA67D,EAAE,CAAC,EAAI,CAAE,EAAG,GAAI,EAAGhvF,EAAE,EAAIqK,EAAE,EAAG,EAAGrK,EAAG,EAAGqK,CAAG,EAMnC22F,GAAMnzF,EAAI,GACb7N,EAAIgvF,EAAEA,EAAE4R,CAAE,EAAE,EAAI5R,EAAE77D,CAAE,EAAE,EAAIytE,IAAOztE,GAAI,EACrC9oB,EAAI2kF,EAAE4R,GAAMI,GAAMhS,EAAE4R,CAAE,EAAE,EAAI5R,EAAE77D,CAAE,EAAE,EAAIytE,IAAOztE,GAAI,EACjD67D,EAAEgS,GAAI,EAAI,CAAE,EAAG,GAAI,EAAGhhG,EAAE,EAAIqK,EAAE,EAAG,EAAGrK,EAAG,EAAGqK,CAAG,EAGjD,QADIwnJ,EAASF,EAAG,CAAC,EAAE,EACVr2J,EAAI,EAAGA,EAAIuS,EAAG,EAAEvS,EACjBq2J,EAAGr2J,CAAC,EAAE,EAAIu2J,IACVA,EAASF,EAAGr2J,CAAC,EAAE,GAGvB,IAAIw2J,EAAK,IAAI7E,GAAI4E,EAAS,CAAC,EAEvBE,EAAMC,GAAGhjE,EAAEgS,EAAK,CAAC,EAAG8wD,EAAI,CAAC,EAC7B,GAAIC,EAAMhE,EAAI,CAIV,IAAIzyJ,EAAI,EAAG01J,EAAK,EAEZiB,EAAMF,EAAMhE,EAAImE,EAAM,GAAKD,EAE/B,IADAN,EAAG,KAAK,SAAUzgJ,EAAGC,EAAG,CAAE,OAAO2gJ,EAAG3gJ,EAAE,CAAC,EAAI2gJ,EAAG5gJ,EAAE,CAAC,GAAKA,EAAE,EAAIC,EAAE,EAAI,EAC3D7V,EAAIuS,EAAG,EAAEvS,EAAG,CACf,IAAI62J,EAAOR,EAAGr2J,CAAC,EAAE,EACjB,GAAIw2J,EAAGK,CAAI,EAAIpE,EACXiD,GAAMkB,GAAO,GAAMH,EAAMD,EAAGK,CAAI,GAChCL,EAAGK,CAAI,EAAIpE,MAGX,MAChB,CAEQ,IADAiD,IAAOiB,EACAjB,EAAK,GAAG,CACX,IAAIoB,EAAOT,EAAGr2J,CAAC,EAAE,EACbw2J,EAAGM,CAAI,EAAIrE,EACXiD,GAAM,GAAMjD,EAAK+D,EAAGM,CAAI,IAAM,EAE9B,EAAE92J,CAClB,CACQ,KAAOA,GAAK,GAAK01J,EAAI,EAAE11J,EAAG,CACtB,IAAI+2J,EAAOV,EAAGr2J,CAAC,EAAE,EACbw2J,EAAGO,CAAI,GAAKtE,IACZ,EAAE+D,EAAGO,CAAI,EACT,EAAErB,EAElB,CACQe,EAAMhE,CACd,CACI,MAAO,CAAE,EAAG,IAAIf,GAAG8E,CAAE,EAAG,EAAGC,CAAK,CACpC,EAEIC,GAAK,SAAUp0J,EAAGoC,EAAGo9B,EAAG,CACxB,OAAOx/B,EAAE,GAAK,GACR,KAAK,IAAIo0J,GAAGp0J,EAAE,EAAGoC,EAAGo9B,EAAI,CAAC,EAAG40H,GAAGp0J,EAAE,EAAGoC,EAAGo9B,EAAI,CAAC,CAAC,EAC5Cp9B,EAAEpC,EAAE,CAAC,EAAIw/B,CACpB,EAEIk1H,GAAK,SAAUx1J,EAAG,CAGlB,QAFI+Q,EAAI/Q,EAAE,OAEH+Q,GAAK,CAAC/Q,EAAE,EAAE+Q,CAAC,GACd,CAKJ,QAJI0kJ,EAAK,IAAItF,GAAI,EAAEp/I,CAAC,EAEhB2kJ,EAAM,EAAGC,EAAM31J,EAAE,CAAC,EAAG++B,EAAM,EAC3BmlC,EAAI,SAAUrhE,EAAG,CAAE4yJ,EAAGC,GAAK,EAAI7yJ,CAAI,EAC9BrE,EAAI,EAAGA,GAAKuS,EAAG,EAAEvS,EACtB,GAAIwB,EAAExB,CAAC,GAAKm3J,GAAOn3J,GAAKuS,EACpB,EAAEguB,MACD,CACD,GAAI,CAAC42H,GAAO52H,EAAM,EAAG,CACjB,KAAOA,EAAM,IAAKA,GAAO,IACrBmlC,EAAE,KAAK,EACPnlC,EAAM,IACNmlC,EAAEnlC,EAAM,GAAOA,EAAM,IAAO,EAAK,MAAUA,EAAM,GAAM,EAAK,KAAK,EACjEA,EAAM,EAE1B,SACqBA,EAAM,EAAG,CAEd,IADAmlC,EAAEyxF,CAAG,EAAG,EAAE52H,EACHA,EAAM,EAAGA,GAAO,EACnBmlC,EAAE,IAAI,EACNnlC,EAAM,IACNmlC,EAAInlC,EAAM,GAAM,EAAK,IAAI,EAAGA,EAAM,EACtD,CACY,KAAOA,KACHmlC,EAAEyxF,CAAG,EACT52H,EAAM,EACN42H,EAAM31J,EAAExB,CAAC,CACrB,CAEI,MAAO,CAAE,EAAGi3J,EAAG,SAAS,EAAGC,CAAG,EAAG,EAAG3kJ,CAAG,CAC3C,EAEI6kJ,GAAO,SAAUC,EAAIJ,EAAI,CAEzB,QADIvyJ,EAAI,EACC1E,EAAI,EAAGA,EAAIi3J,EAAG,OAAQ,EAAEj3J,EAC7B0E,GAAK2yJ,EAAGr3J,CAAC,EAAIi3J,EAAGj3J,CAAC,EACrB,OAAO0E,CACX,EAGI4yJ,GAAQ,SAAUC,EAAK3kG,EAAKkhG,EAAK,CAEjC,IAAIvhJ,EAAIuhJ,EAAI,OACR11G,EAAIo1G,GAAK5gG,EAAM,CAAC,EACpB2kG,EAAIn5G,CAAC,EAAI7rC,EAAI,IACbglJ,EAAIn5G,EAAI,CAAC,EAAI7rC,GAAK,EAClBglJ,EAAIn5G,EAAI,CAAC,EAAIm5G,EAAIn5G,CAAC,EAAI,IACtBm5G,EAAIn5G,EAAI,CAAC,EAAIm5G,EAAIn5G,EAAI,CAAC,EAAI,IAC1B,QAASp+C,EAAI,EAAGA,EAAIuS,EAAG,EAAEvS,EACrBu3J,EAAIn5G,EAAIp+C,EAAI,CAAC,EAAI8zJ,EAAI9zJ,CAAC,EAC1B,OAAQo+C,EAAI,EAAI7rC,GAAK,CACzB,EAEIilJ,GAAO,SAAU1D,EAAKyD,EAAK7C,EAAO+C,EAAMC,EAAIC,EAAI1F,EAAI2F,EAAIC,EAAIrD,EAAI9/I,EAAG,CACnEwhJ,GAAMqB,EAAK7iJ,IAAKggJ,CAAK,EACrB,EAAEgD,EAAG,GAAG,EAMR,QALIpzJ,EAAK8xJ,GAAMsB,EAAI,EAAE,EAAGI,EAAMxzJ,EAAG,EAAGyzJ,EAAMzzJ,EAAG,EACzCs7C,EAAKw2G,GAAMuB,EAAI,EAAE,EAAGK,EAAMp4G,EAAG,EAAGq4G,EAAMr4G,EAAG,EACzCE,EAAKk3G,GAAGc,CAAG,EAAGI,EAAOp4G,EAAG,EAAGq4G,EAAMr4G,EAAG,EACpCD,EAAKm3G,GAAGgB,CAAG,EAAGI,EAAOv4G,EAAG,EAAGw4G,EAAMx4G,EAAG,EACpCy4G,EAAS,IAAI3G,GAAI,EAAE,EACd3xJ,EAAI,EAAGA,EAAIk4J,EAAK,OAAQ,EAAEl4J,EAC/B,EAAEs4J,EAAOJ,EAAKl4J,CAAC,EAAI,EAAE,EACzB,QAASA,EAAI,EAAGA,EAAIo4J,EAAK,OAAQ,EAAEp4J,EAC/B,EAAEs4J,EAAOF,EAAKp4J,CAAC,EAAI,EAAE,EAGzB,QAFIkqD,EAAKksG,GAAMkC,EAAQ,CAAC,EAAGC,EAAMruG,EAAG,EAAGsuG,EAAOtuG,EAAG,EAC7CuuG,EAAO,GACJA,EAAO,GAAK,CAACF,EAAIxG,GAAK0G,EAAO,CAAC,CAAC,EAAG,EAAEA,EACvC,CACJ,IAAIC,EAAQlE,EAAK,GAAM,EACnBmE,EAAQvB,GAAKM,EAAI3E,EAAG,EAAIqE,GAAKO,EAAI3E,EAAG,EAAIf,EACxC2G,EAAQxB,GAAKM,EAAII,CAAG,EAAIV,GAAKO,EAAIK,CAAG,EAAI/F,EAAK,GAAK,EAAIwG,EAAOrB,GAAKkB,EAAQC,CAAG,EAAI,EAAID,EAAO,EAAE,EAAI,EAAIA,EAAO,EAAE,EAAI,EAAIA,EAAO,EAAE,EACpI,GAAIT,GAAM,GAAKa,GAAQC,GAASD,GAAQE,EACpC,OAAOtB,GAAMC,EAAK7iJ,EAAGo/I,EAAI,SAAS+D,EAAIA,EAAKrD,CAAE,CAAC,EAClD,IAAII,EAAIiE,EAAIhE,GAAIV,GAEhB,GADA+B,GAAMqB,EAAK7iJ,EAAG,GAAKkkJ,EAAQD,EAAM,EAAGjkJ,GAAK,EACrCkkJ,EAAQD,EAAO,CACf/D,EAAKrC,GAAKuF,EAAKC,EAAK,CAAC,EAAGc,EAAKf,EAAKjD,GAAKtC,GAAKyF,EAAKC,EAAK,CAAC,EAAG9D,GAAK6D,EAC/D,IAAIc,EAAMvG,GAAKgG,EAAKC,EAAM,CAAC,EAC3BtC,GAAMqB,EAAK7iJ,EAAGyjJ,EAAM,GAAG,EACvBjC,GAAMqB,EAAK7iJ,EAAI,EAAG2jJ,EAAM,CAAC,EACzBnC,GAAMqB,EAAK7iJ,EAAI,GAAI+jJ,EAAO,CAAC,EAC3B/jJ,GAAK,GACL,QAAS1U,EAAI,EAAGA,EAAIy4J,EAAM,EAAEz4J,EACxBk2J,GAAMqB,EAAK7iJ,EAAI,EAAI1U,EAAGu4J,EAAIxG,GAAK/xJ,CAAC,CAAC,CAAC,EACtC0U,GAAK,EAAI+jJ,EAET,QADIM,EAAO,CAACb,EAAME,CAAI,EACbY,EAAK,EAAGA,EAAK,EAAG,EAAEA,EAEvB,QADIC,EAAOF,EAAKC,CAAE,EACTh5J,EAAI,EAAGA,EAAIi5J,EAAK,OAAQ,EAAEj5J,EAAG,CAClC,IAAIk2B,EAAM+iI,EAAKj5J,CAAC,EAAI,GACpBk2J,GAAMqB,EAAK7iJ,EAAGokJ,EAAI5iI,CAAG,CAAC,EAAGxhB,GAAK6jJ,EAAIriI,CAAG,EACjCA,EAAM,KACNggI,GAAMqB,EAAK7iJ,EAAIukJ,EAAKj5J,CAAC,GAAK,EAAK,GAAG,EAAG0U,GAAKukJ,EAAKj5J,CAAC,GAAK,GACzE,CAEA,MAEQ40J,EAAK3B,IAAK4F,EAAK9F,GAAK8B,GAAK1B,IAAKgB,GAAKnB,GAEvC,QAAShzJ,EAAI,EAAGA,EAAI43J,EAAI,EAAE53J,EAAG,CACzB,IAAI81J,EAAM2B,EAAKz3J,CAAC,EAChB,GAAI81J,EAAM,IAAK,CACX,IAAI5/H,EAAO4/H,GAAO,GAAM,GACxBK,GAAQoB,EAAK7iJ,EAAGkgJ,EAAG1+H,EAAM,GAAG,CAAC,EAAGxhB,GAAKmkJ,EAAG3iI,EAAM,GAAG,EAC7CA,EAAM,IACNggI,GAAMqB,EAAK7iJ,EAAIohJ,GAAO,GAAM,EAAE,EAAGphJ,GAAKm9I,GAAK37H,CAAG,GAClD,IAAIgjI,EAAMpD,EAAM,GAChBK,GAAQoB,EAAK7iJ,EAAGmgJ,GAAGqE,CAAG,CAAC,EAAGxkJ,GAAKy/I,GAAG+E,CAAG,EACjCA,EAAM,IACN/C,GAAQoB,EAAK7iJ,EAAIohJ,GAAO,EAAK,IAAI,EAAGphJ,GAAKo9I,GAAKoH,CAAG,EACjE,MAEY/C,GAAQoB,EAAK7iJ,EAAGkgJ,EAAGkB,CAAG,CAAC,EAAGphJ,GAAKmkJ,EAAG/C,CAAG,CAEjD,CACI,OAAAK,GAAQoB,EAAK7iJ,EAAGkgJ,EAAG,GAAG,CAAC,EAChBlgJ,EAAImkJ,EAAG,GAAG,CACrB,EAEIM,IAAoB,IAAIvH,GAAI,CAAC,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,OAAO,CAAC,EAEvG0E,GAAmB,IAAI5E,GAAG,CAAC,EAE3B0H,IAAO,SAAUtF,EAAKuF,EAAKC,EAAMC,EAAKC,EAAMzF,EAAI,CAChD,IAAIxhJ,EAAIwhJ,EAAG,GAAKD,EAAI,OAChB11G,EAAI,IAAIszG,GAAG6H,EAAMhnJ,EAAI,GAAK,EAAI,KAAK,KAAKA,EAAI,GAAI,GAAKinJ,CAAI,EAEzD9zF,EAAItnB,EAAE,SAASm7G,EAAKn7G,EAAE,OAASo7G,CAAI,EACnCC,EAAM1F,EAAG,EACTnhG,GAAOmhG,EAAG,GAAK,GAAK,EACxB,GAAIsF,EAAK,CACDzmG,IACA8S,EAAE,CAAC,EAAIquF,EAAG,GAAK,GAenB,QAdItuI,EAAM0zI,IAAIE,EAAM,CAAC,EACjB/2J,EAAImjB,GAAO,GAAI,EAAIA,EAAM,KACzBi0I,GAAS,GAAKJ,GAAQ,EAEtB3yJ,EAAOotJ,EAAG,GAAK,IAAIpC,GAAI,KAAK,EAAGlrJ,EAAOstJ,EAAG,GAAK,IAAIpC,GAAI+H,EAAQ,CAAC,EAC/DC,EAAQ,KAAK,KAAKL,EAAO,CAAC,EAAGM,EAAQ,EAAID,EACzCE,EAAM,SAAU75J,GAAG,CAAE,OAAQ8zJ,EAAI9zJ,EAAC,EAAK8zJ,EAAI9zJ,GAAI,CAAC,GAAK25J,EAAU7F,EAAI9zJ,GAAI,CAAC,GAAK45J,GAAUF,CAAQ,EAG/FjC,EAAO,IAAI7F,GAAI,IAAK,EAEpB8F,EAAK,IAAI/F,GAAI,GAAG,EAAGgG,EAAK,IAAIhG,GAAI,EAAE,EAElCmI,EAAO,EAAG7H,EAAK,EAAGjyJ,EAAI+zJ,EAAG,GAAK,EAAG6D,EAAK,EAAGmC,EAAKhG,EAAG,GAAK,EAAG8D,EAAK,EAC3D73J,EAAI,EAAIuS,EAAG,EAAEvS,EAAG,CAEnB,IAAIg6J,EAAKH,EAAI75J,CAAC,EAEVi6J,EAAOj6J,EAAI,MAAOk6J,EAAQzzJ,EAAKuzJ,CAAE,EAKrC,GAJArzJ,EAAKszJ,CAAI,EAAIC,EACbzzJ,EAAKuzJ,CAAE,EAAIC,EAGPF,GAAM/5J,EAAG,CAET,IAAIm6J,EAAM5nJ,EAAIvS,EACd,IAAK85J,EAAO,KAAQlC,EAAK,SAAWuC,EAAM,KAAO,CAACV,GAAM,CACpD7mG,EAAM4kG,GAAK1D,EAAKpuF,EAAG,EAAG+xF,EAAMC,EAAIC,EAAI1F,EAAI2F,EAAIC,EAAI73J,EAAI63J,EAAIjlG,CAAG,EAC3DglG,EAAKkC,EAAO7H,EAAK,EAAG4F,EAAK73J,EACzB,QAASm0B,EAAI,EAAGA,EAAI,IAAK,EAAEA,EACvBujI,EAAGvjI,CAAC,EAAI,EACZ,QAASA,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACtBwjI,EAAGxjI,CAAC,EAAI,CAChC,CAEgB,IAAIzvB,GAAI,EAAGo9B,GAAI,EAAGs4H,EAAO,EAAGC,EAAMJ,EAAOC,EAAQ,MACjD,GAAIC,EAAM,GAAKH,GAAMH,EAAI75J,EAAIq6J,CAAG,EAM5B,QALIC,EAAO,KAAK,IAAIh4J,EAAG63J,CAAG,EAAI,EAC1BI,EAAO,KAAK,IAAI,MAAOv6J,CAAC,EAGxBw6J,EAAK,KAAK,IAAI,IAAKL,CAAG,EACnBE,GAAOE,GAAQ,EAAEH,GAAQH,GAAQC,GAAO,CAC3C,GAAIpG,EAAI9zJ,EAAI0E,EAAC,GAAKovJ,EAAI9zJ,EAAI0E,GAAI21J,CAAG,EAAG,CAEhC,QADII,EAAK,EACFA,EAAKD,GAAM1G,EAAI9zJ,EAAIy6J,CAAE,GAAK3G,EAAI9zJ,EAAIy6J,EAAKJ,CAAG,EAAG,EAAEI,EAClD,CACJ,GAAIA,EAAK/1J,GAAG,CAGR,GAFAA,GAAI+1J,EAAI34H,GAAIu4H,EAERI,EAAKH,EACL,MAMJ,QAFII,EAAM,KAAK,IAAIL,EAAKI,EAAK,CAAC,EAC1BE,EAAK,EACAxmI,EAAI,EAAGA,EAAIumI,EAAK,EAAEvmI,EAAG,CAC1B,IAAIymI,GAAK56J,EAAIq6J,EAAMlmI,EAAI,MACnB0mI,GAAMl0J,EAAKi0J,EAAE,EACbpI,GAAKoI,GAAKC,GAAM,MAChBrI,GAAKmI,IACLA,EAAKnI,GAAI0H,EAAQU,GACzD,CACA,CACA,CAEwBX,EAAOC,EAAOA,EAAQvzJ,EAAKszJ,CAAI,EAC/BI,GAAOJ,EAAOC,EAAQ,KAC9C,CAGgB,GAAIp4H,GAAG,CAGH21H,EAAKG,GAAI,EAAI,UAAazF,GAAMztJ,EAAC,GAAK,GAAM2tJ,GAAMvwH,EAAC,EACnD,IAAIg5H,GAAM3I,GAAMztJ,EAAC,EAAI,GAAIq2J,GAAM1I,GAAMvwH,EAAC,EAAI,GAC1CmwH,GAAMJ,GAAKiJ,EAAG,EAAIhJ,GAAKiJ,EAAG,EAC1B,EAAErD,EAAG,IAAMoD,EAAG,EACd,EAAEnD,EAAGoD,EAAG,EACRhB,EAAK/5J,EAAI0E,GACT,EAAEo1J,CACtB,MAEoBrC,EAAKG,GAAI,EAAI9D,EAAI9zJ,CAAC,EAClB,EAAE03J,EAAG5D,EAAI9zJ,CAAC,CAAC,CAE/B,CACA,CACQ,IAAKA,EAAI,KAAK,IAAIA,EAAG+5J,CAAE,EAAG/5J,EAAIuS,EAAG,EAAEvS,EAC/By3J,EAAKG,GAAI,EAAI9D,EAAI9zJ,CAAC,EAClB,EAAE03J,EAAG5D,EAAI9zJ,CAAC,CAAC,EAEf4yD,EAAM4kG,GAAK1D,EAAKpuF,EAAG+zF,EAAKhC,EAAMC,EAAIC,EAAI1F,EAAI2F,EAAIC,EAAI73J,EAAI63J,EAAIjlG,CAAG,EACxD6mG,IACD1F,EAAG,EAAKnhG,EAAM,EAAK8S,EAAG9S,EAAM,EAAK,CAAC,GAAK,EAEvCA,GAAO,EACPmhG,EAAG,EAAIttJ,EAAMstJ,EAAG,EAAIptJ,EAAMotJ,EAAG,EAAI/zJ,EAAG+zJ,EAAG,EAAIgG,EAEvD,KACS,CACD,QAAS/5J,EAAI+zJ,EAAG,GAAK,EAAG/zJ,EAAIuS,EAAIknJ,EAAKz5J,GAAK,MAAO,CAE7C,IAAIyH,GAAIzH,EAAI,MACRyH,IAAK8K,IAELmzD,EAAG9S,EAAM,EAAK,CAAC,EAAI6mG,EACnBhyJ,GAAI8K,GAERqgD,EAAM0kG,GAAM5xF,EAAG9S,EAAM,EAAGkhG,EAAI,SAAS9zJ,EAAGyH,EAAC,CAAC,CACtD,CACQssJ,EAAG,EAAIxhJ,CACf,CACI,OAAOkhJ,GAAIr1G,EAAG,EAAGm7G,EAAM/F,GAAK5gG,CAAG,EAAI4mG,CAAI,CAC3C,EA2BIwB,GAAQ,UAAY,CACpB,IAAIplJ,EAAI,EAAGC,EAAI,EACf,MAAO,CACH,EAAG,SAAUisB,EAAG,CAIZ,QAFI,EAAIlsB,EAAGgT,EAAI/S,EACXnR,EAAIo9B,EAAE,OAAS,EACV9hC,EAAI,EAAGA,GAAK0E,GAAI,CAErB,QADI+C,EAAI,KAAK,IAAIzH,EAAI,KAAM0E,CAAC,EACrB1E,EAAIyH,EAAG,EAAEzH,EACZ4oB,GAAK,GAAKkZ,EAAE9hC,CAAC,EACjB,GAAK,EAAI,OAAS,IAAM,GAAK,IAAK4oB,GAAKA,EAAI,OAAS,IAAMA,GAAK,GAC/E,CACYhT,EAAI,EAAGC,EAAI+S,CACd,EACD,EAAG,UAAY,CACX,OAAAhT,GAAK,MAAOC,GAAK,OACTD,EAAI,MAAQ,IAAMA,EAAI,QAAW,GAAKC,EAAI,MAAQ,EAAKA,GAAK,CAChF,CACK,CACL,EAGIolJ,IAAO,SAAUnH,EAAKruI,EAAK8zI,EAAKC,EAAMzF,EAAI,CAC1C,GAAI,CAACA,IACDA,EAAK,CAAE,EAAG,CAAG,EACTtuI,EAAI,YAAY,CAChB,IAAIwuI,EAAOxuI,EAAI,WAAW,SAAS,MAAM,EACrCy1I,EAAS,IAAIxJ,GAAGuC,EAAK,OAASH,EAAI,MAAM,EAC5CoH,EAAO,IAAIjH,CAAI,EACfiH,EAAO,IAAIpH,EAAKG,EAAK,MAAM,EAC3BH,EAAMoH,EACNnH,EAAG,EAAIE,EAAK,MACxB,CAEI,OAAOmF,IAAKtF,EAAKruI,EAAI,OAAS,KAAO,EAAIA,EAAI,MAAOA,EAAI,KAAO,KAAQsuI,EAAG,EAAI,KAAK,KAAK,KAAK,IAAI,EAAG,KAAK,IAAI,GAAI,KAAK,IAAID,EAAI,MAAM,CAAC,CAAC,EAAI,GAAG,EAAI,GAAO,GAAKruI,EAAI,IAAM8zI,EAAKC,EAAMzF,CAAE,CACxL,EAmJIoH,GAAS,SAAUr5H,EAAGjsB,EAAGxR,EAAG,CAC5B,KAAOA,EAAG,EAAEwR,EACRisB,EAAEjsB,CAAC,EAAIxR,EAAGA,KAAO,CACzB,EAkCI+2J,IAAM,SAAU55J,EAAG48C,EAAG,CACtB,IAAIi9G,EAAKj9G,EAAE,MAAO8zG,EAAKmJ,GAAM,EAAI,EAAIA,EAAK,EAAI,EAAIA,GAAM,EAAI,EAAI,EAGhE,GAFA75J,EAAE,CAAC,EAAI,IAAKA,EAAE,CAAC,EAAK0wJ,GAAM,GAAM9zG,EAAE,YAAc,IAChD58C,EAAE,CAAC,GAAK,IAAOA,EAAE,CAAC,GAAK,EAAKA,EAAE,CAAC,GAAK,GAChC48C,EAAE,WAAY,CACd,IAAIj2B,EAAI6yI,GAAO,EACf7yI,EAAE,EAAEi2B,EAAE,UAAU,EAChB+8G,GAAO35J,EAAG,EAAG2mB,EAAE,EAAC,CAAE,CAC1B,CACA,EAEImzI,IAAM,SAAUx5H,EAAGmyH,EAAM,CACzB,QAAKnyH,EAAE,CAAC,EAAI,KAAO,GAAMA,EAAE,CAAC,GAAK,EAAK,IAAOA,EAAE,CAAC,GAAK,EAAIA,EAAE,CAAC,GAAK,KAC7Dt7B,GAAI,EAAG,mBAAmB,GACzBs7B,EAAE,CAAC,GAAK,EAAI,IAAM,CAAC,CAACmyH,GACrBztJ,GAAI,EAAG,uBAAyBs7B,EAAE,CAAC,EAAI,GAAK,OAAS,cAAgB,aAAa,GAC9EA,EAAE,CAAC,GAAK,EAAI,GAAK,CAC7B,EA+aO,SAASy5H,GAAS/2I,EAAMisD,EAAM,CAC5BA,IACDA,EAAO,CAAE,GACb,IAAI76D,EAAIolJ,GAAO,EACfplJ,EAAE,EAAE4O,CAAI,EACR,IAAIsd,EAAIm5H,IAAKz2I,EAAMisD,EAAMA,EAAK,WAAa,EAAI,EAAG,CAAC,EACnD,OAAO2qF,IAAIt5H,EAAG2uC,CAAI,EAAG0qF,GAAOr5H,EAAGA,EAAE,OAAS,EAAGlsB,EAAE,EAAC,CAAE,EAAGksB,CACzD,CAmEO,SAAS05H,IAAWh3I,EAAMisD,EAAM,CACnC,OAAOojF,IAAMrvI,EAAK,SAAS82I,IAAI92I,EAAMisD,CAAuB,EAAG,EAAE,EAAG,CAAE,EAAG,CAAC,EAAIA,EAAkBA,CAAuB,CAC3H,CAiIA,IAAIgrF,IAAK,OAAO,YAAe,KAA6B,IAAI,YAE5DC,IAAM,EACV,GAAI,CACAD,IAAG,OAAOnF,GAAI,CAAE,OAAQ,EAAI,CAAE,EAC9BoF,IAAM,CACV,MACU,ECtkDqF,IAAIp5J,GAAE,UAAU,CAAC,OAAmB,OAAO,OAApB,IAA2B,OAAoB,OAAO,OAApB,IAA2B,OAAoB,OAAO,KAApB,IAAyB,KAAK,IAAI,EAAG,EAAC,SAAStC,IAAG,CAACsC,GAAE,SAAqB,OAAOA,GAAE,QAAQ,KAA7B,YAAkCA,GAAE,QAAQ,IAAI,MAAMA,GAAE,QAAQ,SAAS,CAAC,CAAC,IAAIsT,GAAE,CAAC,IAAI5V,GAAE,KAAK,SAAS,EAAE,CAACsC,GAAE,UAAsB,OAAOA,GAAE,QAAQ,MAA7B,WAAkCA,GAAE,QAAQ,KAAK,MAAMA,GAAE,QAAQ,SAAS,EAAEtC,GAAE,KAAK,KAAK,SAAS,EAAE,EAAE,MAAM,SAAS,EAAE,CAACsC,GAAE,UAAsB,OAAOA,GAAE,QAAQ,OAA7B,WAAmCA,GAAE,QAAQ,MAAM,MAAMA,GAAE,QAAQ,SAAS,EAAEtC,GAAE,CAAC,EAAE,CAAC,EAAE,SAASo+C,GAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,aAAa,OAAO,EAAE,OAAO,UAAU,CAAC15C,GAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,UAAU,CAACkR,GAAE,MAAM,yBAAyB,CAAC,EAAE,EAAE,KAAI,CAAE,CAAC,SAASrD,GAAE,EAAE,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,KAAK,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,KAAI,CAAE,MAAS,CAAE,QAAO,EAAE,QAAQ,KAAK,EAAE,QAAQ,GAAG,CAAC,SAAS/Q,GAAE,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,IAAI,WAAW,OAAO,CAAC,CAAC,MAAS,CAAC,IAAI,EAAE,SAAS,YAAY,aAAa,EAAE,EAAE,eAAe,QAAQ,GAAG,GAAG,OAAO,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAIywB,GAAE9J,GAAEzjB,GAAEpC,GAAE,UAAkC,OAAO,OAApB,IAA2B,YAAYoxF,GAAE,MAAM,KAA3D,UAA+D,SAASpxF,GAAE,UAAU,GAAgB,OAAO,kBAApB,KAAuC,aAAa,kBAAkB,UAAU,SAAS,EAAE,EAAE,EAAE,CAAC,IAAItC,EAAEsC,GAAE,KAAKA,GAAE,UAAUsT,EAAE,SAAS,cAAc,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,WAAWA,EAAE,SAAS,EAAEA,EAAE,IAAI,WAAqB,OAAO,GAAjB,UAAoBA,EAAE,KAAK,EAAEA,EAAE,SAAS,SAAS,OAAOrD,GAAEqD,EAAE,IAAI,EAAEwoC,GAAE,EAAE,EAAE,CAAC,EAAE58C,GAAEoU,EAAEA,EAAE,OAAO,QAAQ,EAAEpU,GAAEoU,CAAC,IAAIA,EAAE,KAAK5V,EAAE,gBAAgB,CAAC,EAAE,WAAY,UAAU,CAACA,EAAE,gBAAgB4V,EAAE,IAAI,CAAC,EAAG,GAAG,EAAE,WAAY,UAAU,CAACpU,GAAEoU,CAAC,CAAC,EAAG,CAAC,EAAE,EAAE,qBAAqB,UAAU,SAASnO,EAAEsH,EAAEzM,EAAE,CAAC,GAAGyM,EAAEA,GAAGtH,EAAE,MAAM,WAAqB,OAAOA,GAAjB,SAAmB,GAAG8K,GAAE9K,CAAC,EAAE22C,GAAE32C,EAAEsH,EAAEzM,CAAC,MAAM,CAAC,IAAItC,EAAE,SAAS,cAAc,GAAG,EAAEA,EAAE,KAAKyH,EAAEzH,EAAE,OAAO,SAAS,WAAY,UAAU,CAACwB,GAAExB,CAAC,CAAC,CAAC,CAAE,MAAM,UAAU,iBAAiB,SAASyH,EAAEsH,EAAE,CAAC,OAAgBA,IAAT,OAAWA,EAAE,CAAC,QAAQ,EAAE,EAAa2kF,GAAE3kF,CAAC,IAAd,WAAkB6G,GAAE,KAAK,oDAAoD,EAAE7G,EAAE,CAAC,QAAQ,CAACA,CAAC,GAAGA,EAAE,SAAS,6EAA6E,KAAKtH,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,SAA2BA,CAAC,EAAE,CAAC,KAAKA,EAAE,IAAI,CAAC,EAAEA,CAAC,EAAEA,EAAEnF,CAAC,EAAEyM,CAAC,CAAC,EAAE,SAAStH,EAAEsH,EAAE/O,EAAE4V,EAAE,CAAC,IAAIA,EAAEA,GAAG,KAAK,GAAG,QAAQ,KAAKA,EAAE,SAAS,MAAMA,EAAE,SAAS,KAAK,UAAU,kBAA4B,OAAOnO,GAAjB,SAAmB,OAAO22C,GAAE32C,EAAEsH,EAAE/O,CAAC,EAAE,IAAIuS,EAA+B9K,EAAE,OAA/B,2BAAoCjG,EAAE,eAAe,KAAKc,GAAE,WAAW,GAAGA,GAAE,OAAO2vB,EAAE,eAAe,KAAK,UAAU,SAAS,EAAE,IAAIA,GAAG1f,GAAG/Q,KAA6B,OAAO,WAApB,IAA+B,YAAYkyF,GAAE,UAAU,KAAnE,SAAsE,CAAC,IAAIvrE,EAAE,IAAI,WAAWA,EAAE,UAAU,UAAU,CAAC,IAAIurE,EAAEvrE,EAAE,OAAOurE,EAAEzhE,EAAEyhE,EAAEA,EAAE,QAAQ,eAAe,uBAAuB,EAAE99E,EAAEA,EAAE,SAAS,KAAK89E,EAAE,SAASA,EAAE99E,EAAE,IAAI,EAAEuS,EAAE,cAAc1gB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAEnF,GAAE,KAAKA,GAAE,UAAUk0F,EAAE,EAAE,gBAAgB/uF,CAAC,EAAEmO,EAAEA,EAAE,SAAS4gF,EAAE,SAAS,KAAKA,EAAE5gF,EAAE,KAAK,WAAY,UAAU,CAAC,EAAE,gBAAgB4gF,CAAC,CAAC,EAAG,GAAG,CAAC,CAAC,GAChyF;AAAA;AAAA;AAAA;AAAA;AAAA,GAKG,SAASA,GAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,GAAQ,EAAE,OAAO,CAAC,GAAf,MAAmB,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,UAAU,SAAS,aAAa,SAAS,KAAK,SAAS,WAAW,SAAS,MAAM,SAAS,MAAM,SAAS,OAAO,SAAS,MAAM,SAAS,eAAe,SAAS,KAAK,SAAS,WAAW,SAAS,MAAM,SAAS,UAAU,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU,SAAS,MAAM,SAAS,eAAe,SAAS,SAAS,SAAS,QAAQ,SAAS,KAAK,SAAS,SAAS,SAAS,SAAS,SAAS,cAAc,SAAS,SAAS,SAAS,UAAU,SAAS,UAAU,SAAS,YAAY,SAAS,eAAe,SAAS,WAAW,SAAS,WAAW,SAAS,QAAQ,SAAS,WAAW,SAAS,aAAa,SAAS,cAAc,SAAS,cAAc,SAAS,cAAc,SAAS,WAAW,SAAS,SAAS,SAAS,YAAY,SAAS,QAAQ,SAAS,WAAW,SAAS,SAAS,SAAS,UAAU,SAAS,YAAY,SAAS,YAAY,SAAS,QAAQ,SAAS,UAAU,SAAS,WAAW,SAAS,KAAK,SAAS,UAAU,SAAS,KAAK,SAAS,MAAM,SAAS,YAAY,SAAS,SAAS,SAAS,QAAQ,SAAS,UAAU,SAAS,OAAO,SAAS,MAAM,SAAS,MAAM,SAAS,SAAS,SAAS,cAAc,SAAS,UAAU,SAAS,aAAa,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU,SAAS,qBAAqB,SAAS,UAAU,SAAS,WAAW,SAAS,UAAU,SAAS,YAAY,SAAS,cAAc,SAAS,aAAa,SAAS,eAAe,SAAS,eAAe,SAAS,eAAe,SAAS,YAAY,SAAS,KAAK,SAAS,UAAU,SAAS,MAAM,SAAS,QAAQ,SAAS,OAAO,SAAS,iBAAiB,SAAS,WAAW,SAAS,aAAa,SAAS,aAAa,SAAS,eAAe,SAAS,gBAAgB,SAAS,kBAAkB,SAAS,gBAAgB,SAAS,gBAAgB,SAAS,aAAa,SAAS,UAAU,SAAS,UAAU,SAAS,SAAS,SAAS,YAAY,SAAS,KAAK,SAAS,QAAQ,SAAS,MAAM,SAAS,UAAU,SAAS,OAAO,SAAS,UAAU,SAAS,OAAO,SAAS,cAAc,SAAS,UAAU,SAAS,cAAc,SAAS,cAAc,SAAS,WAAW,SAAS,UAAU,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,WAAW,SAAS,OAAO,SAAS,IAAI,SAAS,UAAU,SAAS,UAAU,SAAS,YAAY,SAAS,OAAO,SAAS,WAAW,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,OAAO,SAAS,QAAQ,SAAS,UAAU,SAAS,UAAU,SAAS,KAAK,SAAS,YAAY,SAAS,UAAU,SAAS,IAAI,SAAS,KAAK,SAAS,QAAQ,SAAS,OAAO,SAAS,UAAU,SAAS,OAAO,SAAS,UAAU,SAAS,MAAM,SAAS,MAAM,SAAS,WAAW,SAAS,OAAO,SAAS,YAAY,QAAQ,EAAE,GAAG,EAAE,EAAE,QAAQ,KAAK,EAAE,GAAG,YAAa,IAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAG,+CAA+C,QAAQ,CAAC,oBAAoB,kBAAkB,EAAE,QAAQ,SAAS9C,EAAE,CAAC,MAAM,CAAC,SAASA,EAAE,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,0BAA0B,QAAQ,CAAC,UAAU,QAAQ,EAAE,QAAQ,SAASA,EAAE,CAAC,MAAM,CAAC,SAASA,EAAE,CAAC,EAAE,EAAE,EAAE,SAASA,EAAE,CAAC,EAAE,EAAE,EAAE,SAASA,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,0BAA0B,QAAQ,CAAC,OAAO,KAAK,EAAE,QAAQ,SAASA,EAAE,CAAC,MAAM,CAAC,SAASA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,SAASA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE,EAAE,SAASA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,MAAM,UAAU,CAAC,MAAM,OAAO,KAAK,EAAE,KAAK,KAAK,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,KAAK,MAAM,UAAU,CAAC,IAAIA,EAAE,KAAK,EAAE,SAAS,EAAE,EAAEjsF,EAAE,KAAK,EAAE,SAAS,EAAE,EAAEsH,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAU2kF,EAAE,QAAL,IAAcA,EAAE,IAAIA,GAAMjsF,EAAE,QAAL,IAAcA,EAAE,IAAIA,GAAMsH,EAAE,QAAL,IAAcA,EAAE,IAAIA,GAAG,IAAI2kF,EAAEjsF,EAAEsH,CAAC,CAAC,CACvwH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,SAAS+yB,GAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAEjG,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAEjT,GAAE,EAAE,EAAEiT,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEjT,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEvkB,GAAE,EAAE,EAAEukB,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAEvkB,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAEwR,GAAE,EAAE,EAAExR,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEwR,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,EAAEA,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,EAAE,CAAC,EAAEtU,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAEA,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAEA,GAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAEA,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAASmT,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAEnT,GAAEA,GAAE,EAAE,CAAC,EAAEA,GAAE,EAAE,CAAC,CAAC,EAAEA,GAAE,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,SAASs6B,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOnnB,GAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAASkU,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOlU,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAASrQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOqQ,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAASmB,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAOnB,GAAE,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS+hF,GAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,WAAW,WAAW,YAAY,SAAS,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG30D,GAAE,EAAE4jC,IAAE,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI5jC,GAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAEA,GAAE,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS4jC,IAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAE,EAAC,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,CAACzzC,GAAE3vB,GAAE,KAAK,KAAKA,EAAC,EAAE6lB,GAAE7lB,GAAE,KAAK,KAAKA,EAAC,EAAE,IAAI00F,GAAE,mBAAmB,MAAM,EAAE,EAAE,SAASI,IAAE,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAGJ,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAEA,GAAE,GAAG,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,SAASN,IAAE,EAAE,CAAC,OAAO,OAAO,cAAc,IAAI,IAAI,GAAG,MAAM,IAAI,GAAG,SAAS,IAAI,IAAI,WAAW,IAAI,EAAE,CAAC,CAAC,SAAS7sF,GAAE,EAAE,CAAC,OAAO4sF,GAAE,CAAC,EAAE,IAAIC,GAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAIY,IAAsC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,CAAC,EAAEF,IAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAEX,GAAE,OAAO,CAAC,GAArH,mCAAuH,SAASl1F,GAAE,EAAE,EAAE,CAAC,GAAG+1F,IAAE,CAAC,IAAI,GAAG,MAAM,IAAI,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,CACv3G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAOG,SAASX,GAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,QAAQ,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,GAAGn1F,EAAE,EAAEA,EAAE,IAAIA,IAAI,EAAEA,CAAC,EAAEA,EAAE,IAAI,EAAE,EAAE,IAAIA,EAAE,EAAEA,EAAE,IAAIA,IAAI,CAAC,IAAI2mB,EAAE,EAAE3mB,CAAC,EAAE,GAAG,EAAE2mB,EAAE,EAAE,WAAW3mB,CAAC,GAAG,IAAI,EAAEA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE2mB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,IAAIzjB,EAAE,EAAE,OAAO8xF,EAAE,EAAE10D,EAAE,EAAE,EAAE,GAAG,IAAItgC,EAAE,EAAEA,EAAEkD,EAAElD,IAAIsgC,GAAGA,GAAG3Z,EAAE,EAAEquE,GAAGA,EAAE,GAAG,GAAG,IAAI,IAAI,EAAEA,CAAC,EAAE,EAAE10D,CAAC,EAAE,EAAEA,CAAC,EAAE3Z,EAAE,EAAE,GAAG,EAAEquE,CAAC,EAAE,EAAE10D,CAAC,GAAG,GAAG,EAAE,GAAG,OAAO,aAAa,EAAE,WAAWtgC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CACrY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUG,IAAI6lC,GAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,cAAc,EAAE,EAAE,SAAS6vD,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAS,SAASxD,EAAE,CAAC,GAAYrsD,GAAE,OAAX,OAAgB,MAAM,IAAI,MAAM,uBAAuBqsD,CAAC,EAAE,GAAGrsD,GAAEqsD,CAAC,CAAC,CAAG,EAAC,KAAK,QAAQ,uCAAuC,IAAI,GAAG,EAAE,KAAK,SAAS,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,SAAS,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,qBAAqB,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,cAAc7pF,GAAE,EAAE,KAAK,EAAE,KAAK,aAAa,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE8sF,GAAE,KAAK,cAAc,KAAK,OAAO,CAAC,CAAC,SAAS7C,GAAE,EAAE,CAAC,GAAG,mBAAmB,KAAK,CAAC,EAAE,MAAM,IAAI,MAAM,4BAA4B,EAAE,iCAAiC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,EAAK,EAAE,IAAS,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAa,IAAL,IAAc,IAAN,KAAe,IAAN,KAAS,EAAE,IAAI,GAAG,KAAK,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAO,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS8C,GAAEnvF,EAAE,CAAC,GAAcisF,GAAEjsF,CAAC,IAAd,SAAgB,MAAM,IAAI,MAAM,4DAA4D,EAAE,IAAIsH,EAAE,GAAG,KAAK,UAAU,SAAS2kF,EAAEjsF,EAAEnF,EAAE,CAAC,GAAGA,EAAEA,GAAG,GAAa,OAAOoxF,GAAjB,UAAgC,OAAOjsF,GAAnB,YAAiC,OAAOnF,GAAlB,UAAoB,MAAM,IAAI,MAAM,6DAA6D,EAAEyM,EAAE,eAAe2kF,CAAC,IAAI3kF,EAAE2kF,CAAC,EAAE,IAAI,IAAI1zF,EAAE,KAAK,OAAQ,EAAC,SAAS,EAAE,EAAE,OAAO+O,EAAE2kF,CAAC,EAAE1zF,CAAC,EAAE,CAACyH,EAAE,CAAC,CAACnF,CAAC,EAAEtC,CAAC,EAAE,KAAK,YAAY,SAAS0zF,EAAE,CAAC,QAAQjsF,KAAKsH,EAAE,GAAGA,EAAEtH,CAAC,EAAEisF,CAAC,EAAE,OAAO,OAAO3kF,EAAEtH,CAAC,EAAEisF,CAAC,EAAM,OAAO,KAAK3kF,EAAEtH,CAAC,CAAC,EAAE,SAAtB,GAA8B,OAAOsH,EAAEtH,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,KAAK,QAAQ,SAASisF,EAAE,CAAC,GAAG3kF,EAAE,eAAe2kF,CAAC,EAAE,CAAC,IAAI1zF,EAAE,MAAM,UAAU,MAAM,KAAK,UAAU,CAAC,EAAEo+C,EAAE,GAAG,QAAQ7rC,KAAKxD,EAAE2kF,CAAC,EAAE,CAAC,IAAIlyF,EAAEuN,EAAE2kF,CAAC,EAAEnhF,CAAC,EAAE,GAAG,CAAC/Q,EAAE,CAAC,EAAE,MAAMiG,EAAEzH,CAAC,CAAC,OAAO0zF,EAAE,CAACpxF,GAAE,SAASsT,GAAE,MAAM,qBAAqB89E,EAAE,QAAQA,CAAC,CAAC,CAAClyF,EAAE,CAAC,GAAG48C,EAAE,KAAK7rC,CAAC,CAAC,CAAC6rC,EAAE,QAAQA,EAAE,QAAQ,KAAK,WAAW,CAAC,CAAC,EAAE,KAAK,UAAU,UAAU,CAAC,OAAOrvC,CAAC,CAAC,CAAC,SAASolB,GAAE,EAAE,CAAC,GAAG,EAAE,gBAAgBA,IAAG,OAAO,IAAIA,GAAE,CAAC,EAAE,IAAI,EAAE,yBAAyB,MAAM,GAAG,EAAE,QAAQ,KAAK,EAAE,EAAE,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,GAAG,KAAK,aAAa,EAAE,CAAC,SAASqjE,GAAE,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,GAAG,KAAK,aAAa,EAAE,CAAC,SAASD,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,gBAAgBA,IAAG,OAAO,IAAIA,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,KAAe,IAAV,QAAY,EAAE,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAEC,GAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAST,GAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,gBAAgBA,IAAG,OAAO,IAAIA,GAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,GAAG,KAAK,WAAW,EAAES,GAAE,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAASmkE,GAAEl0J,EAAE,CAAC,IAAIsH,EAAE/O,EAAY,OAAO,UAAU,CAAC,GAA5B,SAA8B,UAAU,CAAC,EAAE,IAAIo+C,EAAE,UAAU,CAAC,EAAE7rC,EAAE,UAAU,CAAC,EAAE/Q,EAAE,UAAU,CAAC,EAAEywB,EAAE,GAAG6P,EAAE,EAAEptB,EAAE,GAAGmnB,EAAE,IAAIjT,EAAE,KAAgB8qE,GAAEjsF,EAAEA,GAAG,CAAE,KAApB,WAAwBzH,EAAEyH,EAAE,YAAY22C,EAAE32C,EAAE,MAAM22C,EAAE7rC,EAAE9K,EAAE,QAAQ8K,EAAE/Q,EAAEiG,EAAE,UAAUA,EAAE,aAAajG,GAAUonB,EAAEnhB,EAAE,YAAY,QAAxB,OAAgCmhB,EAAE,aAAaA,EAAE,cAAc,GAAGA,EAAE,cAAcA,EAAE,eAAe,GAAGA,EAAE,gBAAgBA,EAAE,iBAAiB,CAAE,GAAEkZ,EAAY,OAAOr6B,EAAE,UAAnB,SAA4B,KAAK,IAAIA,EAAE,QAAQ,EAAE,EAAWA,EAAE,YAAX,SAAuBsH,EAAEtH,EAAE,WAAoBA,EAAE,iBAAX,SAA4BiN,EAAEjN,EAAE,gBAAgBo0B,EAAEp0B,EAAE,sBAAsB,KAAKwqB,EAAExqB,EAAE,UAAejG,IAAL,GAAO,CAAC,aAAa,EAAEywB,GAAGmsB,EAAEA,GAAG,KAAKp+C,GAAG,IAAIA,GAAG,MAAM,YAAW,EAAG,IAAIqE,EAAEoD,EAAE,kBAAkB,GAAGoO,EAAE,GAAG4gF,EAAE,CAAC,SAAS,GAAG,YAAY,CAAE,GAAEA,EAAE,YAAY,OAAOG,GAAE,IAAIlxB,EAAE,MAAMsxB,EAAEP,EAAE,YAAY,cAAc,UAAU,CAAC,OAAO/wB,CAAC,EAAE+wB,EAAE,YAAY,cAAc,SAAS/C,EAAE,CAAChuB,EAAEguB,CAAC,EAAE,IAAI0D,EAAE,CAAC,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO,OAAO,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,KAAK,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO,OAAO,EAAE,GAAG,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,OAAO,KAAK,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,IAAI,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,QAAQ,OAAO,EAAE,GAAG,CAAC,OAAO,OAAO,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,IAAI,CAAC,MAAM,MAAM,EAAE,GAAG,CAAC,OAAO,MAAM,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,oBAAoB,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,eAAe,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,cAAc,CAAC,IAAI,GAAG,CAAC,EAAEX,EAAE,YAAY,eAAe,UAAU,CAAC,OAAOW,CAAC,EAAE,IAAIV,EAAED,EAAE,YAAY,cAAc,SAAS/C,EAAE,CAAC,OAAO0D,EAAE1D,CAAC,CAAC,EAAEnhF,EAAEA,GAAG,KAAK,IAAI1I,EAAE,CAAC,OAAO,SAAS,SAAS,UAAU,EAAEytF,EAAEztF,EAAE,OAAO,SAAStI,GAAG,CAAC,KAAK,kBAAmB,EAACk0J,GAAG,IAAImG,GAAGC,GAAG,EAAE,EAAE,CAACA,GAAG,EAAEC,GAAE,EAAGD,EAAE,EAAE,SAAU,EAAC,KAAK,EAAE,KAAK,YAAY,KAAK,YAAW,EAAGA,EAAE,EAAEhgI,EAAE,IAAIy7D,EAAEztF,EAAE,QAAQ,CAAC,SAAS8sF,GAAG,CAAC,KAAK,qBAAsB,EAAC96D,EAAE,IAAIy7D,EAAEztF,EAAE,MAAM,CAAC,IAAIw9B,EAAEovD,EAAE,YAAY,8BAA8B,SAAS/C,EAAEjsF,GAAE,CAAC,GAAWisF,GAAR,QAAqBjsF,IAAV,UAAqBisF,GAAR,QAAgBjsF,IAAL,KAAkBisF,GAAV,UAAuBjsF,IAAV,UAAqBisF,GAAR,QAAqBjsF,IAAV,SAAY,MAAM,IAAI,MAAM,iDAAiD,EAAE,OAAOA,KAAIisF,EAAOjsF,IAAL,KAAmBA,KAAX,SAAwBisF,IAAX,SAAa,SAAS,SAAcjsF,IAAL,KAAiBA,KAAT,QAAuBisF,IAAX,UAAmBjsF,IAAL,IAAO,OAAOA,IAAG,GAAGisF,EAAE,QAAQA,CAAC,EAAE+C,EAAE,YAAY,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE6vF,IAAIztF,EAAE,OAAO,OAAOpC,IAAGlG,EAAE,KAAK,IAAI,EAAc,OAAOmyF,GAAnB,aAAuBA,EAAE,IAAI,EAAEjsF,IAAGkvF,EAAE,KAAK,IAAI,GAAG,IAAI,EAAEF,EAAE,UAAU,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE6vF,IAAIztF,EAAE,SAAS,OAAOpC,IAAGkvF,EAAE,KAAK,IAAI,EAAc,OAAOjD,GAAnB,aAAuBA,EAAE,IAAI,EAAEjsF,IAAGlG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAEk1F,EAAE,cAAc,UAAU,CAAC,OAAOa,IAAIztF,EAAE,QAAQ,EAAE,IAAI2tF,EAAEH,EAAE,SAAS3D,EAAE,CAAC,GAAG4D,IAAIztF,EAAE,SAAS,MAAM,IAAI,MAAM6pF,EAAE,kFAAkF,CAAC,EAAE+D,EAAEhB,EAAE,iBAAiBA,EAAE,YAAY,iBAAiB,SAAS/C,EAAEjsF,GAAE,CAAC,IAAInF,GAAEyM,GAAGtH,GAAE,GAAG,MAAMisF,CAAC,GAAG,MAAMpxF,EAAC,EAAE,MAAM,IAAI,MAAM,mDAAmD,EAAE,OAAOoxF,EAAE,QAAQpxF,EAAC,EAAE,QAAQ,MAAM,EAAE,CAAC,EAAEk1F,EAAEf,EAAE,IAAIA,EAAE,YAAY,IAAc,OAAO/hF,GAAjB,SAAmB,SAASg/E,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,sCAAsC,EAAE,OAAO+D,EAAE/D,EAAEh/E,CAAC,CAAC,EAAYA,IAAV,QAAY,SAASg/E,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,sCAAsC,EAAE,OAAO+D,EAAE/D,EAAEA,EAAE,IAAIA,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,SAASA,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,sCAAsC,EAAE,OAAO+D,EAAE/D,EAAE,EAAE,CAAC,EAAE,IAAI4zD,EAAE7wD,EAAE,GAAGA,EAAE,YAAY,GAAG,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,qCAAqC,EAAE,OAAO+D,EAAE/D,EAAE,CAAC,CAAC,EAAE,EAAE+C,EAAE,YAAY,GAAG,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,qCAAqC,EAAE,OAAO+D,EAAE/D,EAAE,CAAC,CAAC,EAAEiE,EAAElB,EAAE,MAAMA,EAAE,YAAY,MAAM,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,wCAAwC,EAAE,OAAO4D,IAAIztF,EAAE,OAAO6pF,EAAEmoE,GAAGvkE,IAAIztF,EAAE,SAAS6pF,EAAE,MAAM,EAAEyD,EAAE,SAASzD,EAAE,CAAC,OAAO4D,IAAIztF,EAAE,OAAOiyJ,GAAE,EAAGpoE,EAAE4D,IAAIztF,EAAE,SAAS6pF,EAAE,MAAM,EAAEuD,EAAE,SAASvD,EAAE,CAAC,OAAOiE,EAAER,EAAEzD,CAAC,CAAC,CAAC,EAAE+C,EAAE,YAAY,aAAaA,EAAE,aAAa,SAAS/C,EAAE,CAAW,OAAO,SAASA,EAAE,EAAE,GAA9B,WAAkC3kF,EAAE,SAAS2kF,EAAE,EAAE,EAAE,EAAE,IAAImE,EAAED,EAAE,mCAAmCF,EAAEjB,EAAE,YAAY,UAAU,UAAU,CAAC,OAAOmB,CAAC,EAAEmkE,GAAEtlE,EAAE,YAAY,UAAU,SAAS/C,EAAE,CAAC,OAAOkE,EAAWlE,IAAT,QAAY,oBAAoB,KAAKA,CAAC,EAAEA,EAAE,YAAW,EAAGkE,EAAE,MAAM,EAAE,EAAE,IAAK,UAAU,CAAC,MAAM,mBAAmB,OAAO,KAAK,MAAM,GAAG,KAAK,OAAM,CAAE,CAAC,CAAC,CAAC,EAAG,KAAK,EAAE,EAAShvE,IAAP,OAAWozI,GAAG,IAAI9kE,GAAEtuE,EAAE,gBAAgBA,EAAE,aAAaA,EAAE,cAAcgvE,CAAC,GAAGA,CAAC,EAAEnB,EAAE,UAAU,SAAS/C,EAAE,CAAC,OAAOqoE,GAAEroE,CAAC,EAAE,IAAI,EAAE+C,EAAE,UAAU,UAAU,CAAC,OAAOiB,EAAC,CAAE,EAAE,IAAIK,GAAEtB,EAAE,YAAY,qBAAqB,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEisF,EAAE,kBAAiB,EAAG3kF,GAAEtH,GAAE,EAAE,IAAI,IAAInF,GAAE,KAAK,MAAM,KAAK,IAAImF,GAAE,EAAE,CAAC,EAAEzH,GAAE,KAAK,IAAIyH,GAAE,EAAE,EAAEmO,GAAE,CAAC7G,GAAEkpF,EAAE31F,EAAC,EAAE,IAAI21F,EAAEj4F,EAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK0zF,EAAE,YAAW,EAAGuE,EAAEvE,EAAE,SAAQ,EAAG,CAAC,EAAEuE,EAAEvE,EAAE,QAAO,CAAE,EAAEuE,EAAEvE,EAAE,SAAU,GAAEuE,EAAEvE,EAAE,WAAU,CAAE,EAAEuE,EAAEvE,EAAE,WAAY,GAAE99E,EAAC,EAAE,KAAK,EAAE,CAAC,EAAEqmJ,EAAExlE,EAAE,YAAY,qBAAqB,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE,SAASisF,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE3kF,GAAE,SAAS2kF,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAEpxF,GAAE,SAASoxF,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE1zF,GAAE,SAAS0zF,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE99E,GAAE,SAAS89E,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAEt1C,GAAE,SAASs1C,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,IAAI,KAAKjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,GAAE,CAAC,CAAC,EAAE45C,EAAEvB,EAAE,YAAY,gBAAgB,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE,GAAYisF,IAAT,SAAaA,EAAE,IAAI,MAAMA,aAAa,KAAKjsF,GAAEswF,GAAErE,CAAC,MAAM,CAAC,GAAG,CAAC,kMAAkM,KAAKA,CAAC,EAAE,MAAM,IAAI,MAAM,kDAAkD,EAAEjsF,GAAEisF,CAAC,CAAC,OAAOmE,EAAEpwF,EAAC,EAAEqwF,EAAErB,EAAE,YAAY,gBAAgB,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEowF,EAAE,OAAiBnE,IAAX,WAAejsF,GAAEw0J,EAAEpkE,CAAC,GAAGpwF,EAAC,EAAEgvF,EAAE,gBAAgB,SAAS/C,EAAE,CAAC,OAAOsE,EAAEtE,CAAC,EAAE,IAAI,EAAE+C,EAAE,gBAAgB,SAAS/C,EAAE,CAAC,OAAOoE,EAAEpE,CAAC,CAAC,EAAE,IAAIoD,EAAEmB,EAAExB,EAAE,YAAY,MAAM,SAAS/C,EAAE,CAAC,OAAO,IAAI,SAASA,CAAC,GAAG,MAAM,EAAE,CAAC,EAAEp2D,EAAGm5D,EAAE,YAAY,SAAS,SAAS/C,EAAE,CAAC,OAAO,MAAMA,EAAEA,EAAE,SAAU,IAAG,OAAOA,EAAE,MAAM,CAAC,EAAE4iE,EAAG,EAAE4F,EAAG,CAAE,EAACtI,GAAG,CAAE,EAACoF,GAAG,EAAEmD,GAAG,GAAGC,GAAG,CAAE,EAACrI,GAAG,GAAGsI,GAAGzI,GAAG0I,GAAG,UAAU,CAAChG,EAAG,EAAE0C,GAAG,EAAEpF,GAAG,GAAGsI,EAAG,CAAE,EAACC,GAAG,CAAE,EAACI,GAAGC,GAAI,EAACC,GAAGD,GAAE,CAAE,EAAE/lE,EAAE,YAAY,2BAA2B,SAAS/C,EAAE,CAACqgE,GAAG,GAAGsI,GAAG3oE,CAAC,EAAE,IAAIgpE,GAAG,SAAShpE,EAAE,CAACqgE,KAAKsI,GAAG3oE,EAAE,EAAE+C,EAAE,YAAY,6BAA6B,UAAU,CAACs9D,GAAG,GAAGsI,GAAGzI,EAAE,EAAE,IAAI6B,GAAGh/D,EAAE,YAAY,IAAI,SAAS/C,EAAE,CAAC,OAAOA,EAAEA,EAAE,SAAU,EAACslE,IAAItlE,EAAE,OAAO,EAAE2oE,GAAG,KAAK3oE,CAAC,EAAE2oE,EAAE,EAAEM,GAAGlmE,EAAE,YAAY,MAAM,SAAS/C,EAAE,CAAC,OAAO+hE,GAAO,UAAU,SAAd,EAAqB/hE,EAAE,SAAQ,EAAG,MAAM,UAAU,KAAK,KAAK,UAAU,GAAG,CAAC,CAAC,EAAEgiE,GAAGj/D,EAAE,YAAY,eAAe,SAAS/C,EAAE,CAAC,QAAQjsF,GAAEisF,EAAE,OAAO3kF,GAAE,IAAI,YAAYtH,EAAC,EAAEnF,GAAE,IAAI,WAAWyM,EAAC,EAAEtH,MAAKnF,GAAEmF,EAAC,EAAEisF,EAAE,WAAWjsF,EAAC,EAAE,OAAOsH,EAAC,EAAE6tJ,GAAG,CAAC,CAAC,YAAY,YAAY,SAAS,iBAAiB,EAAE,CAAC,iBAAiB,YAAY,OAAO,iBAAiB,EAAE,CAAC,oBAAoB,YAAY,SAAS,iBAAiB,EAAE,CAAC,wBAAwB,YAAY,aAAa,iBAAiB,EAAE,CAAC,UAAU,UAAU,SAAS,iBAAiB,EAAE,CAAC,eAAe,UAAU,OAAO,iBAAiB,EAAE,CAAC,kBAAkB,UAAU,SAAS,iBAAiB,EAAE,CAAC,sBAAsB,UAAU,aAAa,iBAAiB,EAAE,CAAC,cAAc,QAAQ,SAAS,iBAAiB,EAAE,CAAC,aAAa,QAAQ,OAAO,iBAAiB,EAAE,CAAC,eAAe,QAAQ,SAAS,iBAAiB,EAAE,CAAC,mBAAmB,QAAQ,aAAa,iBAAiB,EAAE,CAAC,eAAe,eAAe,SAAS,IAAI,EAAE,CAAC,SAAS,SAAS,SAAS,IAAI,CAAC,EAAEnmE,EAAE,YAAY,iBAAiB,UAAU,CAAC,OAAOmmE,EAAE,EAAE,IAAIC,GAAGp1J,EAAE,UAAU,GAAGgvF,EAAE,YAAY,YAAYA,EAAE,YAAY,SAAS/C,EAAE,CAAC,OAAOmpE,GAAGvlE,IAAIztF,EAAE,SAAS6pF,EAAEmoE,GAAGnoE,EAAE,IAAI,EAAE,IAAIopE,GAAGC,GAAGtmE,EAAE,YAAY,YAAYA,EAAE,YAAY,UAAU,CAAC,OAAOa,IAAIztF,EAAE,OAAOgzJ,GAAGA,GAAGhB,EAAE,EAAElH,GAAGltJ,EAAE,KAAK,GAAGgvF,EAAE,YAAY,OAAOA,EAAE,OAAO,SAAS/C,EAAE,CAAC,OAAOihE,GAAGjhE,EAAE,IAAI,EAAE+C,EAAE,YAAY,OAAOA,EAAE,OAAO,UAAU,CAAC,OAAOk+D,EAAE,EAAE,IAAIqI,GAAGC,GAAGxmE,EAAE,YAAY,YAAY,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE,CAAC,OAAO,KAAK,YAAY,aAAa,WAAW,UAAU,EAAE,GAAG,+BAA+B,KAAKisF,CAAC,EAAEopE,GAAGppE,UAAU,MAAMA,CAAC,EAAE,CAAC,GAAQjsF,GAAE,QAAQisF,CAAC,IAAhB,GAAkB,MAAM,IAAI,MAAM,gHAAgHA,EAAE,sBAAsB,EAAEopE,GAAGppE,CAAC,MAAMopE,GAAG,SAASppE,EAAE,EAAE,CAAC,EAAE+C,EAAE,YAAY,YAAY,UAAU,CAAC,OAAOqmE,EAAE,EAAE,IAAII,GAAGC,GAAG1mE,EAAE,YAAY,YAAY,SAAS/C,EAAE,CAAC,GAAO,CAAC,OAAO,KAAK,UAAU,cAAc,YAAY,YAAY,EAAE,QAAQA,CAAC,GAA5E,GAA8E,MAAM,IAAI,MAAM,6EAA6EA,EAAE,sBAAsB,EAAEspE,GAAGtpE,CAAC,EAAE+C,EAAE,YAAY,YAAY,UAAU,CAAC,OAAOumE,EAAE,EAAE,IAAII,GAAG3mE,EAAE,YAAY,cAAc,SAAS/C,EAAE,CAAC,GAAO,CAAC,OAAO,KAAK,aAAa,SAAS,UAAU,WAAW,KAAK,EAAE,QAAQA,CAAC,GAA5E,GAA8E,MAAM,IAAI,MAAM,sEAAsEA,EAAE,sBAAsB,EAAEwpE,GAAGxpE,CAAC,EAAE+C,EAAE,YAAY,cAAc,UAAU,CAAC,OAAOymE,EAAE,EAAEzmE,EAAE,YAAY,eAAeA,EAAE,eAAe,SAAS/C,EAAEjsF,GAAEsH,GAAE,CAAC,OAAOkuJ,GAAGvpE,CAAC,EAAE0pE,GAAG31J,EAAC,EAAE01J,GAAGpuJ,EAAC,EAAE,IAAI,EAAE,IAAIsuJ,GAAG,CAAC,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,EAAE,EAAE5mE,EAAE,YAAY,oBAAoB,SAAS/C,EAAE,CAAC,GAAQ,OAAO,KAAK2pE,EAAE,EAAE,QAAQ3pE,CAAC,IAA9B,GAAgC,MAAM,IAAI,MAAM,sDAAsD,EAAE,OAAO2pE,GAAG3pE,CAAC,CAAC,EAAE+C,EAAE,YAAY,sBAAsB,UAAU,CAAC,OAAO4mE,EAAE,EAAE5mE,EAAE,YAAY,sBAAsBA,EAAE,cAAcA,EAAE,sBAAsB,SAAS/C,EAAE,CAAC,QAAQjsF,MAAK41J,GAAGA,GAAG,eAAe51J,EAAC,GAAGisF,EAAEjsF,EAAC,IAAI41J,GAAG51J,EAAC,EAAEisF,EAAEjsF,EAAC,GAAG,OAAO,IAAI,EAAEgvF,EAAE,YAAY,oBAAoB,SAAS/C,EAAEjsF,GAAE,CAAC,GAAQ,OAAO,KAAK41J,EAAE,EAAE,QAAQ3pE,CAAC,IAA9B,GAAgC,MAAM,IAAI,MAAM,uDAAuD,EAAE,OAAO2pE,GAAG3pE,CAAC,EAAEjsF,EAAC,EAAE,IAAI61J,GAAGzB,GAAG0B,GAAGC,GAAGC,GAAGC,GAAG,CAAE,EAACC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,CAAE,EAACC,GAAG,CAAE,EAACC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,GAAGC,GAAG,IAAIxnE,GAAEH,CAAC,EAAE4nE,GAAG52J,EAAE,UAAU,GAAG62J,GAAG,GAAGC,GAAG,CAAE,EAACC,GAAG,CAAE,EAAC5C,GAAG,SAASloE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,GAAE,CAAC,GAAG,EAAE,gBAAgBs1C,GAAG,OAAO,IAAIA,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,EAAC,EAAE,MAAM32C,EAAC,IAAIA,GAAE,GAAG,MAAMsH,EAAC,IAAIA,GAAE,GAAG,MAAMzM,EAAC,IAAIA,GAAE,GAAG,MAAMtC,EAAC,IAAIA,GAAE,GAAG,MAAM4V,EAAC,IAAIA,GAAE,GAAG,MAAMwoC,EAAC,IAAIA,GAAE,GAAG,KAAK,QAAQ,CAAC32C,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,EAAC,CAAC,EAAE,OAAO,eAAew9G,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,MAAM,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,SAASloE,EAAE,CAAC,KAAK,QAAQ,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAekoE,GAAG,UAAU,WAAW,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAeA,GAAG,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,UAAS,EAAG,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,eAAeA,GAAG,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,YAAY,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,eAAeA,GAAG,UAAU,aAAa,CAAC,IAAI,UAAU,CAAC,OAAW,KAAK,KAAT,GAAkB,KAAK,MAAT,GAAmB,KAAK,MAAT,GAAmB,KAAK,KAAT,GAAkB,KAAK,KAAT,GAAiB,KAAK,KAAT,CAAe,CAAC,CAAC,EAAEA,GAAG,UAAU,KAAK,SAASloE,EAAE,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,EAAE,IAAI8D,CAAC,EAAE,KAAK9D,CAAC,CAAC,EAAEkoE,GAAG,UAAU,SAAS,SAASloE,EAAE,CAAC,IAAIjsF,GAAEisF,EAAE,GAAG,KAAK,GAAGA,EAAE,IAAI,KAAK,IAAI3kF,GAAE2kF,EAAE,GAAG,KAAK,IAAIA,EAAE,IAAI,KAAK,GAAGpxF,GAAEoxF,EAAE,IAAI,KAAK,GAAGA,EAAE,GAAG,KAAK,IAAI1zF,GAAE0zF,EAAE,IAAI,KAAK,IAAIA,EAAE,GAAG,KAAK,GAAG99E,GAAE89E,EAAE,GAAG,KAAK,GAAGA,EAAE,GAAG,KAAK,IAAI,KAAK,GAAGt1C,GAAEs1C,EAAE,GAAG,KAAK,IAAIA,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,IAAIkoE,GAAGn0J,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,EAAC,CAAC,EAAEw9G,GAAG,UAAU,UAAU,UAAU,CAAC,IAAIloE,EAAE,KAAK,GAAGjsF,GAAE,KAAK,IAAIsH,GAAE,KAAK,IAAIzM,GAAE,KAAK,GAAGtC,GAAE,KAAK,GAAG4V,GAAE,KAAK,GAAGwoC,GAAE,KAAK,KAAKs1C,EAAEA,EAAEjsF,GAAEA,EAAC,EAAE8K,IAAGmhF,GAAGt1C,IAAGrvC,IAAGtH,IAAG22C,IAAG97C,GAAEyM,IAAG2kF,EAAEnhF,GAAEjQ,IAAGmF,GAAE8K,GAAE,IAAI/Q,GAAE,KAAK,KAAKuN,GAAEA,GAAEzM,GAAEA,EAAC,EAAE,OAAOiQ,IAAG/Q,GAAEkyF,GAAGpxF,IAAGd,IAAGiG,IAAGsH,IAAGvN,MAAKkyF,EAAE,CAACA,EAAEjsF,GAAE,CAACA,GAAE8K,GAAE,CAACA,GAAE6rC,GAAE,CAACA,IAAG,CAAC,MAAM,IAAIw9G,GAAGx9G,GAAE,EAAE,EAAE58C,GAAE,EAAE,CAAC,EAAE,UAAU,IAAIo6J,GAAG,EAAE,EAAE,EAAE,EAAE57J,GAAE4V,EAAC,EAAE,OAAO,IAAIgmJ,GAAGloE,EAAEjsF,GAAE,CAACA,GAAEisF,EAAE,EAAE,CAAC,EAAE,KAAK,IAAIkoE,GAAG,EAAE,EAAErpJ,GAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAEqpJ,GAAG,UAAU,SAAS,SAASloE,EAAE,CAAC,OAAO,KAAK,KAAK,GAAG,CAAC,EAAEkoE,GAAG,UAAU,SAAS,UAAU,CAAC,IAAIloE,EAAE,KAAK,GAAGjsF,GAAE,KAAK,IAAIsH,GAAE,KAAK,IAAIzM,GAAE,KAAK,GAAGtC,GAAE,KAAK,GAAG4V,GAAE,KAAK,GAAGwoC,GAAE,GAAGs1C,EAAEpxF,GAAEmF,GAAEsH,IAAGwD,GAAEjQ,GAAE87C,GAAE58C,GAAE,CAACiG,GAAE22C,GAAEnsB,GAAE,CAACljB,GAAEqvC,GAAEj2B,GAAEurE,EAAEt1C,GAAE,OAAO,IAAIw9G,GAAGrpJ,GAAE/Q,GAAEywB,GAAE9J,GAAE,CAAC5V,GAAEvS,GAAEiyB,GAAErc,GAAE,CAACpU,GAAExB,GAAEmoB,GAAEvS,EAAC,CAAC,EAAEgmJ,GAAG,UAAU,aAAa,SAASloE,EAAE,CAAC,IAAIjsF,GAAEisF,EAAE,EAAE,KAAK,GAAGA,EAAE,EAAE,KAAK,IAAI,KAAK,GAAG3kF,GAAE2kF,EAAE,EAAE,KAAK,IAAIA,EAAE,EAAE,KAAK,GAAG,KAAK,GAAG,OAAO,IAAI+qE,GAAGh3J,GAAEsH,EAAC,CAAC,EAAE6sJ,GAAG,UAAU,iBAAiB,SAASloE,EAAE,CAAC,IAAIjsF,GAAE,KAAK,aAAaisF,CAAC,EAAE3kF,GAAE,KAAK,aAAa,IAAI0vJ,GAAG/qE,EAAE,EAAEA,EAAE,EAAEA,EAAE,EAAEA,EAAE,CAAC,CAAC,EAAE,OAAO,IAAIgrE,GAAGj3J,GAAE,EAAEA,GAAE,EAAEsH,GAAE,EAAEtH,GAAE,EAAEsH,GAAE,EAAEtH,GAAE,CAAC,CAAC,EAAEm0J,GAAG,UAAU,MAAM,UAAU,CAAC,IAAIloE,EAAE,KAAK,GAAGjsF,GAAE,KAAK,IAAIsH,GAAE,KAAK,IAAIzM,GAAE,KAAK,GAAGtC,GAAE,KAAK,GAAG4V,GAAE,KAAK,GAAG,OAAO,IAAIgmJ,GAAGloE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,EAAC,CAAC,EAAE6gF,EAAE,OAAOmlE,GAAG,IAAI+C,GAAGloE,EAAE,WAAW,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOA,GAAE,SAASisF,CAAC,CAAC,EAAEkrE,GAAG,IAAIhD,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEnlE,EAAE,WAAWA,EAAE,eAAemoE,GAAG,IAAIC,GAAG,SAASnrE,EAAEjsF,GAAE,CAAC,GAAG,CAACq2J,GAAGpqE,CAAC,EAAE,CAAC,IAAI3kF,IAAGtH,cAAa8vF,GAAE,KAAK,MAAM,OAAO,KAAKsmE,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,EAAEp2J,GAAE,GAAGsH,GAAE+uJ,GAAGpqE,CAAC,EAAE3kF,GAAE8uJ,GAAG9uJ,EAAC,EAAEtH,GAAE22J,GAAG,QAAQ,aAAa32J,EAAC,CAAC,CAAC,EAAEgvF,EAAE,eAAec,GAAEd,EAAE,cAAcM,GAAEN,EAAE,kBAAkB,SAAS/C,EAAEjsF,GAAE,CAAC,OAAO4vF,EAAE,qBAAqB,EAAEwnE,GAAGnrE,EAAEjsF,EAAC,EAAE,IAAI,EAAEgvF,EAAE,mBAAmB,SAAS/C,EAAE,CAAC2D,EAAE,sBAAsB,EAAEynE,GAAGprE,EAAE,YAAY,CAAC,EAAEA,EAAE,YAAY,CAAC,EAAEA,EAAE,YAAY,CAAC,EAAEA,EAAE,YAAY,CAAC,EAAEA,EAAE,YAAY,CAAC,EAAEA,EAAE,YAAY,CAAC,EAAEA,EAAE,MAAM,CAAC,EAAE+C,EAAE,iBAAiB,SAAS/C,EAAEjsF,GAAE,CAAC4vF,EAAE,oBAAoB,EAAE5vF,GAAE,OAAO20J,GAAGtlE,CAAC,EAAE,KAAK;AAAA,CAAI,EAAE+nE,GAAGnrE,EAAEjsF,EAAC,EAAE22J,GAAG,QAAQ,mBAAmB32J,EAAC,EAAE+2J,GAAG,IAAK,EAAC,QAAS,GAAE,IAAIO,GAAGtoE,EAAE,YAAY,UAAU,UAAU,CAAC,IAAI/C,EAAE8oE,GAAI,EAAC,OAAOwC,GAAGtrE,EAAE,EAAE,EAAEA,CAAC,EAAE8oE,GAAG/lE,EAAE,YAAY,kBAAkB,UAAU,CAAC,OAAO6/D,IAAK4F,EAAG5F,CAAE,EAAE,UAAU,CAAC,OAAO0C,EAAE,EAAE1C,CAAE,EAAE0I,GAAG,SAAStrE,EAAEjsF,GAAE,CAAC,OAAOA,GAAa,OAAOA,IAAlB,WAAqBA,GAAEy0J,EAAGxoE,CAAC,EAAEslE,GAAGvxJ,IAAGguJ,GAAG/hE,EAAE,QAAQ,EAAEA,CAAC,EAAEurE,GAAGxoE,EAAE,YAAY,oBAAoB,UAAU,CAAC,IAAI/C,EAAE,CAAC,MAAM8oE,GAAI,EAAC,QAAQ,EAAE,EAAE,OAAOL,GAAG,KAAKzoE,CAAC,EAAEA,CAAC,EAAE6oE,GAAGC,GAAE,EAAGC,GAAGD,GAAE,EAAG0C,GAAGzoE,EAAE,YAAY,kBAAkB,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEisF,EAAE,MAAM,GAAG,EAAE,GAAOjsF,GAAE,SAAN,GAAoBA,GAAE,CAAC,IAAT,KAAkBA,GAAE,CAAC,IAAT,IAAmBA,GAAE,SAAN,IAAqBA,GAAE,CAAC,IAAT,KAAkBA,GAAE,CAAC,IAAT,OAAaA,GAAE,EAAE,EAAEA,GAAE,CAAC,IAAI,EAAEA,GAAE,CAAC,IAAI,EAAEA,GAAE,CAAC,IAAI,EAAEA,GAAE,CAAC,IAAI,EAAEA,GAAE,CAAC,IAAI,EAAEA,GAAE,CAAC,GAAG,GAAG,OAAO,CAAC,IAAIsH,GAAE,WAAWtH,GAAE,CAAC,CAAC,EAAEA,GAAE,CAACsH,GAAEA,GAAEA,GAAE,GAAG,CAAC,CAAC,QAAQzM,GAAE,IAAItC,GAAE,EAAEA,GAAE,EAAEA,KAAIsC,KAAI,IAAI,KAAK,MAAM,IAAI,WAAWmF,GAAEzH,EAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE,OAAOsC,EAAC,EAAEiuC,GAAGkmD,EAAE,YAAY,kBAAkB,SAAShvF,EAAE,CAAC,IAAIsH,GAAY,OAAOtH,GAAjB,WAAqBA,EAAE,CAAC,IAAIA,CAAC,GAAG,IAAInF,GAAEmF,EAAE,IAAIzH,GAAEyH,EAAE,IAAImO,GAAEnO,EAAE,IAAI22C,GAAE32C,EAAE,IAAI8K,GAAW9K,EAAE,eAAX,OAAwB,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC,IAAI,KAAK,GAAG,EAAE,GAAa,OAAOnF,IAAjB,UAA0BA,GAAE,OAAO,CAAC,IAAhB,IAAkB,CAAC,IAAId,GAAE,IAAIg1F,GAAEl0F,EAAC,EAAE,GAAGd,GAAE,GAAGc,GAAEd,GAAE,MAAK,UAAW,CAAC,cAAc,KAAKc,EAAC,EAAE,MAAM,IAAI,MAAM,kBAAkBA,GAAE,sCAAsC,CAAC,CAAC,GAAa,OAAOA,IAAjB,UAAoB,oBAAoB,KAAKA,EAAC,IAAIA,GAAE,IAAIA,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,GAAa,OAAOA,IAAjB,UAAoB,oBAAoB,KAAKA,EAAC,EAAE,CAAC,IAAI2vB,GAAE,SAAS3vB,GAAE,OAAO,CAAC,EAAE,EAAE,EAAEA,GAAE2vB,IAAG,GAAG,IAAIjyB,GAAEiyB,IAAG,EAAE,IAAIrc,GAAE,IAAIqc,EAAC,CAAC,GAAYjyB,KAAT,QAAqBo+C,KAAT,QAAY97C,KAAItC,IAAGA,KAAI4V,GAAE,GAAa,OAAOtT,IAAjB,SAAmByM,GAAEzM,GAAE,IAAIiQ,GAAE,CAAC,MAAO,QAAO9K,EAAE,UAAW,KAAK,GAAEsH,GAAEu4I,EAAEhlJ,GAAE,GAAG,EAAE,IAAIiQ,GAAE,CAAC,EAAE,MAAM,IAAK,GAAE,QAAQxD,GAAE,EAAEzM,GAAE,GAAG,EAAE,IAAIiQ,GAAE,CAAC,CAAC,SAAkB6rC,KAAT,QAAuBs1C,GAAEt1C,EAAC,IAAd,SAAgB,CAAC,GAAGA,IAAG,CAAC,MAAMA,GAAE,CAAC,GAAOA,GAAE,IAAN,EAAQ,OAAOrvC,GAAE,CAAC,KAAK,KAAK,KAAKwD,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,GAAa,OAAOjQ,IAAjB,SAAmByM,GAAE,CAACzM,GAAEtC,GAAE4V,GAAErD,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,MAAO,QAAO9K,EAAE,UAAS,CAAE,IAAK,GAAEsH,GAAE,CAACu4I,EAAEhlJ,GAAE,GAAG,EAAEglJ,EAAEtnJ,GAAE,GAAG,EAAEsnJ,EAAE1xI,GAAE,GAAG,EAAErD,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,QAAQ,IAAK,GAAExD,GAAE,CAAC,EAAEzM,GAAE,GAAG,EAAE,EAAEtC,GAAE,GAAG,EAAE,EAAE4V,GAAE,GAAG,EAAErD,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,SAAmB,OAAOjQ,IAAjB,SAAmByM,GAAE,CAACzM,GAAEtC,GAAE4V,GAAEwoC,GAAE7rC,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,MAAO,QAAO9K,EAAE,UAAS,CAAE,IAAK,GAAEsH,GAAE,CAACu4I,EAAEhlJ,EAAC,EAAEglJ,EAAEtnJ,EAAC,EAAEsnJ,EAAE1xI,EAAC,EAAE0xI,EAAElpG,EAAC,EAAE7rC,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,IAAK,GAAE,QAAQxD,GAAE,CAAC,EAAEzM,EAAC,EAAE,EAAEtC,EAAC,EAAE,EAAE4V,EAAC,EAAE,EAAEwoC,EAAC,EAAE7rC,GAAE,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,OAAOxD,EAAC,EAAEowJ,GAAG1oE,EAAE,YAAY,WAAW,UAAU,CAAC,OAAOxkE,CAAC,EAAEmtI,GAAG3oE,EAAE,YAAY,UAAU,SAAS/C,EAAE,CAAC,IAAIjsF,IAAGisF,EAAEA,GAAG,IAAI,MAAM,GAAG3kF,GAAE2kF,EAAE,SAASyrE,GAAI,EAAC78J,GAAEoxF,EAAE,uBAAuB,GAAG1zF,GAAE0zF,EAAE,YAAY,GAAG99E,GAAEnO,GAAE,OAAO22C,GAAEs1C,EAAE,SAASnhF,GAAE,SAASmhF,GAAE,CAAC,OAAOA,EAAC,EAAE,GAAU9qE,IAAP,MAAmBw1B,KAAT,OAAW,MAAM,IAAI,MAAM,0DAA0D,EAASx1B,IAAP,OAAWrW,GAAEypJ,GAAG,UAAU59G,GAAE,CAAC,GAAG,IAAI58C,GAAE,GAAQuN,KAAL,KAASA,GAAE,CAAC,aAAa,GAAG,IAAIkjB,GAAEyhE,EAAE,qBAAqB,GAAGvrE,IAAG3mB,GAAWm6J,GAAE,IAAI,uBAAf,OAAoCA,GAAE,IAAI,qBAAqBl0J,GAAEsH,EAAC,EAAE,CAAC,KAAKtH,GAAE,aAAa,EAAE,GAAG,cAAc,MAAM,QAAQnF,EAAC,EAAEA,GAAE,KAAK,GAAG,EAAEA,GAAE,SAAU,GAAE,GAAOd,GAAE,KAAK,SAAX,IAAoBywB,GAAE,KAAK,CAAC,IAAI,SAAS,MAAMzwB,GAAE,KAAK,MAAM,CAAC,EAAOxB,KAAL,IAAQiyB,GAAE,KAAK,CAAC,IAAI,UAAU,MAAMrc,EAAC,CAAC,GAAMuS,GAAE,QAAL,EAAY,GAAGA,GAAE,MAAM,GAAG,EAAE,OAAO,GAAG,EAAE8J,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM9J,EAAC,CAAC,MAAM,CAAC8J,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM,IAAI9J,GAAE,GAAG,CAAC,EAAE,QAAQzjB,GAAE,EAAEA,GAAEutB,GAAE,OAAOvtB,IAAG,EAAE,GAAmButB,GAAEvtB,EAAC,EAAE,MAArB,cAAyB,CAAC,QAAQ8xF,GAAE,GAAG10D,GAAE,EAAEA,GAAEtgC,GAAE,aAAa,MAAM,GAAG,EAAE,OAAO,EAAEsgC,IAAG,EAAE00D,GAAE,KAAK,MAAM,EAAEA,GAAE,KAAKvkE,GAAEvtB,EAAC,EAAE,KAAK,EAAEutB,GAAEvtB,EAAC,EAAE,MAAM,IAAI8xF,GAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAACi/D,GAAG,IAAI,EAAE,QAAQ/gJ,GAAE,EAAEA,GAAEud,GAAE,OAAOvd,KAAI+gJ,GAAG,IAAIxjI,GAAEvd,EAAC,EAAE,IAAI,IAAIud,GAAEvd,EAAC,EAAE,KAAK,EAAE+gJ,GAAG,IAAI,EAAMj0J,GAAE,KAAK,SAAX,IAAoBi0J,GAAG,QAAQ,EAAEA,GAAGljJ,GAAE/Q,GAAE,IAAI,CAAC,EAAEi0J,GAAG,WAAW,EAAE,EAAE4J,GAAG5oE,EAAE,YAAY,QAAQ,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEisF,EAAE,OAAO3kF,GAAE2kF,EAAE,KAAKpxF,GAAEoxF,EAAE,MAAM1zF,GAAE0zF,EAAE,cAAcsrE,GAAG18J,GAAE,EAAE,EAAEmzJ,GAAG,eAAe,EAAEA,GAAG,WAAW/hE,EAAE,oBAAoB,MAAM,EAAE+hE,GAAG,cAAc/hE,EAAE,wBAAwB,MAAM,EAAE+hE,GAAG,cAAc,WAAWj+D,EAAE9D,EAAE,SAAS,WAAW,CAAC,EAAE,IAAI,WAAW8D,EAAE9D,EAAE,SAAS,WAAW,CAAC,EAAE,IAAI8D,EAAE9D,EAAE,SAAS,SAAS,EAAE,IAAI8D,EAAE9D,EAAE,SAAS,SAAS,EAAE,GAAG,EAASA,EAAE,UAAT,MAAkB+hE,GAAG,aAAaj+D,EAAE9D,EAAE,QAAQ,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,SAAS,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,SAAS,EAAE,GAAG,EAASA,EAAE,WAAT,MAAmB+hE,GAAG,cAAcj+D,EAAE9D,EAAE,SAAS,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,SAAS,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,SAAS,SAAS,EAAE,IAAI8D,EAAE9D,EAAE,SAAS,SAAS,EAAE,GAAG,EAASA,EAAE,UAAT,MAAkB+hE,GAAG,aAAaj+D,EAAE9D,EAAE,QAAQ,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,SAAS,EAAE,IAAI8D,EAAE9D,EAAE,QAAQ,SAAS,EAAE,GAAG,EAASA,EAAE,SAAT,MAAiB+hE,GAAG,YAAYj+D,EAAE9D,EAAE,OAAO,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,OAAO,WAAW,EAAE,IAAI8D,EAAE9D,EAAE,OAAO,SAAS,EAAE,IAAI8D,EAAE9D,EAAE,OAAO,SAAS,EAAE,GAAG,EAAY,OAAOA,EAAE,UAAnB,UAAiCA,EAAE,WAAN,GAAgB+hE,GAAG,aAAa/hE,EAAE,QAAQ,EAAE0qE,GAAG,QAAQ,UAAU,CAAC,MAAM97J,GAAE,YAAY67J,GAAG12J,EAAC,EAAE,WAAWA,GAAE,KAAKsH,EAAC,CAAC,EAAE0mJ,GAAG,aAAaz1J,GAAE,MAAM,EAAEy1J,GAAG,IAAI,EAAEA,GAAG,QAAQ,EAAE,IAAI7/I,GAAE7G,GAAE,KAAK;AAAA,CAAI,EAAE,OAAOuoF,IAAIztF,EAAE,WAAW+L,IAAG;AAAA,IAAOopJ,GAAGh/J,GAAE,EAAE,EAAEo/J,GAAG,CAAC,KAAKxpJ,GAAE,QAAQupJ,GAAI,EAAC,SAASn/J,EAAC,CAAC,EAAEy1J,GAAG,QAAQ,EAAEnzJ,EAAC,EAAEg9J,GAAG7oE,EAAE,YAAY,SAAS,UAAU,CAAC,IAAI/C,EAAEjsF,GAAEsH,GAAE,GAAG,IAAI2kF,EAAE,EAAEA,GAAGwqE,GAAGxqE,IAAIyqE,GAAGzqE,CAAC,EAAE,MAAM8oE,GAAI,EAAC2B,GAAGzqE,CAAC,EAAE,cAAc8oE,GAAE,EAAG,IAAI9oE,EAAE,EAAEA,GAAGwqE,GAAGxqE,IAAI3kF,GAAE,KAAKswJ,GAAG,CAAC,OAAO3rE,EAAE,KAAK0oE,GAAG1oE,CAAC,EAAE,MAAMyqE,GAAGzqE,CAAC,EAAE,MAAM,cAAcyqE,GAAGzqE,CAAC,EAAE,cAAc,SAASyqE,GAAGzqE,CAAC,EAAE,SAAS,QAAQyqE,GAAGzqE,CAAC,EAAE,QAAQ,SAASyqE,GAAGzqE,CAAC,EAAE,SAAS,QAAQyqE,GAAGzqE,CAAC,EAAE,QAAQ,OAAOyqE,GAAGzqE,CAAC,EAAE,OAAO,SAASyqE,GAAGzqE,CAAC,EAAE,SAAS,oBAAoB6oE,GAAG,wBAAwBE,EAAE,CAAC,CAAC,EAAEuC,GAAGzC,GAAG,EAAE,EAAE9G,GAAG,gBAAgB,EAAE,IAAInzJ,GAAE,UAAU,IAAImF,GAAE,EAAEA,GAAEy2J,GAAGz2J,KAAInF,IAAGyM,GAAEtH,EAAC,EAAE,QAAQguJ,GAAGnzJ,GAAE,GAAG,EAAEmzJ,GAAG,UAAUyI,EAAE,EAAEzI,GAAG,IAAI,EAAEA,GAAG,QAAQ,EAAE2I,GAAG,QAAQ,cAAc,CAAC,EAAEmB,GAAG,SAAS7rE,EAAE,CAAC0qE,GAAG,QAAQ,UAAU,CAAC,KAAK1qE,EAAE,IAAI+hE,GAAG,UAAUsJ,GAAG,UAAUK,EAAE,CAAC,EAAO1rE,EAAE,kBAAP,KAAyBA,EAAE,aAAaqrE,GAAE,EAAGtJ,GAAG,IAAI,EAAEA,GAAG,aAAa,EAAEA,GAAG,cAAc3hE,GAAEJ,EAAE,cAAc,CAAC,EAAE+hE,GAAG,iBAAiB,EAAY,OAAO/hE,EAAE,UAAnB,UAA6B+hE,GAAG,cAAc/hE,EAAE,QAAQ,EAAE+hE,GAAG,eAAe,EAAEA,GAAG,eAAe,EAAEA,GAAG,IAAI,EAAEA,GAAG,QAAQ,EAAE,EAAE+J,GAAG,UAAU,CAAC,QAAQ9rE,KAAKgqE,GAAGA,GAAG,eAAehqE,CAAC,IAASrvF,IAAL,IAAaA,IAAL,IAAQwR,EAAE,eAAe69E,CAAC,IAAI6rE,GAAG7B,GAAGhqE,CAAC,CAAC,CAAC,EAAE+rE,GAAG,SAAS/rE,EAAE,CAACA,EAAE,aAAaqrE,GAAE,EAAG,IAAIt3J,GAAE,GAAGA,GAAE,KAAK,CAAC,IAAI,OAAO,MAAM,UAAU,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,UAAU,MAAM,OAAO,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,OAAO,MAAM,IAAI,CAAC+vF,EAAE9D,EAAE,CAAC,EAAE8D,EAAE9D,EAAE,CAAC,EAAE8D,EAAE9D,EAAE,EAAEA,EAAE,KAAK,EAAE8D,EAAE9D,EAAE,EAAEA,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,EAAEjsF,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM,IAAIisF,EAAE,OAAO,WAAW,GAAG,CAAC,EAAE,IAAI3kF,GAAE2kF,EAAE,MAAM,CAAC,EAAE,KAAK;AAAA,CAAI,EAAE0rE,GAAG,CAAC,KAAKrwJ,GAAE,oBAAoBtH,GAAE,SAASisF,EAAE,YAAY,CAAC,EAAE+hE,GAAG,QAAQ,CAAC,EAAEiK,GAAG,UAAU,CAAC,QAAQhsE,KAAK4qE,GAAGA,GAAG,eAAe5qE,CAAC,GAAG+rE,GAAGnB,GAAG5qE,CAAC,CAAC,CAAC,EAAEg/D,GAAG,SAASh/D,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEzM,GAAE,CAAE,EAACtC,GAAE,GAAGyH,GAAE,GAAG,IAAIsH,GAAE,EAAEA,GAAE,EAAEA,IAAG/O,GAAEsC,GAAE,KAAKyM,EAAC,EAAE,GAAGzM,GAAE,KAAK,CAAC,EAAKoxF,EAAE,CAAC,EAAE,QAAR,EAAe,CAAC,IAAI99E,GAAE,CAAC,OAAO,EAAE,MAAM89E,EAAE,CAAC,EAAE,KAAK,EAAEA,EAAE,QAAQ99E,EAAC,CAAC,CAAC,GAAM89E,EAAEA,EAAE,OAAO,CAAC,EAAE,QAAjB,EAAwB,CAAC,IAAIt1C,GAAE,CAAC,OAAO,EAAE,MAAMs1C,EAAEA,EAAE,OAAO,CAAC,EAAE,KAAK,EAAEA,EAAE,KAAKt1C,EAAC,CAAC,CAAC,QAAQ7rC,GAAE,GAAG/Q,GAAE,EAAEywB,GAAE,EAAEA,GAAE3vB,GAAE,OAAO2vB,KAAI,CAAC,IAAIljB,GAAEzM,GAAE2vB,EAAC,EAAEljB,GAAE2kF,EAAElyF,GAAE,CAAC,EAAE,QAAQA,KAAI,IAAI2mB,GAAEurE,EAAElyF,EAAC,EAAE,OAAOkD,IAAGqK,GAAEoZ,KAAIurE,EAAElyF,GAAE,CAAC,EAAE,OAAO2mB,IAAGquE,GAAE9C,EAAElyF,EAAC,EAAE,MAAMsgC,GAAE4xD,EAAElyF,GAAE,CAAC,EAAE,MAAM+Q,IAAG+qB,EAAG,KAAK,OAAO,EAAE54B,IAAG8xF,GAAE,CAAC,EAAE9xF,GAAEo9B,GAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAExE,EAAG,KAAK,OAAO,EAAE54B,IAAG8xF,GAAE,CAAC,EAAE9xF,GAAEo9B,GAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAExE,EAAG,KAAK,OAAO,EAAE54B,IAAG8xF,GAAE,CAAC,EAAE9xF,GAAEo9B,GAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,OAAOvvB,GAAE,MAAM,EAAEotJ,GAAG,SAASjsE,EAAEjsF,GAAE,CAACA,KAAIA,GAAE,IAAI,IAAIsH,GAAEgwJ,GAAE,EAAGz8J,GAAEowJ,GAAGh/D,EAAE,OAAOjsF,EAAC,EAAEzH,GAAE,GAAGA,GAAE,KAAK,CAAC,IAAI,eAAe,MAAM,GAAG,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM,WAAW,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,OAAO,MAAM,IAAIyH,GAAE,GAAG,CAAC,EAAEzH,GAAE,KAAK,CAAC,IAAI,gBAAgB,MAAM,GAAG,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,QAAQ,MAAM,2BAA2B,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM,2BAA2B,CAAC,EAAEo/J,GAAG,CAAC,KAAK98J,GAAE,oBAAoBtC,GAAE,sBAAsB,CAAC,iBAAiB,EAAE,SAAS+O,EAAC,CAAC,EAAE0mJ,GAAG,QAAQ,EAAE/hE,EAAE,aAAaqrE,GAAI,EAACtJ,GAAG,mBAAmB/hE,EAAE,IAAI,EAAE+hE,GAAG,wBAAwB,EAAE,IAAI7/I,GAAE,YAAY4hF,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI8D,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAQA,EAAE,OAAN,EAAW99E,IAAG4hF,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI8D,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE99E,IAAG4hF,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI8D,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI8D,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI8D,EAAE,WAAW9D,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE+hE,GAAG7/I,IAAG,GAAG,EAAE89E,EAAE,QAAQ+hE,GAAG,YAAY/hE,EAAE,OAAO,SAAU,EAAC,GAAG,EAAE+hE,GAAG,aAAa1mJ,GAAE,MAAM,EAAE0mJ,GAAG,qBAAqB,EAAEA,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAEmK,GAAG,SAASlsE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEytJ,GAAE,EAAGl6J,GAAEy8J,GAAE,EAAGt3J,GAAE,KAAK,CAAC,aAAasH,GAAE,UAAUzM,EAAC,CAAC,EAAEoxF,EAAE,aAAapxF,GAAE,IAAItC,GAAE,CAAE,EAACA,GAAE,KAAK,CAAC,IAAI,OAAO,MAAM,UAAU,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,cAAc,MAAM,GAAG,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,YAAY,MAAM,GAAG,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,aAAa,MAAM,GAAG,CAAC,EAAEA,GAAE,KAAK,CAAC,IAAI,OAAO,MAAM,IAAI0zF,EAAE,YAAY,IAAI8D,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,EAAEx3F,GAAE,KAAK,CAAC,IAAI,QAAQ,MAAMw3F,EAAE9D,EAAE,KAAK,CAAC,CAAC,EAAE1zF,GAAE,KAAK,CAAC,IAAI,QAAQ,MAAMw3F,EAAE9D,EAAE,KAAK,CAAC,CAAC,EAAE1zF,GAAE,KAAK,CAAC,IAAI,YAAY,MAAM+O,GAAE,MAAM,CAAC,EAAE2kF,EAAE,QAAQ1zF,GAAE,KAAK,CAAC,IAAI,SAAS,MAAM,IAAI0zF,EAAE,OAAO,WAAW,GAAG,CAAC,EAAE0rE,GAAG,CAAC,KAAK1rE,EAAE,OAAO,oBAAoB1zF,GAAE,SAAS0zF,EAAE,YAAY,CAAC,EAAE+hE,GAAG,QAAQ,CAAC,EAAEoK,GAAG,SAASnsE,EAAE,CAAC,IAAIjsF,GAAE,IAAIA,MAAKo2J,GAAGA,GAAG,eAAep2J,EAAC,IAAIo2J,GAAGp2J,EAAC,YAAY8vF,GAAEooE,GAAG9B,GAAGp2J,EAAC,CAAC,EAAEo2J,GAAGp2J,EAAC,YAAYsvF,IAAG6oE,GAAG/B,GAAGp2J,EAAC,EAAEisF,CAAC,EAAE,EAAEosE,GAAG,SAASpsE,EAAE,CAAC,QAAQjsF,MAAKisF,EAAE,aAAaqrE,GAAE,EAAGtJ,GAAG,IAAI,EAAE/hE,EAAE,OAAOjsF,GAAC,CAAE,IAAI,UAAUguJ,GAAG,OAAOnO,EAAE5zD,EAAEjsF,EAAC,CAAC,CAAC,EAAE,MAAM,IAAI,iBAAiBguJ,GAAG,OAAOnO,EAAE5zD,EAAEjsF,EAAC,CAAC,CAAC,CAAC,CAACguJ,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAEsK,GAAG,UAAU,CAAC,IAAIrsE,EAAE,IAAIA,KAAKqqE,GAAGA,GAAG,eAAerqE,CAAC,GAAGosE,GAAG/B,GAAGrqE,CAAC,CAAC,CAAC,EAAEssE,GAAG,UAAU,CAAC,QAAQtsE,KAAK+hE,GAAG,aAAa,EAAE6I,GAAGA,GAAG,eAAe5qE,CAAC,GAAG4qE,GAAG5qE,CAAC,EAAE,cAAc,GAAG+hE,GAAG,IAAI/hE,EAAE,IAAI4qE,GAAG5qE,CAAC,EAAE,aAAa,MAAM,EAAE0qE,GAAG,QAAQ,gBAAgB,EAAE3I,GAAG,IAAI,CAAC,EAAEwK,GAAG,UAAU,CAACjE,GAAG,IAAI+C,GAAI,EAACtJ,GAAG,IAAI,EAAEA,GAAG,mBAAmB,EAAEA,GAAG,MAAMuG,GAAG,CAAC,EAAEvG,GAAG,MAAMuG,GAAG,CAAC,EAAEvG,GAAG,OAAOuG,GAAG,YAAYA,GAAG,CAAC,EAAE,GAAG,EAAEvG,GAAG,OAAOuG,GAAG,YAAYA,GAAG,CAAC,EAAE,GAAG,EAAEvG,GAAG,MAAMuG,GAAG,CAAC,EAAEvG,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAEyK,GAAG,UAAU,CAAC,QAAQxsE,KAAK+hE,GAAG,UAAU,EAAEiI,GAAGA,GAAG,eAAehqE,CAAC,IAASrvF,IAAL,IAAaA,IAAL,IAAQwR,EAAE,eAAe69E,CAAC,IAAI+hE,GAAG,IAAI/hE,EAAE,IAAIgqE,GAAGhqE,CAAC,EAAE,aAAa,MAAM,EAAE+hE,GAAG,IAAI,CAAC,EAAE0K,GAAG,UAAU,CAAC,GAAG,OAAO,KAAKtC,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQnqE,KAAK+hE,GAAG,aAAa,EAAEoI,GAAGA,GAAG,eAAenqE,CAAC,GAAGmqE,GAAGnqE,CAAC,YAAY6D,IAAGsmE,GAAGnqE,CAAC,EAAE,cAAc,GAAG+hE,GAAG,IAAI/hE,EAAE,IAAImqE,GAAGnqE,CAAC,EAAE,aAAa,MAAM,EAAE0qE,GAAG,QAAQ,uBAAuB,EAAE3I,GAAG,IAAI,CAAC,CAAC,EAAE2K,GAAG,SAAS1sE,EAAE,CAAC,GAAG,OAAO,KAAKmqE,EAAE,EAAE,OAAO,EAAE,CAAC,QAAQp2J,MAAKguJ,GAAG,aAAa,EAAEoI,GAAGA,GAAG,eAAep2J,EAAC,GAAGo2J,GAAGp2J,EAAC,YAAYgvF,EAAE,eAAeonE,GAAGp2J,EAAC,EAAE,cAAc,GAAGo2J,GAAGp2J,EAAC,EAAE,aAAaisF,GAAG+hE,GAAG,IAAIhuJ,GAAE,IAAIo2J,GAAGp2J,EAAC,EAAE,aAAa,MAAM,EAAE22J,GAAG,QAAQ,sBAAsB,EAAE3I,GAAG,IAAI,CAAC,CAAC,EAAE4K,GAAG,UAAU,CAAC,GAAG,OAAO,KAAKtC,EAAE,EAAE,OAAO,EAAE,CAAC,IAAIrqE,EAAE,IAAIA,KAAK+hE,GAAG,eAAe,EAAEsI,GAAGA,GAAG,eAAerqE,CAAC,GAAGqqE,GAAGrqE,CAAC,EAAE,cAAc,GAAG+hE,GAAG,IAAI/hE,EAAE,IAAIqqE,GAAGrqE,CAAC,EAAE,aAAa,MAAM,EAAE0qE,GAAG,QAAQ,eAAe,EAAE3I,GAAG,IAAI,CAAC,CAAC,EAAE6K,GAAG,SAAS5sE,EAAE,CAACsrE,GAAGtrE,EAAE,aAAa,EAAE,EAAE+hE,GAAG,IAAI,EAAEA,GAAG,+CAA+C,EAAEyK,GAAI,EAACC,GAAE,EAAGC,GAAG1sE,EAAE,SAAS,EAAE2sE,GAAI,EAACL,GAAE,EAAGvK,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAE8K,GAAG,UAAU,CAAC,IAAI7sE,EAAE,CAAE,EAAC8rE,GAAE,EAAGO,GAAE,EAAGL,KAAKG,GAAGnsE,CAAC,EAAE0qE,GAAG,QAAQ,cAAc,EAAE1qE,EAAE,QAAQ4sE,EAAE,EAAEA,GAAG,CAAC,aAAa7D,GAAG,UAAU,OAAO,gBAAgB,CAAC,EAAE2B,GAAG,QAAQ,kBAAkB,CAAC,EAAEoC,GAAG,UAAU,CAACpC,GAAG,QAAQ,sBAAsB,EAAE,QAAQ1qE,EAAE,EAAEA,EAAEyoE,GAAG,OAAOzoE,IAAI,CAAC,IAAIjsF,GAAE00J,GAAGzoE,CAAC,EAAEsrE,GAAGv3J,GAAE,MAAM,EAAE,EAAEguJ,GAAGhuJ,GAAE,OAAO,EAAEguJ,GAAG,QAAQ,CAAC,CAAC2I,GAAG,QAAQ,0BAA0B,CAAC,EAAEl0G,GAAG,SAASwpC,EAAE,CAACiqE,GAAGjqE,EAAE,QAAQ,EAAEiqE,GAAGjqE,EAAE,QAAQ,GAAG,CAAE,EAACiqE,GAAGjqE,EAAE,QAAQ,EAAEA,EAAE,SAAS,EAAEA,EAAE,EAAE,EAAE+sE,GAAG,SAAS/sE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,IAAI4V,GAAE,CAAC,GAAG,KAAK,OAAO,KAAK8nJ,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,eAAehqE,EAAE,SAASjsF,GAAE,UAAUsH,GAAE,SAASzM,GAAE,eAAetC,IAAG,GAAG,SAAS,EAAE,EAAE,OAAOo+J,GAAG,QAAQ,UAAU,CAAC,KAAKxoJ,GAAE,SAAS,IAAI,CAAC,EAAE8nJ,GAAG9nJ,GAAE,EAAE,EAAEA,GAAEs0C,GAAGt0C,EAAC,EAAEA,GAAE,EAAE,EAAE8qJ,GAAG,SAAShtE,EAAE,CAAC,QAAQjsF,GAAE,EAAEsH,GAAE6tJ,GAAG,OAAOn1J,GAAEsH,GAAEtH,KAAI,CAAC,IAAInF,GAAEm+J,GAAG,KAAK,KAAK/sE,EAAEjsF,EAAC,EAAE,CAAC,EAAEisF,EAAEjsF,EAAC,EAAE,CAAC,EAAEisF,EAAEjsF,EAAC,EAAE,CAAC,EAAEm1J,GAAGn1J,EAAC,EAAE,CAAC,EAAE,EAAE,EAAOpD,IAAL,KAASwR,EAAEvT,EAAC,EAAE,IAAI,IAAItC,GAAE0zF,EAAEjsF,EAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAEyiD,GAAG,CAAC,GAAG5nD,GAAE,SAAStC,GAAE,CAAC,EAAE,UAAUA,GAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAACo+J,GAAG,QAAQ,WAAW,CAAC,MAAMV,GAAG,WAAWC,EAAE,CAAC,CAAC,EAAEgD,GAAG,SAASjtE,EAAE,CAAC,OAAOA,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,OAAOA,EAAE,MAAM,KAAK,SAAS,CAAC,OAAOA,GAAE,CAAC,IAAIjsF,GAAEisF,GAAE,OAAO,GAAG,CAACjsF,GAAE,QAAQ,MAAM,IAAIA,GAAEA,GAAE,MAAM,MAAM,EAAE,CAAC,GAAG,IAAIsH,GAAE,qBAAqBtH,GAAE,MAAM;AAAA,CAAI,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE,KAAKisF,GAAE,QAAQ,GAAG,CAACpxF,GAAE,QAAQ,MAAM,IAAI,MAAMyM,EAAC,EAAEzM,GAAE,QAAQ,MAAMyM,GAAE2kF,EAAC,EAAEpxF,GAAE,OAAO,MAAMyM,EAAC,CAAC,CAAC,EAAE2kF,EAAE,IAAI,IAAIA,EAAEA,EAAE,GAAG,EAAEktE,GAAG,SAASltE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,GAAE7rC,GAAE/Q,GAAEywB,GAAE9J,GAAE,GAAGnoB,IAAGyH,GAAEA,IAAG,IAAI,gBAAgB,UAAU22C,GAAE32C,GAAE,gBAAgBA,GAAE,YAAY22C,KAAIs/G,GAAGJ,EAAE,EAAE,UAAUI,GAAGJ,EAAE,EAAE,SAASt9J,EAAC,GAAG09J,GAAGJ,EAAE,EAAE,SAASt9J,EAAC,EAAE,WAAW4V,GAAE8nJ,GAAGJ,EAAE,EAAE,SAASt9J,EAAC,EAAE,SAAS,CAACo+C,IAAGs/G,GAAGJ,EAAE,EAAE,WAAWl/G,GAAEs/G,GAAGJ,EAAE,EAAE,UAAU,CAACl/G,IAAGxoC,GAAE,YAAYwoC,GAAExoC,GAAE,UAAU,CAAC,GAAa,OAAOwoC,IAAjB,WAAqBA,GAAExoC,GAAEwoC,EAAC,GAAGA,IAAG,CAAC,IAAI58C,GAAE,GAAG+Q,GAAE,CAAE,EAACxD,GAAE,EAAEzM,GAAEoxF,EAAE,OAAO3kF,GAAEzM,GAAEyM,MAAKkjB,GAAEmsB,GAAEs1C,EAAE,WAAW3kF,EAAC,CAAC,GAAGwD,GAAE,KAAK,OAAO,aAAa0f,EAAC,CAAC,EAAE1f,GAAE,KAAKmhF,EAAE3kF,EAAC,CAAC,EAAEwD,GAAExD,EAAC,EAAE,WAAW,CAAC,GAAG,IAAIvN,GAAE,IAAIkyF,EAAEnhF,GAAE,KAAK,EAAE,CAAC,CAAC,IAAIxD,GAAE2kF,EAAE,OAAgBlyF,KAAT,QAAgBuN,KAAJ,GAAO2kF,EAAE,WAAW3kF,GAAE,CAAC,GAAG,IAAIvN,GAAE,IAAIuN,KAAI,GAAG,CAACvN,GAAE,OAAOkyF,EAAE,IAAInhF,GAAE9K,GAAE,MAAM,GAAG,CAAC,IAAI,GAAG,EAAEsH,GAAE,EAAEzM,GAAEoxF,EAAE,OAAO3kF,GAAEzM,GAAEyM,KAAI,CAAC,IAAIoZ,IAAG8J,GAAEyhE,EAAE,WAAW3kF,EAAC,IAAI,IAAI,EAAE,MAAM,IAAI,MAAM,yBAAyBA,GAAE,eAAe2kF,EAAE,mDAAmD,EAAEnhF,GAAE,KAAK4V,EAAC,EAAE5V,GAAE,KAAK0f,IAAG9J,IAAG,EAAE,CAAC,CAAC,OAAO,OAAO,aAAa,MAAM,OAAO5V,EAAC,CAAC,EAAEsuJ,GAAGpqE,EAAE,YAAY,UAAUA,EAAE,UAAU,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOm5J,GAAGltE,EAAEjsF,EAAC,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,MAAM,KAAK,CAAC,EAAEq5J,GAAGrqE,EAAE,YAAY,UAAU,SAAS/C,EAAE,CAAC0oE,GAAG,EAAE8B,EAAE,EAAE,GAAGC,GAAGD,EAAE,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,OAAOp8H,CAAC,EAAE,OAAO,KAAK,SAAS,KAAK,QAAQ,KAAK,QAAQ,KAAK,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,UAAU,OAAO4xD,EAAE,CAAC,CAAC,EAAE,UAAU,OAAOA,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEqtE,GAAG7C,EAAE,EAAExB,GAAGN,GAAGtlE,CAAC,CAAC,CAAC,EAAEkqE,GAAG,SAASttE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEzM,GAAE87C,GAAE,OAAOp+C,EAAEyH,IAAGzH,EAAY,OAAO0zF,GAAjB,WAAqB3kF,GAAE2nF,EAAEhD,EAAE,YAAW,CAAE,EAAE,MAAM,QAAQ3kF,EAAC,IAAIzM,GAAEyM,GAAE,CAAC,EAAEqvC,GAAErvC,GAAE,CAAC,IAAI,MAAM,QAAQ2kF,CAAC,IAAIpxF,GAAEoxF,EAAE,CAAC,EAAEmoE,GAAGz9G,GAAEs1C,EAAE,CAAC,EAAEmoE,IAAI,MAAMv5J,EAAC,IAAIA,GAAEiQ,EAAE,CAAC,EAAE6rC,GAAE7rC,EAAE,CAAC,IAAIjQ,GAAE,OAAO87C,GAAE,SAASxoC,GAAE,KAAK,wGAAwG,EAAEtT,GAAE,KAAK,IAAI,MAAMA,EAAC,EAAE87C,GAAE,KAAK,IAAI,MAAMA,EAAC,GAAG7rC,EAAE,CAACjQ,GAAE87C,EAAC,EAAEp+C,EAAE,OAAO,EAAE,CAAC,EAAG,KAAI,IAAIo+C,GAAE97C,KAAIiQ,EAAE,CAAC6rC,GAAE97C,EAAC,GAAG,MAAM,IAAI,IAAIA,GAAE87C,KAAI7rC,EAAE,CAAC6rC,GAAE97C,EAAC,EAAE,CAACw+J,GAAGvuJ,CAAC,EAAE0uJ,GAAGC,EAAE,EAAEzL,GAAG0L,EAAE,EAAMC,KAAJ,GAAQ3L,GAAG2L,GAAG,IAAI,EAAMC,KAAJ,GAAQ5L,GAAG4L,GAAG,IAAI,EAAEjD,GAAG,QAAQ,UAAU,CAAC,WAAWF,EAAE,CAAC,CAAC,EAAEoD,GAAG,SAAS5tE,EAAE,CAACA,EAAE,GAAGA,GAAGwqE,KAAK9B,GAAG,OAAO1oE,EAAE,CAAC,EAAEyqE,GAAG,OAAOzqE,EAAE,CAAC,EAAEwqE,KAAKpnE,EAAEonE,KAAKpnE,EAAEonE,IAAI,KAAK,QAAQpnE,CAAC,EAAE,EAAEiqE,GAAG,SAASrtE,EAAE,CAACA,EAAE,GAAGA,GAAGwqE,KAAKpnE,EAAEpD,EAAE,EAAE6tE,GAAG9qE,EAAE,YAAY,iBAAiBA,EAAE,iBAAiB,UAAU,CAAC,OAAO2lE,GAAG,OAAO,CAAC,EAAEoF,GAAG,SAAS9tE,EAAEjsF,GAAEsH,GAAE,CAAC,IAAIzM,GAAEtC,GAAE,OAAO,OAAO+O,GAAEA,IAAG,GAAG2kF,EAAWA,IAAT,OAAWA,EAAEgqE,GAAGJ,EAAE,EAAE,SAAS71J,GAAWA,KAAT,OAAWA,GAAEi2J,GAAGJ,EAAE,EAAE,UAAUh7J,GAAEoxF,EAAE,YAAW,EAAYiqE,GAAGr7J,EAAC,IAAb,QAAyBq7J,GAAGr7J,EAAC,EAAEmF,EAAC,IAAhB,OAAkBzH,GAAE29J,GAAGr7J,EAAC,EAAEmF,EAAC,EAAWk2J,GAAGjqE,CAAC,IAAb,QAAyBiqE,GAAGjqE,CAAC,EAAEjsF,EAAC,IAAhB,OAAkBzH,GAAE29J,GAAGjqE,CAAC,EAAEjsF,EAAC,EAAOsH,GAAE,iBAAP,IAAuB6G,GAAE,KAAK,0CAA0C89E,EAAE,OAAOjsF,GAAE,gDAAgD,EAAEzH,IAAG+O,GAAE,aAAmB/O,GAAE29J,GAAG,MAAMl2J,EAAC,IAAnB,OAAwBzH,GAAE29J,GAAG,MAAM,QAAQ39J,EAAC,EAAEyhK,GAAGhrE,EAAE,YAAY,QAAQ,UAAU,CAAC,IAAI/C,EAAEqrE,KAAKt3J,GAAE,SAASisF,GAAE,CAAC,OAAOA,EAAC,EAAE,QAAQ3kF,MAAY6Z,IAAP,OAAWnhB,GAAEu0J,GAAG,UAAUtoE,EAAE,CAAC,GAAG+hE,GAAG,IAAI,EAAEA,GAAG,cAAcoL,GAAGp5J,GAAE,SAASk0J,GAAE,OAAO,CAAC,EAAE,GAAG,EAAE0B,GAAGA,GAAG,eAAetuJ,EAAC,GAAGsuJ,GAAGtuJ,EAAC,GAAG0mJ,GAAG,IAAI1mJ,GAAE,OAAO,EAAE,CAAC,EAAE,YAAa,EAACA,GAAE,OAAO,CAAC,EAAE,KAAK8xJ,GAAGp5J,GAAE41J,GAAGtuJ,EAAC,CAAC,CAAC,EAAE,GAAG,EAAE0mJ,GAAG,kBAAkBoL,GAAGp5J,GAAEowF,CAAC,CAAC,EAAE,GAAG,EAAE49D,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAEiM,GAAGjrE,EAAE,YAAY,WAAW,SAAS/C,EAAE,CAAC,IAAIjsF,IAAGisF,EAAEA,GAAG,IAAI,qBAAqB6oE,GAAG,OAAOwC,GAAE,EAAGtJ,GAAG,IAAI,EAAEA,GAAG,gBAAgB,EAAEA,GAAG,UAAUhuJ,GAAE,MAAM,EAAEq1J,KAAKA,GAAG,aAAaA,GAAE,CAAE,IAAI,YAAYrH,GAAG,gCAAgC,EAAE,MAAM,IAAI,aAAaA,GAAG,gCAAgC,EAAE,MAAM,IAAI,WAAWA,GAAG,0BAA0B,EAAE,MAAM,IAAI,WAAWA,GAAG,sCAAsC,EAAE,MAAM,QAAQ,IAAI1mJ,GAAE,GAAG+tJ,GAAS/tJ,GAAE,OAAOA,GAAE,OAAO,CAAC,IAAzB,MAA6B+tJ,GAAG,SAASA,EAAE,EAAE,KAAe,OAAOA,IAAjB,UAAqBrH,GAAG,qCAAqCnO,EAAEwV,EAAE,EAAE,GAAG,CAAC,CAAC,OAAOI,KAAKA,GAAG,cAAcA,GAAI,KAAI,aAAazH,GAAG,wBAAwB,EAAE,MAAM,IAAI,SAASA,GAAG,yBAAyB,EAAE,MAAM,IAAI,MAAM,IAAI,UAAUA,GAAG,4BAA4B,EAAE,MAAM,IAAI,WAAWA,GAAG,6BAA6B,CAAC,CAACuH,IAAIvH,GAAG,cAAcuH,EAAE,EAAEoB,GAAG,QAAQ,YAAY,EAAE3I,GAAG,IAAI,EAAEA,GAAG,QAAQ,CAAC,EAAEkM,GAAGlrE,EAAE,YAAY,WAAW,UAAU,CAACg/D,GAAG,SAAS,EAAEA,GAAG,IAAI,EAAEA,GAAG,UAAUa,EAAG,EAAE,EAAEb,GAAG,SAASa,EAAG,MAAM,EAAEb,GAAG,UAAUa,EAAG,GAAG,MAAM,EAAS1tI,IAAP,MAAU6sI,GAAG,YAAYuG,GAAG,IAAI,MAAM,EAAEvG,GAAG,UAAU79D,EAAE,MAAMA,EAAE,KAAK,EAAE69D,GAAG,IAAI,CAAC,EAAEmM,GAAGnrE,EAAE,YAAY,UAAU,UAAU,CAACg/D,GAAG,QAAQ/vF,CAAC,EAAE+vF,GAAG,OAAO,CAAC,EAAEoM,GAAGprE,EAAE,YAAY,QAAQ,UAAU,CAAC,IAAI/C,EAAE,aAAa+hE,GAAG,MAAM,EAAEA,GAAG,MAAMa,EAAG,EAAE,EAAEb,GAAG,qBAAqB,EAAE,QAAQhuJ,GAAE,EAAEA,IAAG6uJ,EAAG7uJ,KAAiB,OAAOy0J,EAAGz0J,EAAC,GAAvB,WAAyBguJ,IAAI/hE,EAAEwoE,EAAGz0J,EAAC,EAAG,GAAE,MAAM,GAAG,EAAE,WAAW,EAAWy0J,EAAGz0J,EAAC,IAAb,OAAeguJ,IAAI/hE,EAAEwoE,EAAGz0J,EAAC,GAAG,MAAM,GAAG,EAAE,WAAW,EAAEguJ,GAAG,qBAAqB,CAAE,EAAEqM,GAAGrrE,EAAE,YAAY,cAAc,UAAU,CAAC6lE,GAAE,EAAGI,GAAG9I,EAAE,EAAEwK,GAAG,QAAQ,eAAe,EAAEwD,GAAI,EAACtC,GAAE,EAAGkB,GAAE,EAAGD,KAAY33I,IAAP,MAAUq3I,GAAI,EAACwB,GAAI,EAACC,GAAE,EAAG,IAAIhuE,EAAEslE,GAAG,OAAO6I,GAAE,EAAGF,GAAI,EAAClM,GAAG,WAAW,EAAEA,GAAG,GAAG/hE,CAAC,EAAE+hE,GAAG,OAAO,EAAEiH,GAAGN,GAAGtlE,CAAC,CAAC,EAAE88D,GAAG,KAAK;AAAA,CAAI,CAAC,EAAEmO,GAAGtrE,EAAE,YAAY,QAAQ,SAAS/C,EAAE,CAAC,OAAO,IAAI,KAAK,CAACgiE,GAAGhiE,CAAC,CAAC,EAAE,CAAC,KAAK,iBAAiB,CAAC,CAAC,EAAEsuE,GAAGvrE,EAAE,OAAOA,EAAE,YAAY,OAAOkqE,GAAI,SAASjtE,EAAEjsF,GAAE,CAAC,OAAiB,OAAOA,GAAEA,IAAG,KAAtB,SAA0BA,GAAE,CAAC,SAASA,EAAC,EAAEA,GAAE,SAASA,GAAE,UAAU,gBAAgBisF,EAAC,CAAE,KAAK,OAAO,OAAOouE,GAAI,EAAC,IAAI,OAAOrrE,EAAE,KAAKhvF,GAAE,QAAQ,EAAE,MAAM,IAAI,cAAc,OAAOiuJ,GAAGoM,GAAI,GAAE,IAAI,OAAO,OAAOC,GAAGD,GAAI,GAAE,IAAI,UAAU,IAAI,UAAU,GAAYx/J,GAAE,MAAX,QAA4B,OAAOA,GAAE,IAAI,iBAAzB,WAAyC,OAAOA,GAAE,KAAKA,GAAE,IAAI,gBAAgBy/J,GAAGD,GAAE,CAAE,CAAC,GAAG,OAAOlsJ,GAAE,KAAK,wGAAwG,EAAE,MAAM,IAAI,gBAAgB,IAAI,gBAAgB,IAAI7G,GAAE,GAAG/O,GAAE8hK,GAAI,EAAC,GAAG,CAAC/yJ,GAAEoZ,GAAEnoB,EAAC,CAAC,MAAS,CAAC+O,GAAEoZ,GAAE,SAAS,mBAAmBnoB,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,iCAAiCyH,GAAE,SAAS,WAAWsH,GAAE,IAAI,qBAAqB,GAAuB,OAAO,UAAU,SAAS,KAAKzM,EAAC,IAApD,kBAAsD,CAAC,IAAI87C,GAAE,0EAA0E7rC,GAAE,uIAAuI9K,GAAE,eAAe22C,GAAE32C,GAAE,aAAa8K,GAAE,IAAI,IAAI/Q,GAAE,kIAAkI48C,GAAE,IAAI7rC,GAAE,wCAAwC,KAAK,OAAO,eAAe,EAAE,MAAM,KAAK,UAAU9K,EAAC,EAAE,6BAA6BwqB,GAAE3vB,GAAE,KAAI,EAAG,OAAc2vB,KAAP,MAAUA,GAAE,SAAS,MAAMzwB,EAAC,EAAEywB,EAAC,CAAC,MAAM,IAAI,MAAM,oEAAoE,EAAE,IAAI,iBAAiB,GAAuB,OAAO,UAAU,SAAS,KAAK3vB,EAAC,IAApD,kBAAsD,CAAC,IAAIoC,GAAE,kJAAkJ+C,GAAE,UAAU,mCAAmC,uBAAuBA,GAAE,SAAS,kDAAkD+uF,GAAEl0F,GAAE,KAAI,EAAG,GAAUk0F,KAAP,KAAS,CAACA,GAAE,SAAS,MAAM9xF,EAAC,EAAE,IAAIo9B,GAAE,KAAK00D,GAAE,SAAS,gBAAgB,cAAc,YAAY,EAAE,OAAO,UAAU,CAACA,GAAE,SAAS,MAAM/uF,GAAE,SAAS+uF,GAAE,SAAS,gBAAgB,cAAc,YAAY,EAAE,cAAc,qBAAqB,KAAK10D,GAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO00D,EAAC,CAAC,MAAM,IAAI,MAAM,gEAAgE,EAAE,IAAI,mBAAmB,GAAuB,OAAO,UAAU,SAAS,KAAKl0F,EAAC,IAApD,kBAAsD,MAAM,IAAI,MAAM,kEAAkE,EAAE,IAAIoS,GAAE,kIAAkI,KAAK,OAAO,gBAAgBjN,EAAC,EAAE,4BAA4Bo0B,GAAEv5B,GAAE,KAAM,EAAC,GAAUu5B,KAAP,OAAWA,GAAE,SAAS,MAAMnnB,EAAC,EAAEmnB,GAAE,SAAS,MAAMp0B,GAAE,UAAUo0B,IAAgB,OAAO,OAApB,IAA2B,OAAOA,GAAE,MAAM,IAAI,UAAU,IAAI,UAAU,OAAOv5B,GAAE,SAAS,SAAS,KAAK,KAAK,OAAO,gBAAgBmF,EAAC,EAAE,QAAQ,OAAO,IAAI,CAAC,CAAG,EAACw6J,GAAG,SAASvuE,EAAE,CAAC,OAAW,MAAM,QAAQ2qE,EAAE,IAArB,IAAwBA,GAAG,QAAQ3qE,CAAC,EAAE,EAAE,EAAE,OAAOt1C,GAAG,IAAI,KAAKy9G,GAAG,EAAE,MAAM,IAAI,KAAKA,GAAG,GAAG,KAAK,MAAM,IAAI,KAAKA,GAAG,GAAG,KAAK,MAAM,IAAI,KAAKA,GAAG,GAAG,MAAM,IAAI,KAAKA,GAAMoG,GAAG,YAAY,GAAlB,EAAoB,IAAI,GAAG,GAAG,MAAM,IAAI,KAAK,IAAI,KAAKpG,GAAG,GAAG,MAAM,IAAI,KAAKA,GAAG,EAAE,MAAM,QAAQ,GAAa,OAAOz9G,GAAjB,SAAmB,MAAM,IAAI,MAAM,iBAAiBA,CAAC,EAAEy9G,GAAGz9G,CAAC,CAAC,IAAI49G,GAAG,KAAKhkE,EAAG,EAAC+jE,GAAC,EAAG,IAAImG,GAAG,SAASxuE,EAAE,CAAC,OAAc9qE,IAAP,KAASozI,GAAG,UAAUtoE,EAAE,CAAC,EAAE,SAASA,GAAE,CAAC,OAAOA,EAAC,CAAC,EAAEyuE,GAAG1rE,EAAE,YAAY,YAAYA,EAAE,YAAY,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM,IAAI,MAAM,8CAA8C,EAAE,MAAM,CAAC,MAAMyqE,GAAGzqE,CAAC,EAAE,MAAM,WAAWA,EAAE,YAAYyqE,GAAGzqE,CAAC,CAAC,CAAC,EAAE0uE,GAAG3rE,EAAE,YAAY,mBAAmB,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,GAAGA,EAAE,GAAG,EAAE,MAAM,IAAI,MAAM,qDAAqD,EAAE,QAAQjsF,MAAK02J,GAAG,GAAGA,GAAG12J,EAAC,EAAE,QAAQisF,EAAE,MAAM,OAAOyuE,GAAG16J,EAAC,CAAC,EAAE46J,GAAG5rE,EAAE,YAAY,mBAAmBA,EAAE,mBAAmB,UAAU,CAAC,MAAM,CAAC,MAAM0nE,GAAGrnE,CAAC,EAAE,MAAM,WAAWA,EAAE,YAAYqnE,GAAGrnE,CAAC,CAAC,CAAC,EAAEL,EAAE,QAAQ,UAAU,CAAC,OAAOuqE,GAAG,MAAM,KAAK,SAAS,EAAE,IAAI,EAAEvqE,EAAE,QAAQ,UAAU,CAAC,OAAOsqE,GAAG,MAAM,KAAK,SAAS,EAAErE,GAAG,KAAK,KAAKN,GAAGtlE,CAAC,CAAC,EAAE,IAAI,EAAEL,EAAE,WAAW,SAAS/C,EAAE,CAAC,OAAO,KAAK,QAAS,EAAC,KAAK,SAASoD,EAAEpD,CAAC,EAAE,IAAI,EAAE+C,EAAE,SAAS,SAAS/C,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEzM,GAAE,GAAGoxF,EAAEjsF,GAAE,CAACsH,GAAEqtJ,GAAG1oE,CAAC,EAAEpxF,GAAE67J,GAAGzqE,CAAC,EAAE,QAAQ1zF,GAAE0zF,EAAE1zF,GAAEyH,GAAEzH,KAAIo8J,GAAGp8J,EAAC,EAAEo8J,GAAGp8J,GAAE,CAAC,EAAEm+J,GAAGn+J,EAAC,EAAEm+J,GAAGn+J,GAAE,CAAC,EAAEo8J,GAAG30J,EAAC,EAAEsH,GAAEovJ,GAAG12J,EAAC,EAAEnF,GAAE,KAAK,QAAQmF,EAAC,CAAC,SAASisF,EAAEjsF,GAAE,CAACsH,GAAEqtJ,GAAG1oE,CAAC,EAAEpxF,GAAE67J,GAAGzqE,CAAC,EAAE,QAAQ99E,GAAE89E,EAAE99E,GAAEnO,GAAEmO,KAAIwmJ,GAAGxmJ,EAAC,EAAEwmJ,GAAGxmJ,GAAE,CAAC,EAAEuoJ,GAAGvoJ,EAAC,EAAEuoJ,GAAGvoJ,GAAE,CAAC,EAAEwmJ,GAAG30J,EAAC,EAAEsH,GAAEovJ,GAAG12J,EAAC,EAAEnF,GAAE,KAAK,QAAQmF,EAAC,CAAC,CAAC,OAAO,IAAI,EAAEgvF,EAAE,WAAW,UAAU,CAAC,OAAO6qE,GAAG,MAAM,KAAK,SAAS,EAAE,IAAI,EAAE7qE,EAAE,YAAY,KAAKA,EAAE,KAAK,SAAShvF,EAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAE,CAAC,IAAIwoC,GAAE7rC,GAAE/Q,GAAEywB,GAAE9J,GAAEzjB,GAAE8xF,GAAE10D,GAAEptB,GAAEmnB,IAAG77B,GAAEA,IAAG,IAAI,OAAO,KAAK,GAAa,OAAOyH,GAAjB,UAA8B,OAAOsH,IAAjB,WAA+B,OAAOzM,IAAjB,UAAoB,MAAM,QAAQA,EAAC,GAAG,CAAC,IAAIsmB,GAAEtmB,GAAEA,GAAEyM,GAAEA,GAAEtH,EAAEA,EAAEmhB,EAAC,CAAC,GAAG,UAAU,CAAC,YAAYgzI,IAAiNvkE,EAAE,uDAAuD,EAAE3iF,GAAEkB,KAAtQpU,GAAE,UAAU,CAAC,EAAEywB,GAAE,UAAU,CAAC,EAAayhE,GAAE8C,GAAE,UAAU,CAAC,CAAC,IAA3B,UAAqCA,KAAP,OAAqB,OAAOh1F,IAAjB,WAAqBywB,GAAEzwB,GAAEA,GAAE,MAAgB,OAAOg1F,IAAjB,WAAqBvkE,GAAEukE,GAAEA,GAAE,MAAgB,OAAOA,IAAjB,WAAqBh1F,GAAEg1F,GAAEA,GAAE,MAAMx2F,GAAE,CAAC,MAAMw2F,GAAE,MAAMh1F,GAAE,MAAMywB,EAAC,IAAqE,MAAMljB,EAAC,GAAG,MAAMzM,EAAC,GAASmF,GAAN,KAAQ,MAAM,IAAI,MAAM,wCAAwC,EAAE,GAAOA,EAAE,SAAN,EAAa,OAAOo0B,GAAE,IAAIx3B,GAAE,GAAGoyF,GAAE,GAAG/wB,GAAY,OAAO1lE,GAAE,kBAAnB,SAAoCA,GAAE,iBAAiBsiK,GAAGtrE,GAAEn7D,GAAE,SAAS,YAAY,SAASu7D,GAAE1D,GAAE,CAAC,OAAOA,GAAEA,GAAE,MAAM,GAAI,EAAE,KAAK,MAAM1zF,GAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE6gK,GAAGntE,GAAE8C,EAAC,CAAC,CAAC,SAASE,GAAEhD,GAAE,CAAC,QAAQjsF,GAAEsH,GAAE2kF,GAAE,OAAM,EAAGpxF,GAAE,GAAGtC,GAAE+O,GAAE,OAAO/O,MAAe,OAAOyH,GAAEsH,GAAE,UAArB,SAA8BzM,GAAE,KAAKmF,EAAC,EAAE,MAAM,QAAQisF,EAAC,IAAQjsF,GAAE,SAAN,GAAuBA,GAAE,CAAC,IAAZ,QAAwBA,GAAE,CAAC,IAAZ,QAAenF,GAAE,KAAKmF,GAAE,CAAC,CAAC,EAAEnF,GAAE,KAAK,CAACmF,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,CAAC,EAAE,OAAOnF,EAAC,CAAC,SAASf,GAAEmyF,GAAEjsF,GAAE,CAAC,IAAIsH,GAAE,GAAa,OAAO2kF,IAAjB,SAAmB3kF,GAAEtH,GAAEisF,EAAC,EAAE,CAAC,UAAU,MAAM,QAAQA,EAAC,EAAE,CAAC,QAAQpxF,GAAEtC,GAAE4V,GAAE89E,GAAE,OAAQ,EAACt1C,GAAE,CAAE,EAAC7rC,GAAEqD,GAAE,OAAOrD,MAAe,OAAOjQ,GAAEsT,GAAE,MAAK,IAA1B,SAA8BwoC,GAAE,KAAK32C,GAAEnF,EAAC,EAAE,CAAC,CAAC,EAAE,MAAM,QAAQA,EAAC,GAAa,OAAOA,GAAE,CAAC,GAApB,WAAwBtC,GAAEyH,GAAEnF,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,EAAE87C,GAAE,KAAK,CAACp+C,GAAE,CAAC,EAAEA,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,CAAC,GAAG+O,GAAEqvC,EAAC,CAAC,OAAOrvC,EAAC,CAAC,IAAI4nF,GAAE,GAAGtvD,GAAE,GAAG,GAAa,OAAO5/B,GAAjB,SAAmBkvF,GAAE,WAAW,MAAM,QAAQlvF,CAAC,EAAE,CAAC,IAAIyvF,GAAEzvF,EAAE,OAAQ,EAAC8K,GAAE,GAAG,QAAQuhF,GAAE8C,GAAEM,GAAE,OAAON,OAAgB,OAAO9C,GAAEoD,GAAE,MAAK,IAA1B,UAA+B,MAAM,QAAQpD,EAAC,GAAa,OAAOA,GAAE,CAAC,GAApB,YAAyBzsD,GAAE,IAAIsvD,GAAEtvD,EAAC,CAAC,GAAQsvD,KAAL,GAAO,MAAM,IAAI,MAAM,0CAA0ClvF,EAAE,sBAAsB,EAAY,OAAOA,GAAjB,WAAqBA,EAAEA,EAAE,MAAM,SAAS,EAAEA,EAAE,MAAM,aAAa,EAAE,CAACA,CAAC,GAAG,IAAI0sB,GAAE0oI,GAAGhhI,GAAE,SAAS,YAAY07D,GAAEpjE,IAAGuxC,GAAE,GAAG,OAAO1lE,GAAE,SAAQ,CAAE,IAAI,SAASsC,IAAGi1F,GAAE,MAAM,IAAI,MAAMj1F,IAAG6xB,GAAEojE,GAAE,MAAM,IAAI,UAAUj1F,IAAG6xB,GAAE,EAAEojE,GAAE,MAAM,IAAI,SAASj1F,IAAG6xB,GAAE,EAAEojE,EAAC,CAAC,IAAI7yF,GAAE1E,GAAE,UAAU,GAAG,IAAc,OAAOyH,GAAjB,SAAmBA,EAAEo0B,GAAE,gBAAgBp0B,EAAE/C,EAAC,EAAqB,OAAO,UAAU,SAAS,KAAK+C,CAAC,IAAnD,mBAAuDA,EAAEA,EAAE,OAAQ,SAASisF,GAAEjsF,GAAE,CAAC,OAAOisF,GAAE,OAAO73D,GAAE,gBAAgBp0B,GAAE/C,EAAC,CAAC,CAAC,EAAG,CAAE,KAAI05C,GAAE,CAAC,KAAK32C,EAAE,EAAEsH,GAAE,EAAEzM,GAAE,QAAQtC,GAAE,MAAM,CAAC,UAAU6gK,GAAG,cAAcvD,GAAG,MAAMI,GAAG,eAAeb,EAAE,CAAC,EAAEuB,GAAG,QAAQ,iBAAiBhgH,EAAC,EAAE32C,EAAE22C,GAAE,KAAK58C,IAAGxB,GAAEo+C,GAAE,SAAS,MAAM,EAAA1pC,cAAaknJ,KAAQp6J,IAAa,OAAOA,IAAjB,SAAmB,CAACA,IAAG,KAAK,GAAG,IAAQxB,GAAE,oBAAN,IAA0BwB,GAAE,CAACA,IAAG81F,IAAIztF,EAAE,WAAWrI,GAAE,CAACA,IAAG,IAAIu1F,GAAE,KAAK,IAAIv1F,EAAC,EAAEm6J,GAAE,KAAK,IAAIn6J,EAAC,EAAEkT,GAAE,IAAIknJ,GAAG7kE,GAAE4kE,GAAE,CAACA,GAAE5kE,GAAE,EAAE,CAAC,CAAC,MAAMv1F,IAAGA,cAAao6J,KAAKlnJ,GAAElT,IAAG81F,IAAIztF,EAAE,UAAU6K,KAAIA,GAAEkqJ,KAAcz2I,GAAEnoB,GAAE,WAAWuiK,MAAzB,SAA+Bl+J,IAAGmzF,EAAEG,EAAExvE,EAAC,CAAC,EAAE;AAAA,EAAQ,KAAK,aAAa,KAAK,aAAY,GAAI,CAAC,IAAa2Z,GAAE9hC,GAAE,mBAAd,SAAiCqE,IAAGmzF,EAAE,IAAI11D,EAAC,EAAE;AAAA,GAAS9hC,GAAE,KAAK,IAAIy3F,GAAE,GAAG6vD,GAAWtnJ,GAAE,gBAAX,OAAyBA,GAAE,cAAcA,GAAE,OAAO62F,GAAEh7D,GAAE,SAAS,mBAAoB,EAAC,YAAY,OAAOyrH,GAAC,CAAE,IAAK,GAAE,IAAI,GAAG,IAAI,OAAO7vD,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,GAAG,IAAI,SAASA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,iBAAiBA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,YAAYA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,wBAAwBA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,8BAA8BA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,wCAAwCA,GAAE,EAAE,MAAM,IAAK,GAAE,IAAI,uBAAuBA,GAAE,CAAC,CAAC,IAAIN,GAAWN,GAAE,oBAAX,OAA6BA,GAAE,kBAAkB,GAAQY,KAAL,GAAOpzF,IAAGozF,GAAE;AAAA,EAAaN,KAAL,KAAS9yF,IAAG;AAAA,GAAeozF,KAAL,KAASZ,GAAE,kBAAkBY,IAAGxlE,GAAEjyB,GAAE,OAAO,OAAO,IAAIi3F,GAAEY,GAAEglE,GAAGn3F,GAAEkyB,GAAE/7D,GAAE,SAAS,SAAS,SAAQ,EAAG67D,GAAEgmE,GAAGJ,EAAE,EAAEn1I,GAAEnoB,GAAE,WAAWuiK,GAAG79J,GAAE1E,GAAE,UAAU,EAAEw2F,GAAE,OAAO,OAAO,CAAC,WAAW,GAAG,MAAM,EAAE,EAAEx2F,GAAE,KAAK,EAAE,IAAI+7J,GAAE,CAAE,EAAChkE,GAAE,SAASrE,GAAE,CAAC,OAAO73D,GAAE,mBAAmB63D,GAAE,CAAC,KAAKgE,GAAE,UAAUvvE,GAAE,SAAS00I,GAAG,UAAU,EAAE,CAAC,EAAEA,GAAG7lE,EAAC,EAAE,GAAsB,OAAO,UAAU,SAAS,KAAKvvF,CAAC,IAAnD,iBAAqD,CAAC,IAAIw0J,GAAE1pJ,GAAEmkF,GAAEjvF,CAAC,EAAWwqB,KAAT,SAAaglE,GAAE1kF,GAAE,IAAIwlF,EAAC,GAAG,IAAIC,GAAEF,GAAE,EAAE,GAAa7lE,KAAV,QAAY,CAACljB,IAAGkoF,GAAE,CAAC,EAAExvF,EAAE,GAAGmvF,GAAErkF,GAAE,OAAO,QAAQukF,GAAE,EAAEA,GAAEF,GAAEE,KAAQA,KAAJ,GAAOkB,GAAEwqE,GAAGzzJ,EAAC,EAAEktJ,GAAEwG,GAAGngK,EAAC,IAAI01F,GAAEL,EAAEG,GAAEb,GAAEH,EAAC,CAAC,EAAEmlE,GAAE,CAACpkE,IAAGpwF,EAAE,KAAK,CAAC8K,GAAEukF,EAAC,EAAEkB,GAAEikE,EAAC,CAAC,EAAEnkE,GAAEb,GAAEH,EAAC,CAAC,SAAoB7kE,KAAX,SAAa,CAACljB,IAAGkoF,GAAE,CAAC,EAAE,EAAExvF,EAAE,GAAGmvF,GAAErkF,GAAE,OAAO,QAAQ0lF,GAAE,EAAEA,GAAErB,GAAEqB,KAAQA,KAAJ,GAAOD,GAAEwqE,GAAGzzJ,EAAC,EAAEktJ,GAAEwG,GAAGngK,EAAC,IAAI01F,GAAEL,GAAGG,GAAEb,GAAEgB,EAAC,GAAG,CAAC,EAAEgkE,GAAE,CAACpkE,IAAGpwF,EAAE,KAAK,CAAC8K,GAAE0lF,EAAC,EAAED,GAAEikE,EAAC,CAAC,EAAEnkE,GAAEb,GAAEgB,EAAC,CAAC,SAAkBhmE,KAAT,OAAW,CAACxqB,EAAE,GAAGmvF,GAAErkF,GAAE,OAAO,QAAQ+qB,GAAG,EAAEA,GAAGs5D,GAAEt5D,KAAK71B,EAAE,KAAK8K,GAAE+qB,EAAE,CAAC,CAAC,SAAqBrL,KAAZ,WAA8BylE,GAAE,WAAjB,aAA0B,CAACjwF,EAAE,GAAGmvF,GAAErkF,GAAE,OAAO7N,GAAMA,KAAJ,EAAMA,GAAEkzF,GAAE,QAAQ0+D,GAAG,EAAE4F,GAAG,EAAEA,GAAGtlE,GAAEslE,KAAK,GAAGD,GAAMC,KAAJ,EAAOuG,GAAGngK,EAAC,EAAE,CAACu1F,GAAEG,GAAMkkE,KAAJ,EAAOsG,GAAGzzJ,EAAC,EAAEunJ,GAAG4F,GAAGtlE,GAAE,EAAE,CAAC,IAAIg9D,GAAGj8D,GAAGjzF,GAAEuyF,GAAEilE,EAAE,IAAI3pJ,GAAE2pJ,EAAE,EAAE,MAAM,GAAG,EAAE,OAAO,EAAE,EAAElD,GAAGzmJ,GAAE2pJ,EAAE,EAAE,MAAM,GAAG,EAAEz0J,EAAE,KAAK,CAACuxJ,GAAG,CAAC,EAAE,IAAIhhE,GAAEikE,EAAC,CAAC,EAAE3F,GAAG,EAAE,QAAQ6F,GAAG,EAAEA,GAAGnD,GAAG,OAAOmD,KAAK,CAAC,IAAIC,IAAIrkE,GAAEihE,GAAGmD,GAAG,CAAC,EAAE,IAAInD,GAAGmD,EAAE,CAAC,EAAEpkE,GAAEihE,GAAGmD,EAAE,CAAC,GAAGnlE,GAAE48D,GAAGuI,IAAInD,GAAG,OAAO,EAAEvxJ,EAAE,KAAK,CAACuxJ,GAAGmD,EAAE,EAAEC,GAAG,CAAC,CAAC,EAAE30J,EAAE,KAAK,CAACuxJ,GAAGmD,EAAE,EAAE,IAAIC,GAAG,CAAC,CAAC,EAAE9F,IAAI8F,EAAE,CAAC,MAAM30J,EAAE,KAAK,CAAC8K,GAAE2pJ,EAAE,EAAElkE,GAAEikE,EAAC,CAAC,EAAEx0J,EAAE,KAAK,CAAC,GAAG6uJ,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAerkI,KAAZ,UAAc,MAAM,IAAI,MAAM,4EAA4E,EAA8B,IAA5BxqB,EAAE,GAAGmvF,GAAErkF,GAAE,OAAO7N,GAAMA,KAAJ,EAAMA,GAAEkzF,GAAMskE,GAAG,EAAEA,GAAGtlE,GAAEslE,KAAKD,GAAMC,KAAJ,EAAOuG,GAAGngK,EAAC,EAAE,CAACu1F,GAAEG,GAAMkkE,KAAJ,EAAOsG,GAAGzzJ,EAAC,EAAE,EAAEmtJ,GAAGtlE,GAAE,EAAEmlE,GAAE,KAAKvkE,EAAEG,GAAGjzF,GAAEuyF,GAAEilE,EAAE,IAAI3pJ,GAAE2pJ,EAAE,EAAE,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,EAAEH,GAAE,KAAK,CAAC,EAAEt0J,EAAE,KAAK,CAAC8K,GAAE2pJ,EAAE,EAAElkE,GAAEikE,EAAC,CAAC,CAAC,CAAC,CAAC,IAAIlI,GAAc,OAAO/zJ,GAAE,KAApB,UAAwBA,GAAE,IAAI20J,GAAQZ,KAAL,KAAUtsJ,EAAElG,GAAEkG,EAAG,SAASisF,GAAEjsF,GAAEsH,GAAE,CAAC,MAAM,CAAC2kF,GAAE,MAAM,EAAE,EAAE,QAAS,EAAC,KAAK,EAAE,EAAEjsF,GAAEsH,EAAC,CAAC,CAAC,GAAIqvC,GAAE,CAAC,KAAK32C,EAAE,EAAEsH,GAAE,EAAEzM,GAAE,QAAQtC,GAAE,MAAM,CAAC,UAAU6gK,GAAG,cAAcvD,GAAG,MAAMI,GAAG,eAAeb,EAAE,CAAC,EAAEuB,GAAG,QAAQ,kBAAkBhgH,EAAC,EAAE32C,EAAE22C,GAAE,KAAKq4C,GAAEr4C,GAAE,MAAM,OAAO,GAAG,IAAIi+G,GAAGqB,GAAGJ,EAAE,EAAE,SAA6BjB,KAApB,mBAA6CA,KAArB,qBAA0B50J,EAAElG,GAAEkG,EAAG,SAASisF,GAAEjsF,GAAEsH,GAAE,CAAC,MAAM,CAACqoF,GAAE1D,EAAC,EAAEjsF,GAAEsH,EAAC,CAAC,CAAC,GAAIwD,GAAEmkF,GAAEjvF,CAAC,EAAEA,EAAE,GAAG,QAAQ60J,GAAGI,GAAGC,GAAGjH,GAAG,EAAEkH,GAAG,EAAEE,GAAG,MAAM,QAAQvqJ,GAAE,CAAC,CAAC,EAAEqqJ,GAAGlH,GAAGqH,GAAG,GAAGC,GAAG,SAAStpE,GAAEjsF,GAAEsH,GAAE,CAAC,IAAIzM,GAAE,GAAG,OAAOyM,cAAa6sJ,IAAI7sJ,GAAY,OAAO/O,GAAE,OAAnB,SAAyB2+J,GAAG5vJ,GAAE,IAAI6sJ,GAAG,EAAE,EAAE,EAAE,EAAEloE,GAAEjsF,EAAC,CAAC,EAAEk3J,GAAG,IAAI/C,GAAG,EAAE,EAAE,EAAE,EAAEloE,GAAEjsF,EAAC,EAAEsH,EAAC,EAAEuoF,IAAIztF,EAAE,WAAWkF,GAAE4vJ,GAAG,IAAI/C,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE7sJ,EAAC,GAAGzM,GAAEyM,GAAE,KAAK,GAAG,EAAE;AAAA,GAASzM,GAAEk1F,EAAE9D,EAAC,EAAE,IAAI8D,EAAE/vF,EAAC,EAAE;AAAA,EAAQnF,EAAC,EAAE26J,GAAG,EAAEA,GAAG1qJ,GAAE,OAAO0qJ,KAAK,CAAC,OAAOF,GAAG,GAAGD,GAAE,CAAE,KAAKF,GAAGD,IAAIlmE,GAAE,IAAI,KAAKlkF,GAAE0qJ,EAAE,EAAE,CAAC,GAAGxmE,GAAE,IAAI,KAAK6lE,GAAG,WAAW/pJ,GAAE0qJ,EAAE,EAAE,CAAC,CAAC,EAAEP,GAAG,WAAWnqJ,GAAE0qJ,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAKvH,GAAGiH,IAAIlmE,GAAE,IAAI,KAAKlkF,GAAE0qJ,EAAE,GAAGxmE,GAAE,IAAI,KAAK6lE,GAAGkG,GAAGzzJ,EAAC,EAAE2tJ,GAAG+F,GAAGngK,EAAC,CAAC,CAAUy5J,KAAT,QAAqBA,GAAEkB,EAAE,IAAb,SAAiBF,GAAGhB,GAAEkB,EAAE,EAAE;AAAA,GAAaA,KAAJ,EAAOx1J,EAAE,KAAKs1J,GAAGC,GAAGV,GAAGI,GAAGhoJ,EAAC,EAAEioJ,EAAE,EAAEG,KAAKpH,GAAGjuJ,EAAE,KAAKs1J,GAAGJ,EAAE,EAAEG,KAAKF,IAAIn1J,EAAE,KAAKs1J,GAAGC,GAAGV,GAAGI,GAAGhoJ,EAAC,EAAEioJ,EAAE,CAAC,CAACl1J,EAAEq1J,KAAKpH,GAAGjuJ,EAAE,KAAK;AAAA,IAAU,EAAEA,EAAE,KAAK;AAAA,CAAO,EAAEA,GAAG;AAAA,EAAQ,IAAIy1J,GAAG;AAAA,GAAQ,OAAOA,IAAII,GAAG,IAAIT,GAAG;AAAA,EAAQK,IAAI1lE,EAAEqlE,GAAGn3F,EAAC,EAAE;AAAA,EAAQw3F,IAAIwF,GAAG;AAAA,EAAKxF,IAAI74J,GAAE64J,IAAIz1J,EAAEguJ,GAAGyH,IAAI,IAAI,EAAErnJ,EAAEynJ,EAAE,EAAE,GAAGzhI,EAAC,EAAE,IAAI8mI,GAAGlsE,EAAE,YAAY,KAAKA,EAAE,KAAK,SAAS/C,EAAE,CAAC,OAAO+hE,GAAe/hE,IAAZ,UAAc,KAAK,GAAG,EAAE,IAAI,EAAE+C,EAAE,YAAY,UAAU,CAAC,OAAOksE,GAAG,SAAS,CAAC,EAAElsE,EAAE,YAAY,YAAYA,EAAE,YAAY,UAAU,CAAC,OAAOg/D,GAAG,GAAG,EAAE,IAAI,EAAE,IAAImN,GAAGnsE,EAAE,YAAY,aAAa,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE,GAAG,MAAW,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,EAAE,QAAQisF,CAAC,IAAxE,KAA4EjsF,GAAE,IAAIA,EAAC,EAAEgvF,EAAE,YAAY,wBAAwBA,EAAE,wBAAwB,SAAS/C,EAAE,CAAC,OAAOkvE,GAAGlvE,CAAC,IAAI73D,EAAE63D,GAAG,IAAI,EAAE,IAAI8iE,GAAG//D,EAAE,YAAY,SAASA,EAAE,SAAS,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEo0B,EAAE,OAAO63D,EAAC,CAAE,IAAI,IAAI,IAAI,IAAIjsF,GAAE,IAAI,MAAM,IAAI,IAAIA,GAAE,IAAI,MAAM,IAAI,KAAK,IAAI,KAAKA,GAAE,IAAI,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAKA,GAAEisF,CAAC,CAAC,OAAOjsF,EAAC,EAAEo7J,GAAGpsE,EAAE,MAAM,UAAU,CAAC,OAAOg/D,GAAG,GAAG,EAAE,IAAI,EAAEh/D,EAAE,OAAO,UAAU,CAAC,OAAOg/D,GAAG,GAAG,EAAE,IAAI,EAAEh/D,EAAE,KAAK,SAAS/C,EAAE,CAAC,OAAOovE,GAAG,IAAIpvE,CAAC,EAAE,IAAI,EAAE+C,EAAE,YAAY,SAAS/C,EAAE,CAAC,OAAOovE,GAAG,KAAKpvE,CAAC,EAAE,IAAI,EAAE+C,EAAE,WAAW,SAAS/C,EAAE,CAAC,OAAOovE,GAAG,IAAIpvE,CAAC,EAAE,IAAI,EAAE+C,EAAE,kBAAkB,SAAS/C,EAAE,CAAC,OAAOovE,GAAG,KAAKpvE,CAAC,EAAE,IAAI,EAAE,IAAIovE,GAAG,SAASr7J,EAAEsH,GAAE,CAAY2kF,GAAE3kF,EAAC,IAAd,SAAgBg0J,GAAGh0J,GAAEtH,CAAC,EAAEguJ,GAAGhuJ,CAAC,CAAC,EAAEu7J,GAAG,SAAStvE,EAAE,CAAQA,IAAP,MAAU4D,IAAIztF,EAAE,UAAmB6pF,IAAT,SAAaA,EAAE8iE,GAAG9iE,CAAC,EAAE+hE,GAAG/hE,CAAC,EAAE,EAAE,SAASuvE,GAAGvvE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,IAAI4V,GAAE,IAAImhF,GAAEtvF,IAAG,KAAK,YAAYsH,IAAG,KAAK,MAAMzM,IAAG,KAAK,MAAM,KAAK,OAAOtC,IAAG,KAAK,MAAM,EAAE4V,GAAE,OAAO,KAAK,OAAO,IAAIwoC,GAAEs1C,EAAE,KAAK,KAAK,aAAa,KAAK,OAAOmrE,GAAGzgH,GAAExoC,EAAC,EAAEA,EAAC,CAAC,IAAImtJ,GAAG,SAASrvE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAE+uJ,GAAGpqE,EAAE,GAAG,EAAEpxF,GAAEu7J,GAAG9uJ,EAAC,EAAE,GAAGzM,cAAai1F,GAAEk+D,GAAG,GAAG,EAAEA,GAAGyN,GAAGz7J,EAAC,CAAC,EAAEnF,GAAE,QAAQm0F,EAAE,UAAUn0F,GAAE,MAAM,EAAEmzJ,GAAG/hE,EAAE,OAAO,SAAU,EAAC,KAAK,EAAE+hE,GAAG,IAAI1mJ,GAAE,KAAK,EAAE0mJ,GAAG,GAAG,UAAUnzJ,cAAay0F,GAAE,CAAC,IAAI/2F,GAAE,IAAI47J,GAAG,EAAE,EAAE,EAAE,GAAG,EAAEE,GAAE,CAAE,EAAEpoE,EAAE,SAAS1zF,GAAEA,GAAE,SAAS0zF,EAAE,QAAQkrE,EAAE,EAAE7vJ,GAAEk0J,GAAG,KAAK3gK,GAAEoxF,EAAE,IAAIA,EAAE,YAAYA,EAAE,MAAMA,EAAE,MAAM1zF,EAAC,EAAE,IAAIy1J,GAAG,GAAG,EAAEA,GAAG,aAAa,EAAEA,GAAG,IAAI1mJ,GAAE,MAAM,EAAEzM,GAAE,QAAQm0F,EAAE,UAAUn0F,GAAE,MAAM,EAAEmzJ,GAAGhuJ,EAAC,EAAEguJ,GAAG,GAAG,CAAC,CAAC,EAAEyN,GAAG,SAASxvE,EAAE,CAAC,OAAOA,EAAC,CAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,MAAM,MAAM,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,MAAM,KAAK,CAAC,EAAEyvE,GAAG1sE,EAAE,OAAO,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOguJ,GAAGj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE,IAAI8D,EAAEP,EAAExvF,EAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE27J,GAAG3sE,EAAE,OAAO,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOguJ,GAAGj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE,IAAI8D,EAAEP,EAAExvF,EAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE47J,EAAG5sE,EAAE,QAAQ,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAE,CAAC,OAAO6/I,GAAG,CAACj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE8D,EAAEP,EAAExvF,EAAC,CAAC,EAAE+vF,EAAEG,EAAE5oF,EAAC,CAAC,EAAEyoF,EAAEP,EAAE30F,EAAC,CAAC,EAAEk1F,EAAEG,EAAE33F,EAAC,CAAC,EAAEw3F,EAAEP,EAAErhF,EAAC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,EAAE6gF,EAAE,YAAY,KAAKA,EAAE,KAAK,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,GAAG,MAAM0zF,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,MAAMzM,EAAC,GAAG,CAACsgK,GAAG5iK,EAAC,EAAE,MAAM,IAAI,MAAM,wCAAwC,EAAE,OAAOs3F,IAAIztF,EAAE,OAAO,KAAK,MAAM,CAAC,CAACkF,GAAE2kF,EAAEpxF,GAAEmF,EAAC,CAAC,EAAEisF,EAAEjsF,GAAE,CAAC,EAAE,CAAC,EAAEzH,IAAG,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC+O,GAAE2kF,EAAEpxF,GAAEmF,EAAC,CAAC,EAAEisF,EAAEjsF,GAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAEgvF,EAAE,YAAY,MAAMA,EAAE,MAAM,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAE,CAAC,IAAIwoC,GAAE7rC,GAAE/Q,GAAEywB,GAAE9J,GAAEzjB,GAAE8xF,GAAE10D,GAAEptB,GAAEmnB,GAAEjT,GAAEvkB,GAAE,GAAa,OAAOqvF,GAAjB,WAAqBrvF,GAAE0K,GAAEA,GAAEtH,GAAEA,GAAEisF,EAAEA,EAAErvF,IAAG/B,GAAEA,IAAG,CAAC,EAAE,CAAC,EAAEsT,GAAEA,IAAG,GAAG,MAAMnO,EAAC,GAAG,MAAMsH,EAAC,GAAG,CAAC,MAAM,QAAQ2kF,CAAC,GAAG,CAAC,MAAM,QAAQpxF,EAAC,GAAG,CAACsgK,GAAG5iK,EAAC,GAAc,OAAO4V,IAAlB,UAAoB,MAAM,IAAI,MAAM,yCAAyC,EAAE,IAAIutJ,GAAG17J,GAAEsH,EAAC,EAAEqvC,GAAE97C,GAAE,CAAC,EAAEiQ,GAAEjQ,GAAE,CAAC,EAAE2vB,GAAEyhE,EAAE,OAAO73D,GAAEp0B,GAAEmhB,GAAE7Z,GAAEvN,GAAE,EAAEA,GAAEywB,GAAEzwB,MAAS2mB,GAAEurE,EAAElyF,EAAC,GAAG,SAAb,GAAqBq6B,GAAE1T,GAAE,CAAC,EAAEi2B,GAAEviB,GAAEjT,GAAET,GAAE,CAAC,EAAE5V,GAAEqW,GAAEw6I,GAAGvnI,GAAEjT,EAAC,IAAIlkB,GAAEyjB,GAAE,CAAC,EAAEi2B,GAAEviB,GAAE26D,GAAEruE,GAAE,CAAC,EAAE5V,GAAEqW,GAAEkZ,GAAE3Z,GAAE,CAAC,EAAEi2B,GAAEviB,GAAEnnB,GAAEyT,GAAE,CAAC,EAAE5V,GAAEqW,GAAEiT,GAAE1T,GAAE,CAAC,EAAEi2B,GAAEviB,GAAEjT,GAAET,GAAE,CAAC,EAAE5V,GAAEqW,GAAEy6I,EAAG3+J,GAAE8xF,GAAE10D,GAAEptB,GAAEmnB,GAAEjT,EAAC,GAAG,OAAOhT,IAAGitJ,GAAE,EAAGG,GAAGhjK,EAAC,EAAE,IAAI,EAAEy2F,EAAE,KAAK,SAAS/C,EAAE,CAAC,QAAQjsF,GAAE,EAAEA,GAAEisF,EAAE,OAAOjsF,KAAI,CAAC,IAAIsH,GAAE2kF,EAAEjsF,EAAC,EAAEnF,GAAEyM,GAAE,EAAE,OAAOA,GAAE,IAAI,IAAI,IAAIo0J,GAAG7gK,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI8gK,GAAG9gK,GAAE,CAAC,EAAEA,GAAE,CAAC,CAAC,EAAE,MAAM,IAAI,IAAI+gK,EAAG,MAAM,KAAK/gK,EAAC,EAAE,MAAM,IAAI,IAAIugK,GAAI,EAAC,CAAC,OAAO,IAAI,EAAEpsE,EAAE,YAAY,KAAKA,EAAE,KAAK,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,GAAG,MAAM0zF,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,MAAMzM,EAAC,GAAG,CAACsgK,GAAG5iK,EAAC,EAAE,MAAM,IAAI,MAAM,wCAAwC,EAAE,OAAOs3F,IAAIztF,EAAE,SAASvH,GAAE,CAACA,IAAGmzJ,GAAG,CAACj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE8D,EAAEP,EAAExvF,EAAC,CAAC,EAAE+vF,EAAEG,EAAE5oF,EAAC,CAAC,EAAEyoF,EAAEG,EAAEr1F,EAAC,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE0gK,GAAGhjK,EAAC,EAAE,IAAI,EAAEy2F,EAAE,YAAY,SAASA,EAAE,SAAS,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,GAAE,CAAC,GAAG,MAAMs1C,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,MAAMzM,EAAC,GAAG,MAAMtC,EAAC,GAAG,MAAM4V,EAAC,GAAG,CAACgtJ,GAAGxkH,EAAC,EAAE,MAAM,IAAI,MAAM,4CAA4C,EAAE,OAAO,KAAK,MAAM,CAAC,CAACrvC,GAAE2kF,EAAEpxF,GAAEmF,EAAC,EAAE,CAACzH,GAAE+O,GAAE6G,GAAEtT,EAAC,EAAE,CAACoxF,EAAE1zF,GAAEyH,GAAEmO,EAAC,CAAC,EAAE89E,EAAEjsF,GAAE,CAAC,EAAE,CAAC,EAAE22C,GAAE,EAAE,EAAE,IAAI,EAAEq4C,EAAE,YAAY,YAAYA,EAAE,YAAY,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE4V,GAAEwoC,GAAE,CAAC,GAAG,MAAMs1C,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,MAAMzM,EAAC,GAAG,MAAMtC,EAAC,GAAG,MAAM4V,EAAC,GAAG,CAACgtJ,GAAGxkH,EAAC,EAAE,MAAM,IAAI,MAAM,+CAA+C,EAAE,IAAI7rC,GAAE,EAAE,GAAG,KAAK,MAAM,GAAG,OAAOvS,GAAE,KAAK,IAAIA,GAAE,GAAG+O,EAAC,EAAE6G,GAAE,KAAK,IAAIA,GAAE,GAAGtT,EAAC,EAAE,KAAK,MAAM,CAAC,CAACyM,GAAE,EAAE/O,GAAE,CAAC,EAAE,CAACA,GAAEuS,GAAE,EAAEvS,GAAE4V,GAAEA,GAAErD,GAAEvS,GAAE4V,EAAC,EAAE,CAAC,EAAEtT,GAAE,EAAEsT,EAAC,EAAE,CAAC,EAAEA,GAAErD,GAAE,CAACvS,GAAEuS,GAAEqD,GAAE,CAAC5V,GAAE4V,EAAC,EAAE,CAAC,EAAE5V,GAAE+O,GAAE,CAAC,EAAE,CAAC,CAAC/O,GAAEuS,GAAE,EAAE,CAACvS,GAAE,CAAC4V,GAAErD,GAAE,CAACvS,GAAE,CAAC4V,EAAC,EAAE,CAAC,EAAE,EAAEA,GAAEtT,EAAC,EAAE,CAAC,EAAE,CAACsT,GAAErD,GAAEvS,GAAEuS,GAAE,CAACqD,GAAE5V,GAAE,CAAC4V,EAAC,CAAC,EAAE89E,EAAE1zF,GAAEyH,GAAE,CAAC,EAAE,CAAC,EAAE22C,GAAE,EAAE,EAAE,IAAI,EAAEq4C,EAAE,YAAY,QAAQA,EAAE,QAAQ,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,GAAG,MAAM0zF,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,MAAMzM,EAAC,GAAG,CAACsgK,GAAG5iK,EAAC,EAAE,MAAM,IAAI,MAAM,2CAA2C,EAAE,IAAI4V,GAAE,EAAE,GAAG,KAAK,MAAM,GAAG7G,GAAEqvC,GAAE,EAAE,GAAG,KAAK,MAAM,GAAG97C,GAAE,OAAO6gK,GAAGzvE,EAAE3kF,GAAEtH,EAAC,EAAE47J,EAAG3vE,EAAE3kF,GAAEtH,GAAE22C,GAAEs1C,EAAE99E,GAAEnO,GAAEnF,GAAEoxF,EAAEjsF,GAAEnF,EAAC,EAAE+gK,EAAG3vE,EAAE99E,GAAEnO,GAAEnF,GAAEoxF,EAAE3kF,GAAEtH,GAAE22C,GAAEs1C,EAAE3kF,GAAEtH,EAAC,EAAE47J,EAAG3vE,EAAE3kF,GAAEtH,GAAE22C,GAAEs1C,EAAE99E,GAAEnO,GAAEnF,GAAEoxF,EAAEjsF,GAAEnF,EAAC,EAAE+gK,EAAG3vE,EAAE99E,GAAEnO,GAAEnF,GAAEoxF,EAAE3kF,GAAEtH,GAAE22C,GAAEs1C,EAAE3kF,GAAEtH,EAAC,EAAEu7J,GAAGhjK,EAAC,EAAE,IAAI,EAAEy2F,EAAE,YAAY,OAAOA,EAAE,OAAO,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAE,CAAC,GAAG,MAAMoxF,CAAC,GAAG,MAAMjsF,EAAC,GAAG,MAAMsH,EAAC,GAAG,CAAC6zJ,GAAGtgK,EAAC,EAAE,MAAM,IAAI,MAAM,0CAA0C,EAAE,OAAO,KAAK,QAAQoxF,EAAEjsF,GAAEsH,GAAEA,GAAEzM,EAAC,CAAC,EAAEm0F,EAAE,QAAQ,SAAS/C,EAAEjsF,GAAEsH,GAAE,CAAC,OAAOA,KAAItH,GAAE4/B,EAAE5/B,GAAEsH,EAAC,GAAGuuJ,GAAGkE,GAAG9tE,EAAEjsF,GAAE,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI67J,GAAG7sE,EAAE,YAAY,QAAQA,EAAE,QAAQ,UAAU,CAAC,OAAOinE,GAAG8D,GAAG,MAAM/qE,EAAE,SAAS,CAAC,CAAC,EAAEA,EAAE,YAAY,YAAYA,EAAE,YAAY,UAAU,CAAC,IAAI/C,EAAEjsF,GAAEsH,GAAE,GAAG,IAAI2kF,KAAKiqE,GAAG,GAAGA,GAAG,eAAejqE,CAAC,EAAE,IAAIjsF,MAAKsH,GAAE2kF,CAAC,EAAE,CAAE,EAACiqE,GAAGjqE,CAAC,EAAEiqE,GAAGjqE,CAAC,EAAE,eAAejsF,EAAC,GAAGsH,GAAE2kF,CAAC,EAAE,KAAKjsF,EAAC,EAAE,OAAOsH,EAAC,EAAE0nF,EAAE,QAAQ,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,IAAI4V,GAAE,CAAC,mBAAmB,mBAAmB,aAAa,iBAAiB,EAAE,OAAO,UAAU,CAAC,GAAQA,GAAE,QAAQ,UAAU,CAAC,CAAC,IAA3B,GAA6B5V,GAAE,UAAU,CAAC,EAAE,UAAU,CAAC,GAAO4V,GAAE,QAAQ,UAAU,CAAC,CAAC,GAA1B,KAA8B7G,GAAEs4B,EAAEt4B,GAAEzM,EAAC,GAAGtC,GAAEA,IAAG,aAAaygK,GAAG,KAAK,KAAK/sE,EAAEjsF,GAAEsH,GAAE/O,EAAC,CAAC,EAAE,IAAIsiK,GAAGpB,GAAGz5J,EAAE,WAAW,QAAQ87J,GAAG9sE,EAAE,YAAY,aAAaA,EAAE,aAAa,UAAU,CAAC,OAAOyqE,EAAE,EAAED,GAAGxqE,EAAE,YAAY,aAAaA,EAAE,aAAa,SAAS/C,EAAE,CAAC,OAAOwtE,GAAGxtE,EAAE+hE,GAAGj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE+C,EAAE,YAAY,YAAYklE,GAAE,IAAI,YAAYA,GAAE,IAAI,mBAAmB,SAASjoE,EAAEjsF,GAAE,CAAC,GAAGisF,EAAEA,GAAG,GAAGjsF,GAAEA,IAAG,EAAE,MAAMA,EAAC,GAAG,CAAC,MAAM,QAAQisF,CAAC,EAAE,MAAM,IAAI,MAAM,+CAA+C,EAAE,OAAOA,EAAEA,EAAE,IAAK,SAASA,GAAE,CAAC,OAAO8D,EAAEG,EAAEjE,EAAC,CAAC,CAAC,CAAC,EAAG,KAAK,GAAG,EAAEjsF,GAAE+vF,EAAEG,EAAElwF,EAAC,CAAC,EAAEguJ,GAAG,IAAI/hE,EAAE,KAAKjsF,GAAE,IAAI,EAAE,IAAI,EAAE,IAAI+7J,GAAG/sE,EAAE,YAAY,cAAcA,EAAE,cAAc,UAAU,CAAC,OAAOomE,GAAGyF,EAAE,EAAE7rE,EAAE,YAAY,cAAcA,EAAE,cAAc,UAAU,CAAC,OAAOomE,GAAGyF,EAAE,EAAE,IAAImB,GAAGhtE,EAAE,YAAY,oBAAoBA,EAAE,oBAAoB,SAAS/C,EAAE,CAAC,OAAgB,OAAOA,EAAEA,GAAG,OAAtB,WAA8B4uE,GAAG5uE,GAAG,IAAI,EAAEgwE,GAAGjtE,EAAE,YAAY,oBAAoBA,EAAE,oBAAoB,UAAU,CAAC,OAAO6rE,EAAE,EAAEmB,GAAGh8J,EAAE,UAAU,EAAE,IAAI+6J,GAAG/rE,EAAE,YAAY,wBAAwB,SAAS/C,EAAE,CAAC,OAAOiE,EAAEjE,CAAC,CAAC,EAAE+uE,GAAGhsE,EAAE,YAAY,sBAAsB,SAAS/C,EAAE,CAAC,OAAO4D,IAAIztF,EAAE,SAAS6pF,EAAEyqE,GAAGrnE,CAAC,EAAE,SAAS,UAAUqnE,GAAGrnE,CAAC,EAAE,SAAS,YAAYa,EAAEjE,CAAC,CAAC,EAAEiwE,GAAGltE,EAAE,YAAY,8BAA8BA,EAAE,8BAA8B,SAAS/C,EAAE,CAAC,OAAO8D,EAAEgrE,GAAG9uE,CAAC,CAAC,CAAC,EAAEkwE,GAAGntE,EAAE,YAAY,4BAA4BA,EAAE,4BAA4B,SAAS/C,EAAE,CAAC,OAAO8D,EAAEirE,GAAG/uE,CAAC,CAAC,CAAC,EAAEytE,GAAG15J,EAAE,aAAa,MAAMgvF,EAAE,YAAY,eAAeA,EAAE,aAAa,UAAU,CAAC,OAAOyoE,GAAGiC,EAAE,CAAC,EAAE1qE,EAAE,YAAY,eAAeA,EAAE,aAAa,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAE,CAAC,OAAO6+J,GAAG5wH,GAAG,CAAC,IAAImjD,EAAE,IAAIjsF,GAAE,IAAIsH,GAAE,IAAIzM,GAAE,aAAa,OAAO,UAAU,CAAC,CAAC,EAAEmzJ,GAAG0L,EAAE,EAAE,IAAI,EAAE,IAAI0C,GAAGp8J,EAAE,WAAW,MAAMgvF,EAAE,YAAY,aAAaA,EAAE,aAAa,UAAU,CAAC,OAAOyoE,GAAG2E,EAAE,CAAC,EAAEptE,EAAE,YAAY,aAAaA,EAAE,aAAa,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAE,CAAC,OAAOuhK,GAAGtzH,GAAG,CAAC,IAAImjD,EAAE,IAAIjsF,GAAE,IAAIsH,GAAE,IAAIzM,GAAE,aAAa,OAAO,UAAU,CAAC,CAAC,EAAEmzJ,GAAGoO,EAAE,EAAE,IAAI,EAAE,IAAInB,GAAGj7J,EAAE,WAAW,MAAMq8J,GAAGrtE,EAAE,YAAY,aAAaA,EAAE,aAAa,UAAU,CAAC,OAAOyoE,GAAGwD,EAAE,CAAC,EAAEjsE,EAAE,YAAY,aAAaA,EAAE,aAAa,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAE,CAAC,OAAOogK,GAAGnyH,GAAG,CAAC,IAAImjD,EAAE,IAAIjsF,GAAE,IAAIsH,GAAE,IAAIzM,GAAE,aAAa,OAAO,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAIigK,GAAG96J,EAAE,UAAUs8J,GAAGttE,EAAE,YAAY,aAAaA,EAAE,aAAa,UAAU,CAAC,OAAO,WAAW8rE,IAAI,CAAC,CAAC,EAAE9rE,EAAE,YAAY,aAAaA,EAAE,aAAa,SAAS/C,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,+CAA+C,EAAE,OAAO6uE,GAAG7uE,EAAE,IAAI,EAAE,IAAI0tE,GAAG,EAAE3qE,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,EAAEA,EAAE,YAAY,WAAWA,EAAE,WAAW,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEgvF,EAAE,cAAc/C,CAAC,EAAE,GAAYjsF,KAAT,OAAW,MAAM,IAAI,MAAM,sBAAsBisF,EAAE,6EAA6E,EAAE,OAAO0tE,GAAG35J,GAAEguJ,GAAGhuJ,GAAE,IAAI,EAAE,IAAI,EAAE,IAAI45J,GAAG,EAAE5qE,EAAE,YAAY,YAAYA,EAAE,YAAY,SAAS/C,EAAE,CAAC,IAAIjsF,GAAEgvF,EAAE,cAAc/C,CAAC,EAAE,GAAYjsF,KAAT,OAAW,MAAM,IAAI,MAAM,uBAAuBisF,EAAE,6EAA6E,EAAE,OAAO2tE,GAAG55J,GAAEguJ,GAAGhuJ,GAAE,IAAI,EAAE,IAAI,EAAEgvF,EAAE,YAAY,kBAAkBA,EAAE,YAAY,cAAcA,EAAE,kBAAkBA,EAAE,cAAc,SAAS/C,EAAE,CAAC,GAAGA,EAAEA,GAAG,EAAE,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,oDAAoD,EAAE,OAAO+hE,GAAGj+D,EAAEG,EAAEjE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE+C,EAAE,OAAOtiE,GAAEsiE,EAAE,UAAU,SAAS/C,EAAE,EAAEA,EAAY,OAAOA,GAAjB,SAAmBqqE,GAAGC,GAAGtqE,CAAC,CAAC,EAAEswE,GAAG,KAAKtwE,CAAC,GAAG,OAAOuqE,EAAE,IAAIxI,GAAG,IAAI/hE,EAAE,GAAG,KAAK,EAAEuqE,GAAGvqE,EAAE,EAAE,IAAIswE,GAAG,SAAStwE,EAAEjsF,GAAE,CAAC,GAAG,CAACisF,GAAG,CAACsqE,GAAGtqE,CAAC,EAAE,CAAC,IAAI3kF,GAAE,GAAG,QAAQzM,MAAKy7J,GAAG,GAAGA,GAAG,eAAez7J,EAAC,GAAGy7J,GAAGz7J,EAAC,EAAE,OAAOmF,EAAC,EAAE,CAACsH,GAAE,GAAG,KAAK,CAAC,GAAGA,GAAEtH,GAAEs2J,GAAGz7J,EAAC,MAAM,CAAC,IAAItC,GAAE,MAAM,OAAO,KAAK+9J,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,EAAEA,GAAG/9J,EAAC,EAAEyH,GAAEA,GAAE,GAAGzH,EAAC,CAAC,OAAO0zF,IAAIsqE,GAAGtqE,CAAC,EAAEjsF,GAAE,IAAI22J,GAAG,QAAQ,YAAY32J,EAAC,EAAEA,EAAC,CAAC,EAAEgvF,EAAE,UAAU,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOu8J,GAAGtwE,EAAEjsF,EAAC,EAAE,IAAI,EAAEgvF,EAAE,kBAAkB,UAAU,CAAC,OAAOg/D,GAAG,GAAG,EAAEmI,GAAG,KAAK,CAAC,IAAIN,GAAG,KAAKT,GAAG,MAAM6F,EAAE,CAAC,EAAE,IAAI,EAAEjsE,EAAE,qBAAqB,UAAU,CAACg/D,GAAG,GAAG,EAAE,IAAI/hE,EAAEkqE,GAAG,MAAM,OAAON,GAAG5pE,EAAE,IAAImpE,GAAGnpE,EAAE,KAAKgvE,GAAGhvE,EAAE,MAAMuqE,GAAG,KAAK,IAAI,EAAExnE,EAAE,+BAA+B,SAAS/C,EAAE,CAAC,OAAO+hE,GAAG/hE,EAAE,WAAW,KAAK,EAAE,IAAI,EAAE+C,EAAE,QAAQ,SAAS/C,EAAE,CAAC,OAAO+hE,GAAG,IAAI/hE,CAAC,EAAE,IAAI,EAAE,IAAI+qE,GAAG,SAAS/qE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAE2kF,GAAG,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAO3kF,EAAC,EAAE,IAAI,SAAS2kF,GAAE,CAAC,MAAMA,EAAC,IAAI3kF,GAAE,WAAW2kF,EAAC,EAAE,CAAC,CAAC,EAAE,IAAIpxF,GAAEmF,IAAG,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAOnF,EAAC,EAAE,IAAI,SAASoxF,GAAE,CAAC,MAAMA,EAAC,IAAIpxF,GAAE,WAAWoxF,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI1zF,GAAE,KAAK,OAAO,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAOA,EAAC,EAAE,IAAI,SAAS0zF,GAAE,CAAC1zF,GAAE0zF,GAAE,SAAU,EAAC,CAAC,EAAE,IAAI,EAAEgrE,GAAG,SAAShrE,EAAEjsF,GAAEsH,GAAEzM,GAAE,CAACm8J,GAAG,KAAK,KAAK/qE,EAAEjsF,EAAC,EAAE,KAAK,KAAK,OAAO,IAAIzH,GAAE+O,IAAG,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAO/O,EAAC,EAAE,IAAI,SAAS0zF,GAAE,CAAC,MAAMA,EAAC,IAAI1zF,GAAE,WAAW0zF,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI99E,GAAEtT,IAAG,EAAE,OAAO,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC,OAAOsT,EAAC,EAAE,IAAI,SAAS89E,GAAE,CAAC,MAAMA,EAAC,IAAI99E,GAAE,WAAW89E,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAEuwE,GAAG,UAAU,CAAC,KAAK,KAAK/F,GAAG,KAAK,YAAYpnE,EAAE,KAAK,MAAMslE,GAAG,MAAM,CAAC,EAAE,KAAK,aAAa+B,GAAG,MAAM,CAAC,EAAE,KAAK,EAAEZ,GAAG,KAAK,EAAEC,GAAG,KAAK,OAAOC,GAAG,KAAK,MAAMyG,GAAGptE,CAAC,EAAE,KAAK,OAAOglE,GAAGhlE,CAAC,EAAE,KAAK,kBAAkBulE,GAAG,KAAK,GAAG,GAAG,KAAK,aAAa,EAAE,EAAE4H,GAAG,UAAU,QAAQ,UAAU,CAAC/F,GAAG,KAAK,KAAKpnE,EAAE,KAAK,YAAYqnE,GAAG,KAAK,aAAa/B,GAAG,KAAK,MAAMmB,GAAG,KAAK,EAAEC,GAAG,KAAK,EAAEC,GAAG,KAAK,OAAO0G,GAAGrtE,EAAE,KAAK,KAAK,EAAEstE,GAAGttE,EAAE,KAAK,MAAM,EAAEulE,GAAG,KAAK,iBAAiB,EAAE,IAAIyC,GAAG,SAASprE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAACw+J,GAAG,KAAK,IAAIyF,EAAE,EAAE/F,GAAGpnE,EAAE,EAAEslE,GAAG,CAAE,EAACmB,GAAG7pE,EAAE8pE,GAAG/1J,GAAEg2J,GAAGz9J,GAAE8gK,GAAG,CAAC/xJ,GAAEzM,EAAC,CAAC,CAAC,EAAE+hK,GAAG,SAAS3wE,EAAE,CAAC,GAAG6qE,GAAG7qE,CAAC,EAAE8qE,GAAG,MAAM,QAAS,MAAK,CAAC,IAAI/2J,GAAE,IAAIw8J,GAAGl1J,GAAE,MAAM,OAAO,KAAKuvJ,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE72J,GAAE,GAAGsH,GAAEwvJ,GAAG7qE,CAAC,EAAE3kF,GAAEuvJ,GAAGvvJ,EAAC,EAAEtH,GAAE22J,GAAG,QAAQ,gBAAgB32J,EAAC,EAAE+2J,GAAG,IAAK,EAAC,QAAO,CAAE,CAAC,EAAE,QAAQ8F,MAAM7tE,EAAE,gBAAgB,SAAS/C,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,GAAE,CAAC,OAAO8+J,GAAGprE,EAAEjsF,GAAEsH,GAAEzM,GAAEtC,EAAC,EAAE,IAAI,EAAEy2F,EAAE,cAAc,SAAS/C,EAAE,CAAC,OAAO2wE,GAAG3wE,CAAC,EAAE,IAAI,EAAE+C,EAAE,aAAa,SAAS/C,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEuvJ,GAAGC,GAAG7qE,CAAC,CAAC,EAAE,OAAO+hE,GAAG,GAAG,EAAEA,GAAGhuJ,GAAE,SAAU,EAAC,KAAK,EAAEguJ,GAAG,IAAI1mJ,GAAE,GAAG,KAAK,EAAE0mJ,GAAG,GAAG,EAAE,IAAI,EAAEh/D,EAAE,cAAc,SAAS/C,EAAE,CAAC,IAAIjsF,GAAE62J,GAAGC,GAAG7qE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAEjsF,GAAE,EAAE,EAAEA,GAAE,EAAE,MAAMA,GAAE,MAAM,OAAOA,GAAE,OAAO,OAAOA,GAAE,MAAM,CAAC,EAAEgvF,EAAE,KAAK,SAAS/C,EAAEjsF,GAAE,CAAC,OAAOisF,EAAEA,GAAG,iBAAiBjsF,GAAEA,IAAG,CAAE,GAAE,cAAcA,GAAE,eAAe,GAAQA,GAAE,gBAAP,IAAsB/C,GAAEq9J,GAAGD,GAAI,GAAEpuE,CAAC,EAAc,OAAOhvF,GAAE,QAArB,YAA6BpC,GAAE,YAAY,WAAWoC,GAAE,OAAO,GAAG,EAAE,MAAM,IAAI,QAAS,SAAS+C,GAAEsH,GAAE,CAAC,GAAG,CAAC,IAAI/O,GAAE0E,GAAEq9J,GAAGD,GAAI,GAAEpuE,CAAC,EAAc,OAAOhvF,GAAE,QAArB,YAA6BpC,GAAE,YAAY,WAAWoC,GAAE,OAAO,GAAG,EAAE+C,GAAEzH,EAAC,CAAC,OAAO0zF,GAAE,CAAC3kF,GAAE2kF,GAAE,OAAO,CAAC,CAAC,CAAC,CAAE,EAAEioE,GAAE,IAAIA,GAAE,IAAI,eAAe2I,EAAE,IAAeA,KAAX,UAAe3I,GAAE,IAAI,OAAO,OAAO,SAASjoE,EAAEjsF,GAAE,CAAC,IAAIsH,GAAEzM,GAAEtC,GAAE,IAAIA,GAAEyH,GAAE,OAAO,EAAOzH,KAAL,GAAOA,KAAI+O,GAAEtH,GAAEzH,EAAC,EAAE,CAAC,EAAEsC,GAAEmF,GAAEzH,EAAC,EAAE,CAAC,EAAE0zF,EAAE,UAAU,MAAMA,EAAE,CAAC3kF,EAAC,EAAE,OAAmB,OAAOzM,IAAnB,WAAqB,CAACA,EAAC,EAAEA,EAAC,CAAC,CAAC,EAAE87J,GAAGzC,GAAE,IAAI,MAAM,EAAEllE,EAAE6tE,EAAE,EAAE3I,GAAE,IAAI2I,EAAE,GAAG,IAAIJ,GAAGztE,EAAE,aAAa,SAAS/C,EAAE,CAAC,OAAOyqE,GAAGzqE,EAAEA,GAAGoD,CAAC,EAAE,SAAS,UAAUqnE,GAAGzqE,CAAC,EAAE,SAAS,aAAamoE,EAAE,EAAEsI,GAAG1tE,EAAE,aAAa,SAAS/C,EAAEjsF,GAAE,CAAC02J,GAAGzqE,CAAC,EAAE,SAAS,UAAUjsF,GAAEo0J,GAAGsC,GAAGzqE,CAAC,EAAE,SAAS,WAAW,EAAEooE,GAAGrlE,EAAE,cAAc,SAAS/C,EAAE,CAAC,OAAOyqE,GAAGzqE,EAAEA,GAAGoD,CAAC,EAAE,SAAS,UAAUqnE,GAAGzqE,CAAC,EAAE,SAAS,aAAamoE,EAAE,EAAEuI,GAAG3tE,EAAE,cAAc,SAAS/C,EAAEjsF,GAAE,CAAC02J,GAAGzqE,CAAC,EAAE,SAAS,UAAUjsF,GAAEo0J,GAAGsC,GAAGzqE,CAAC,EAAE,SAAS,WAAW,EAAE,OAAO+C,EAAE,SAAS,CAAC,UAAUoqE,GAAG,SAASrK,GAAG,QAAQ8M,GAAG,YAAYvG,GAAG,aAAagH,GAAG,aAAaD,GAAG,cAAcN,GAAG,oBAAoBE,GAAG,aAAaH,GAAG,MAAM5G,GAAG,wBAAwB6F,GAAG,sBAAsBC,GAAG,oBAAoBkB,GAAG,4BAA4BC,GAAG,YAAY,GAAG,UAAU7E,GAAG,oBAAoBE,GAAG,kBAAkBzC,GAAG,uBAAuBwC,GAAG,WAAWG,GAAG,UAAUC,GAAG,OAAOhB,GAAG,YAAYvC,GAAG,SAAS,CAAC,SAAS,UAAU,CAAC,OAAOqI,GAAGptE,CAAC,CAAC,EAAE,SAAS,SAASpD,EAAE,CAACywE,GAAGrtE,EAAEpD,CAAC,CAAC,EAAE,UAAU,UAAU,CAAC,OAAOooE,GAAGhlE,CAAC,CAAC,EAAE,UAAU,SAASpD,EAAE,CAAC0wE,GAAGttE,EAAEpD,CAAC,CAAC,CAAC,EAAE,kBAAkB9qE,EAAE,WAAWozI,GAAG,aAAakG,GAAG,OAAOF,GAAG,iBAAiBT,GAAG,MAAMnF,GAAG,IAAI3G,GAAG,GAAGnO,EAAE,GAAG,EAAE,YAAY6a,GAAG,mBAAmBC,GAAG,mBAAmBC,GAAG,cAAcrrE,EAAE,MAAMynE,GAAG,UAAUC,GAAG,OAAO9C,GAAG,UAAUqG,EAAE,EAAE,OAAO,eAAexrE,EAAE,SAAS,SAAS,QAAQ,CAAC,IAAI,UAAU,CAAC,OAAOytE,GAAGptE,CAAC,CAAC,EAAE,IAAI,SAASpD,EAAE,CAACywE,GAAGrtE,EAAEpD,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,eAAe+C,EAAE,SAAS,SAAS,SAAS,CAAC,IAAI,UAAU,CAAC,OAAOqlE,GAAGhlE,CAAC,CAAC,EAAE,IAAI,SAASpD,EAAE,CAAC0wE,GAAGttE,EAAEpD,CAAC,CAAC,EAAE,WAAW,GAAG,aAAa,EAAE,CAAC,EAAEgtE,GAAG,KAAKjqE,EAAEmmE,EAAE,EAAEU,GAAG,KAAK0D,GAAGzuJ,EAAEvS,CAAC,EAAEo+J,GAAG,QAAQ,aAAa,EAAE3nE,CAAC,CAACS,GAAE,UAAU,aAAa,SAAS,EAAE,CAAC,OAAO,OAAO,aAAa,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAEA,GAAE,UAAU,YAAY,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAK,SAASxD,EAAE,CAAC,OAAO,KAAK,IAAIA,EAAE,WAAW,CAAC,GAAG,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,EAAG,KAAK,EAAE,CAAC,EAAEwD,GAAE,UAAU,WAAW,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAE,EAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,KAAK,OAAO,aAAa,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAEA,GAAE,UAAU,qBAAqB,SAAS,EAAE,EAAE,CAAC,OAAOP,GAAE9sF,GAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEqtF,GAAE,UAAU,UAAU,SAAS,EAAE,EAAE,CAAC,IAAI,EAAErtF,GAAE,KAAK,cAAc,OAAO,aAAa,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,SAAS6pF,EAAE,CAAC,OAAOiD,GAAE,EAAEjD,CAAC,CAAC,CAAC,EAAEv/D,GAAE,UAAU,OAAO,SAAS1sB,EAAE,CAAC,IAAIsH,EAAEzM,EAAE,yBAAyB,GAAG,CAACmF,GAAGisF,GAAEjsF,CAAC,IAAIisF,GAAE,IAAI,EAAE,MAAM,GAAG,IAAI1zF,EAAE,EAAE,IAAI+O,KAAK,KAAK,GAAG,EAAEzM,EAAE,QAAQyM,CAAC,GAAG,GAAG,CAA0D,GAAtD,KAAK,eAAeA,CAAC,GAAG,CAACtH,EAAE,eAAesH,CAAC,GAAc,KAAKA,CAAC,IAAItH,EAAEsH,CAAC,EAAE,MAAM,GAAG/O,GAAG,CAAC,IAAI+O,KAAKtH,EAAEA,EAAE,eAAesH,CAAC,GAAGzM,EAAE,QAAQyM,CAAC,EAAE,GAAG/O,IAAI,OAAWA,IAAJ,CAAK,EAAE27J,GAAE,IAAI,CAAC,OAAO,EAAE,EAAEA,GAAE,QAAQ,QAAQ,IAAItkE,GAAEskE,GAAE,IAAIlkE,GAAE,EAAE6vD,GAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,MAAM,MAAM,EAAE,QAAQ,MAAM,KAAK,EAAE,QAAQ,MAAM,KAAK,CAAC,EAAEzwD,GAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,QAAQ,IAAI,EAAE,QAAQ,QAAQ,GAAG,EAAE,QAAQ,QAAQ,GAAG,CAAC,EAAEc,GAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAER,GAAE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAEE,GAAE,aAAa,GAAG,IAAIJ,GAAE,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,OAAO,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,YAAY,CAAC,EAAEY,GAAE,SAAS,EAAE,CAAC,OAAO,EAAEJ,EAAC,EAAEG,GAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI0kE,GAAG,EAAEc,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,EAAEA,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAOzlE,GAAE,CAAC,CAAC,EAAE,OAAOA,GAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAED,IAAEL,GAAE,aAAa,OAAO,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,2DAA2D,EAAE,OAAO,GAAG,GAAG,CAAC,EAAE0kE,IAAE1kE,GAAE,aAAa,SAAS,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,6DAA6D,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE,EAAEU,IAAEV,GAAE,aAAa,OAAO,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,2DAA2D,EAAE,OAAW,EAAE,GAAG,EAAK,EAAF,CAAG,EAAE4kE,GAAE5kE,GAAE,aAAa,aAAa,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,iEAAiE,EAAE,OAAOU,IAAE,EAAE,EAAE,CAAC,CAAC,EAAEC,GAAEX,GAAE,aAAa,aAAa,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,iEAAiE,EAAE,OAAOK,IAAE,EAAE,EAAE,CAAC,CAAC,EAAEI,GAAET,GAAE,aAAa,eAAe,SAAS,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,MAAM,IAAI,MAAM,mEAAmE,EAAE,OAAO0kE,IAAE,EAAE,EAAE,CAAC,CAAC,EAAEjlE,IAAEO,GAAE,aAAa,qBAAqB,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,SAAS,wBAAwB,EAAE,EAAE,SAAS,sBAAsB,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE71F,EAAE,CAAE,EAAC,OAAOA,EAAE,YAAY,EAAE,CAAC,GAAG,EAAEA,EAAE,YAAY,EAAE,EAAE,CAAC,GAAG,EAAEA,EAAE,aAAa,EAAE,EAAE,CAAC,GAAG,EAAEA,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,OAAOm2F,GAAEn2F,EAAE,WAAW,CAAC,EAAE,OAAOm2F,GAAEn2F,EAAE,WAAW,CAAC,EAAE,OAAOm2F,GAAEn2F,EAAE,YAAY,CAAC,EAAE,OAAOm2F,GAAEn2F,EAAE,YAAY,CAAC,CAAC,CAAC,EAAEy2F,IAAE,SAAS,EAAE,CAAC,GAAG,EAAE,wBAAwB,OAAO,EAAE,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,CAAE,EAAC,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE36D,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,SAAS,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,SAAS,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,YAAY,kBAAkB,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,IAAIq6D,GAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,KAAK,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,IAAI,EAAEC,GAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,CAAC,EAAEt6D,GAAG,SAAS,EAAE,EAAE,CAAC,IAAI,EAAM,EAAE,WAAN,EAAe,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,KAAK,GAAG,SAAS,EAAE,EAAE,GAAG,GAAQ,EAAO,EAAE,OAAO,EAAE,CAAC,GAAjB,IAAmB,EAAE,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,CAAC,GAA3D,IAA6D,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,IAAK,SAASo2D,EAAE,CAAC,OAAOA,EAAE,MAAM;AAAA,CAAI,CAAC,CAAG,EAAC,EAAE,IAAK,SAASA,EAAE,CAAC,MAAM,CAACA,CAAC,CAAC,CAAG,EAAC,IAAI,EAAE,EAAE,EAAE0pE,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAEA,GAAG,SAAS,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI57J,EAAE,SAASiG,EAAEsH,EAAEzM,EAAE,CAAC,GAAGmF,EAAE,EAAE,EAAE,OAAO,CAAC,IAAImO,EAAE7G,EAAE,IAAI,EAAEtH,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO6uJ,GAAG1gJ,EAAE,EAAEtT,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAIoxF,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,IAAI,IAAI,EAAEvrE,EAAEzjB,EAAE4xJ,GAAG,IAAI,EAAE,CAAC,EAAE,OAAO9/D,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE9xF,GAAG,EAAEo9B,EAAE00D,GAAG,EAAE,EAAE,EAAE36D,EAAE,EAAEjT,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC,EAAE;AAAA,EAAa,GAAG,oBAAoB0tI,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gBAAgB,EAAE;AAAA,EAAK,KAAK,CAAC,QAAQjyJ,EAAE,GAAGwR,EAAE,EAAE4gF,EAAE,EAAEA,EAAE,EAAE,OAAOA,IAAI,GAAG,EAAE,eAAeA,CAAC,EAAE,CAAC,IAAI/wB,EAAE,GAAG,GAAO,EAAE+wB,CAAC,EAAE,SAAT,GAAiB7tE,IAAI,EAAE6tE,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI/xF,EAAE,IAAImR,EAAE,GAAG,EAAE,EAAE,SAAS69E,EAAErvF,GAAG,EAAEoyF,CAAC,EAAE7tE,CAAC,EAAE88C,EAAE,GAAG7pC,EAAE46D,EAAEA,GAAG,KAAK,CAACpyF,GAAQA,GAAG,EAAEoyF,CAAC,EAAE7tE,CAAC,EAAE,KAAK,OAAOvkB,EAAE,OAAO,CAAC,GAAvC,IAAyCA,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAEA,EAAE,IAAI2yF,EAAE,SAASP,CAAC,EAAEW,EAAE51F,EAAEw1F,EAAE3yF,EAAE,CAAC,EAAEqyF,EAAED,GAAG,EAAE,OAAO,EAAE,GAAGW,GAAG,CAACV,EAAE,CAACryF,GAAG,IAAIukB,EAAE,EAAE,QAAQ,CAAC,GAAGwuE,GAAGV,GAAG,GAAGA,EAAE76D,EAAEm7D,UAAU,EAAE,YAAYtyF,EAAE,IAAImR,EAAE,GAAG,EAAE,EAAE,SAAS69E,MAAM,CAA4B,GAAxB,CAAC,EAAE,YAAyBhvF,EAAE,IAAImR,EAAE,GAAG,EAAE,EAAE,SAAS69E,EAAE73D,EAAEm7D,CAAC,CAAC,CAAC,QAAQntF,EAAE,GAAGytF,EAAE,EAAEA,GAAGz7D,EAAEy7D,IAAI,CAAC,IAAI/1F,EAAE,EAAE+1F,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAGA,IAAIz7D,EAAE,CAAChyB,GAAGtI,EAAEqnB,CAAC,EAAE,IAAIA,GAAGA,EAAE,GAAGrnB,EAAE,OAAO,QAAQ,CAAC,GAAG+1F,IAAI,EAAE,CAACztF,GAAGtI,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC,CAACsI,GAAGtI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAOsI,EAAOA,EAAE,OAAOA,EAAE,OAAO,CAAC,GAAxB,IAA0BA,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAEA,EAAEse,EAAEmuI,GAAGzsJ,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAAW,KAAI,QAAQ,EAAE,EAAEse,EAAE,EAAE,MAAM,IAAI,SAAS,GAAG,EAAEA,GAAG,EAAE,MAAM,IAAI,OAAO,QAAQ,EAAE,CAAC,CAAC,GAAGwvE,GAAE,CAAC,EAAE,IAAIA,GAAE71D,CAAC,EAAE;AAAA,EAAQ,GAAG,IAAIwlH,GAAEz9I,CAAC,EAAE;AAAA,EAAS,GAAG,CAAC8tF,GAAE,CAAC,EAAE;AAAA,EAAU71D,EAAE,EAAE,EAAE,GAAG3Z,EAAE,EAAE,EAAEu9C,EAAE7pC,EAAEA,EAAE,EAAEhmB,IAAIxR,EAAE,EAAE,CAAM,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAEiyJ,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,SAAS,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,mBAAmB,IAAI,CAAC,KAAK,EAAE,SAAS,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC,EAAE4F,IAAG,CAAC,OAAO,CAAE,EAAC,OAAO,CAAE,EAAC,uBAAuB,KAAK,WAAW,GAAG,SAAS,KAAK,cAAc,EAAE,EAAEtI,IAAG,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,YAAY,OAAO,CAAC,EAAW,EAAE,SAAS,YAAY,EAAE,IAAI,EAAE,YAAY,YAAY,KAAM,SAASlgE,EAAE,CAAC,OAAOA,EAAE,OAAO,EAAE,MAAMA,EAAE,SAAS,EAAE,MAAM,CAAC,IAA9H,QAAkI,EAAE,SAAS,YAAY,EAAE,IAAI,EAAE,YAAY,YAAY,KAAK,CAAC,CAAC,EAAEslE,IAAG,SAASvxJ,EAAEsH,EAAE,CAAC,QAAQzM,KAAKmF,EAAE,GAAGA,EAAE,eAAenF,CAAC,EAAE,CAAC,IAAItC,EAAEsC,EAAEsT,EAAEnO,EAAEnF,CAAC,EAAEyM,EAAE,SAAS,uBAAuB6G,EAAE,MAAM,EAAE,EAAa89E,GAAE99E,CAAC,IAAd,UAA6B,OAAOA,EAAE,WAArB,YAAgCA,EAAE,UAAW,EAAC,OAAOnO,EAAEzH,CAAC,CAAC,CAAC,EAAEm8J,IAAG,SAAS10J,EAAEsH,EAAE,CAAC,GAAGA,EAAE,MAAMtH,EAAWA,EAAE,WAAX,SAA+BA,EAAE,SAAS,iBAApB,QAAyCA,EAAE,SAAS,eAAe,gBAA/B,IAA8C,CAAC,GAAGguJ,GAAG,SAAS,EAAEhuJ,EAAE,SAAS,eAAe,KAAK,MAAM,KAAK,UAAUy0J,GAAE,CAAC,EAAEz0J,EAAE,SAAS,eAAe,uBAAuB,MAAM,IAAI,MAAM,6CAA6C,EAAEgwF,GAAEhwF,EAAE,SAAS,YAAYA,EAAE,SAAS,eAAe,uBAAuB,IAAIi1J,GAAGj1J,EAAE,SAAS,eAAe,uBAAuB,MAAMA,EAAEA,EAAE,SAAS,eAAe,uBAAuB,SAASA,EAAE,SAAS,OAAO,UAAU,mBAAoB,UAAU,EAAE,SAASisF,EAAE,CAACA,EAAE,SAAS,OAAO,YAAYA,EAAE,SAAS,eAAe,uBAAuB,QAAQ,EAAE,OAAOA,EAAE,SAAS,eAAe,uBAAuB,SAASA,EAAE,SAAS,eAAe,WAAW,EAAE,GAAEjsF,CAAC,CAAC,CAAG,EAACA,EAAE,SAAS,OAAO,UAAU,gBAAiB,UAAU,EAAE,SAASisF,EAAE,CAACA,EAAE,SAAS,eAAe,uBAAuB,MAAM,OAAO,IAAIjsF,EAAEisF,EAAE,SAAS,eAAe,uBAAuB,OAAO,QAAQ3kF,KAAKtH,EAAE,GAAGA,EAAE,eAAesH,CAAC,EAAE,CAAC,IAAIzM,EAAEmF,EAAEsH,CAAC,EAAEzM,EAAE,MAAM,OAAOA,EAAE,eAAesxJ,IAAGtxJ,EAAEoxF,CAAC,CAAC,CAAC,GAAEjsF,CAAC,CAAC,CAAC,EAAGA,EAAE,SAAS,OAAO,UAAU,aAAc,UAAU,EAAE,SAASisF,EAAE,CAAC,GAAYA,EAAE,SAAS,eAAe,yBAAnC,OAA0D,MAAM,IAAI,MAAM,mCAAmC,EAAEA,EAAE,SAAS,MAAM,aAAaA,EAAE,SAAS,eAAe,uBAAuB,MAAM,MAAM,CAAC,GAAEjsF,CAAC,CAAC,CAAG,EAACA,EAAE,SAAS,OAAO,UAAU,eAAgB,SAAS,EAAE,EAAE,SAASA,EAAEsH,EAAE,CAAC,IAAIzM,EAAE,CAACmF,EAAE,QAAQzH,KAAKyH,IAAIsH,EAAE,SAAS,uBAAuBA,EAAE,SAAS,eAAe,uBAAuB,MAAM,EAAE,EAAEA,EAAE,SAAS,eAAe,uBAAuB,UAAW,GAAEtH,EAAEA,GAAGsH,EAAE,SAAS,eAAe,uBAAuB,KAAK,GAAGtH,EAAE,eAAezH,CAAC,EAAE,CAAC,IAAI4V,EAAEnO,EAAEzH,CAAC,EAAEo+C,EAAE,CAAE,EAAC7rC,EAAEqD,EAAE,KAAK,GAAGA,EAAE,OAAOA,EAAE,KAAKkhF,IAAElhF,EAAE,KAAK7G,CAAC,GAAGA,EAAE,SAAS,uBAAuB6G,EAAE,MAAM,EAAE,EAAEA,EAAE,GAAGwnJ,GAAG,8BAA8BxnJ,CAAC,EAAa89E,GAAE99E,CAAC,IAAd,UAA6B,OAAOA,EAAE,0BAArB,aAAgDwoC,EAAExoC,EAAE,yBAA0B,GAAEA,EAAE,KAAKrD,EAAEqD,EAAE,qBAAqB,CAACA,EAAE,wBAAwB,CAAC,IAAIpU,EAAEy2F,IAAEriF,CAAC,EAAEwoC,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,QAAQ58C,EAAE,IAAI,CAAC,EAAEuN,EAAE,SAAS,eAAe,OAAO,KAAKvN,CAAC,CAAC,CAAC,GAAGoU,EAAE,wBAAwB,CAAC,IAAIqc,EAAE,GAAG,QAAQ9J,KAAKvS,EAAE,wBAAwB,GAAGA,EAAE,wBAAwB,eAAeuS,CAAC,EAAE,CAAC,IAAIzjB,EAAEkR,EAAE,wBAAwBuS,CAAC,EAAE,GAAG8J,GAAG,IAAI9J,EAAE,IAAI8J,GAAG,KAAK,OAAO,KAAKvtB,CAAC,EAAE,QAAQ,GAAG,MAAM,QAAQA,CAAC,GAAG,QAAQ1E,KAAK0E,EAAE,GAAGA,EAAE,eAAe1E,CAAC,EAAE,CAAC,IAAIw2F,EAAE9xF,EAAE1E,CAAC,EAAc,OAAOw2F,GAAnB,aAAuBA,EAAEA,EAAE,KAAKznF,EAAE6G,CAAC,GAAGqc,GAAG,IAAIjyB,EAAE,IAAIw2F,EAAE,IAAIznF,EAAE,SAAS,eAAe,OAAO,QAAQynF,CAAC,GAAG,GAAGznF,EAAE,SAAS,eAAe,OAAO,KAAKynF,CAAC,CAAC,OAAkB,OAAOA,EAAE9xF,IAArB,aAA0B8xF,EAAEA,EAAE,KAAKznF,EAAE6G,CAAC,GAAGqc,GAAG,IAAIjyB,EAAE,IAAIw2F,EAAEznF,EAAE,SAAS,eAAe,OAAO,QAAQynF,CAAC,GAAG,GAAGznF,EAAE,SAAS,eAAe,OAAO,KAAKynF,CAAC,EAAEvkE,GAAG,IAAI,CAACmsB,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM;AAAA,EAAOnsB,EAAE,IAAI,CAAC,CAAC,CAACljB,EAAE,SAAS,UAAU,CAAC,oBAAoBqvC,EAAE,SAASxoC,EAAE,KAAK,CAAC,EAAE7G,EAAE,SAAS,IAAI,QAAQ,CAAC,CAACzM,GAAG02J,IAAGjqJ,EAAE,SAAS,eAAe,OAAOA,CAAC,CAAC,GAAE,EAAEtH,CAAC,CAAC,CAAG,EAACA,EAAE,SAAS,eAAe,cAAc,EAAE,CAAC,EAAE20J,GAAG/kE,GAAE,aAAa,gBAAgB,SAAS5vF,EAAEsH,EAAEzM,EAAE,CAAC,IAAItC,EAAE,SAAS0zF,EAAE,CAAC,OAAOA,CAAC,EAAE,GAAG,MAAM,QAAQjsF,CAAC,EAAE,CAAC,QAAQmO,EAAE,IAAIwoC,EAAE,EAAEA,EAAE32C,EAAE,OAAO22C,IAAI,OAAWA,IAAJ,IAAQxoC,GAAG,KAAK89E,GAAEjsF,EAAE22C,CAAC,CAAC,EAAG,KAAI,UAAU,IAAI,SAAS,IAAI,SAASxoC,GAAGnO,EAAE22C,CAAC,EAAE,SAAU,EAAC,MAAM,IAAI,SAAe32C,EAAE22C,CAAC,EAAE,OAAO,EAAE,CAAC,IAArB,KAAiCrvC,IAAT,QAAYzM,IAAItC,EAAEsC,EAAE,SAAS,aAAayM,CAAC,GAAG6G,GAAG,IAAI0xI,GAAEtnJ,EAAEyH,EAAE22C,CAAC,EAAE,SAAQ,CAAE,CAAC,EAAE,KAAKxoC,GAAGnO,EAAE22C,CAAC,EAAE,SAAQ,CAAE,CAAC,OAAOxoC,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,+DAA+D,CAAC,EAAMm+I,GAAG,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,SAASrgE,EAAE,CAAC,OAAOA,CAAC,EAAE,OAAgB,IAAT,QAAY,IAAI,EAAE,EAAE,SAAS,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,SAAU,EAAC,EAAE,IAAI4zD,GAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE+U,GAAG,UAAU,CAAC,KAAK,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,eAAe,KAAK,QAAQ,CAAC,IAAI,UAAU,CAAC,GAAY,KAAK,SAAd,OAAqB,CAAC,GAAY,KAAK,QAAd,OAAoB,OAAO,KAAK,OAAO,KAAK,MAAM,SAAS,kBAAiB,CAAE,CAAC,OAAO,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,MAAM,KAAK,OAAO,SAAS,EAAE,CAAC,CAAC,EAAEA,GAAG,UAAU,SAAS,UAAU,CAAC,OAAO,KAAK,MAAM,MAAM,EAAEA,GAAG,UAAU,UAAU,UAAU,CAAC,IAAI,EAAE,KAAK,yBAAwB,EAAG,KAAK,MAAM,SAAS,UAAU,CAAC,KAAK,KAAK,OAAO,oBAAoB,EAAE,SAAS,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,EAAEA,GAAG,UAAU,yBAAyB,UAAU,CAAC,IAAI,EAAE,CAAE,EAAC,EAAE,OAAO,oBAAoB,IAAI,EAAE,OAAQ,SAAS3oE,EAAE,CAAC,OAAiBA,GAAX,WAAyCA,GAA3B,2BAAuCA,GAAT,SAAqBA,GAAT,SAAiBA,EAAE,UAAU,EAAE,CAAC,GAApB,GAAqB,CAAC,EAAG,QAAQ,KAAK,EAAE,GAAQ,OAAO,yBAAyB,KAAK,EAAE,CAAC,CAAC,EAAE,eAAhD,GAA6D,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,MAAM,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM0oE,GAAG,EAAE,KAAK,MAAM,KAAK,KAAK,CAAC,CAAC,EAAE,aAAaC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC,GAAe,OAAO,GAAnB,YAAsB,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAIC,GAAG,UAAU,CAACD,GAAG,KAAK,IAAI,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,MAAM,WAAW,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,MAAM,QAAQ,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,eAAe,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS3oE,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,YAAY,CAAC,MAAM,QAAQ,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,eAAe,KAAK,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,SAASjsF,EAAE,CAAC,EAAEA,EAAE,KAAM,GAAE,IAAI,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAAEwvF,GAAEqlE,GAAGD,EAAE,EAAE,IAAIK,GAAG,UAAU,CAACL,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI50J,EAAE,SAASisF,EAAE,CAAC,OAAOA,CAAC,EAAE,OAAO,KAAK,QAAQjsF,EAAE,KAAK,MAAM,SAAS,aAAa,KAAK,KAAK,GAAG,IAAI6/I,GAAE7/I,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,CAAC,EAAEwvF,GAAEylE,GAAGL,EAAE,EAAE,IAAI5G,GAAG,SAAS,GAAG,CAAC4G,GAAG,KAAK,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS3oE,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,kBAAkBA,EAAE,6BAA6B,EAAE,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,kBAAkB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQuoE,GAAE,EAAE,CAAC,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,EAAEsE,GAAE,EAAE,CAAC,EAAE,KAAK,EAAEF,GAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASpE,EAAE,CAAC,GAAG,MAAMA,CAAC,EAAE,MAAM,IAAI,MAAM,kBAAkBA,EAAE,8BAA8B,EAAE,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAE,EAAC,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAO,EAAE,SAAN,EAAa,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAWA,IAAT,OAAWA,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,OAAOA,EAAG,KAAI,OAAO,IAAI,MAAM,IAAI,MAAM,IAAI,OAAO,EAAEA,EAAE,MAAM,QAAQ,MAAM,IAAI,MAAM,kBAAkBA,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,gBAAgBspE,GAAG,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,IAAIv1J,EAAE,SAASisF,EAAE,CAAC,OAAOA,CAAC,EAAE,OAAO,KAAK,QAAQjsF,EAAE,KAAK,MAAM,SAAS,aAAa,KAAK,KAAK,GAAG,IAAI6/I,GAAE7/I,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,SAASisF,EAAE,CAAC,EAAEA,EAAE,SAAU,EAAC,CAAC,EAAE,OAAO,eAAe,KAAK,YAAY,CAAC,aAAa,GAAG,WAAW,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,OAAO,eAAe,KAAK,YAAY,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAIlyF,EAAE,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOA,CAAC,EAAE,IAAI,SAASkyF,EAAE,CAAClyF,EAAEkyF,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,OAAO,eAAe,KAAK,cAAc,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAgB,IAAT,OAAW,GAAG+D,GAAE,CAAC,EAAE,IAAI,SAAS/D,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAIvrE,EAAE,QAAQ,OAAO,eAAe,KAAK,QAAQ,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOA,CAAC,EAAE,IAAI,SAASurE,EAAE,CAACvrE,EAAEurE,CAAC,CAAC,CAAC,EAAE,IAAIhvF,EAAE,eAAe,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,CAACA,GAAG,gBAAgBs4J,IAAI,gBAAgBE,IAAI,OAAOnJ,GAAGrvJ,EAAE,KAAK,MAAM,KAAK,KAAK,CAAC,EAAE,IAAI,SAASgvF,EAAE,CAACA,EAAEA,EAAE,SAAU,EAAChvF,EAAEgvF,CAAC,CAAC,CAAC,EAAE,IAAI8C,EAAE,KAAK,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAGA,EAAE,OAAO,gBAAgBsmE,GAAmCtmE,EAA5Bu9D,GAAGv9D,EAAE,KAAK,MAAM,KAAK,KAAK,CAAG,EAAE,IAAI,SAAS9C,EAAE,CAACA,EAAEA,EAAE,SAAQ,EAAG8C,EAAE,gBAAgBsmE,GAA0DppE,EAA7CA,EAAE,OAAO,EAAE,CAAC,IAAlB,IAAoBmD,GAAEnD,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAEmD,GAAEnD,CAAC,CAAG,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,eAAe,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,gBAAgBopE,GAAOjmE,GAAEL,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAEA,CAAC,EAAE,IAAI,SAAS9C,EAAE,CAACA,EAAEA,EAAE,SAAU,EAAC8C,EAAE,gBAAgBsmE,GAAO,IAAIppE,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI5xD,EAAE,KAAK,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAGA,EAAE,OAAOA,CAAC,EAAE,IAAI,SAAS4xD,EAAE,CAAC,KAAK,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG5xD,EAAE,OAAO,gBAAgBg7H,GAAmCh7H,EAA5BiyH,GAAGjyH,EAAE,KAAK,MAAM,KAAK,KAAK,CAAG,EAAE,IAAI,SAAS4xD,EAAE,CAACA,EAAEA,EAAE,WAAW5xD,EAAE,gBAAgBg7H,GAA0DppE,EAA7CA,EAAE,OAAO,EAAE,CAAC,IAAlB,IAAoBmD,GAAEnD,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAEmD,GAAEnD,CAAC,CAAG,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,gBAAgBopE,GAAOjmE,GAAE/0D,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAEA,CAAC,EAAE,IAAI,SAAS4xD,EAAE,CAACA,EAAEA,EAAE,SAAQ,EAAG5xD,EAAE,gBAAgBg7H,GAAO,IAAIppE,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,gBAAgB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,cAAc,SAAS,IAAI,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,cAAc,UAAU,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE73D,EAAE,GAAG,OAAO,eAAe,KAAK,sBAAsB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOA,CAAC,EAAE,IAAI,SAAS63D,EAAE,CAACA,EAAE,EAAQA,EAAG73D,EAAE63D,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQuoE,GAAE,KAAK,GAAG,CAAC,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,CAAC,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,CAAC,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIlvE,EAAE,KAAK,OAAO,eAAe,KAAK,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,GAAUA,IAAP,KAAS,OAAOA,CAAC,EAAE,IAAI,SAAS8qE,EAAE,CAAC,GAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,QAAQA,CAAC,IAAtB,GAAwB,MAAM,IAAI,MAAM,kBAAkBA,EAAE,6BAA6B,EAAE9qE,EAAE8qE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,YAAY,CAAC,IAAI,UAAU,CAAC,IAAIA,EAAE,OAAO9qE,EAAC,CAAE,IAAK,GAAE,QAAQ8qE,EAAE,OAAO,MAAM,IAAK,GAAEA,EAAE,SAAS,MAAM,IAAK,GAAEA,EAAE,OAAO,CAAC,OAAOA,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,IAAI,SAASA,EAAE,CAAC,OAAOA,EAAG,KAAI,QAAQ,IAAK,GAAE9qE,EAAE,EAAE,MAAM,IAAI,SAAS,IAAK,GAAEA,EAAE,EAAE,MAAM,IAAI,OAAO,IAAK,GAAE,QAAQA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEquE,GAAEw+D,GAAG4G,EAAE,EAAE,IAAIM,GAAG,UAAU,CAAClH,GAAG,KAAK,IAAI,EAAE,KAAK,GAAG,MAAM,KAAK,EAAE,KAAK,KAAK,SAAS,eAAe,IAAI,EAAE,EAAE,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAShuJ,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAASA,EAAE,CAAC,EAAEA,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,eAAe,KAAK,MAAM,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO20J,GAAG,EAAE,KAAK,MAAM,KAAK,KAAK,CAAC,EAAE,IAAI,SAAS1oE,EAAE,CAAC,IAAI3kF,EAAEzM,EAAEA,EAAE,GAAa,OAAOyM,EAAE2kF,IAAnB,WAAwBpxF,EAAE,SAASoxF,EAAEjsF,EAAEsH,EAAE,CAACA,IAAIA,EAAE,GAAG,QAAQzM,EAAEtC,EAAE,GAAGsC,EAAEmF,EAAE,KAAKisF,CAAC,GAAG1zF,EAAE,KAAKsC,EAAEyM,CAAC,CAAC,EAAE,OAAO/O,CAAC,EAAE+O,EAAE,YAAY,GAAG,EAAEzM,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,WAAW,SAASoxF,EAAE,CAAC,EAAEA,EAAE,KAAK,MAAM,EAAE,KAAM,GAAE,KAAK,UAAU,SAASA,EAAE,CAACA,GAAGA,EAAEA,GAAG,IAAI,SAAQ,EAAG,EAAE,KAAKA,CAAC,EAAE,KAAK,MAAM,EAAE,KAAM,GAAE,KAAK,aAAa,SAASA,EAAE3kF,EAAE,CAAC,IAAIA,EAAEA,GAAG,GAAG2kF,GAAGA,EAAEA,GAAG,IAAI,SAAU,EAAM,EAAE,QAAQA,CAAC,IAAhB,KAAoB,EAAE,OAAO,EAAE,QAAQA,CAAC,EAAE,CAAC,EAAO3kF,IAAL,KAAS,CAAC,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQktJ,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAM,KAAK,QAAV,KAA+BA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,GAAI,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,EAAE,QAAQ,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,cAAc,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,kBAAkB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,oBAAoB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,EAAE,EAAEb,GAAE0lE,GAAGlH,EAAE,EAAE,IAAIC,GAAG,UAAU,CAACiH,GAAG,KAAK,IAAI,EAAE,KAAK,SAAS,YAAY,KAAK,MAAM,EAAE,EAAE1lE,GAAEy+D,GAAGiH,EAAE,EAAE,IAAIC,GAAG,UAAU,CAAClH,GAAG,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,EAAEz+D,GAAE2lE,GAAGlH,EAAE,EAAE,IAAImH,GAAG,UAAU,CAACD,GAAG,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,EAAE3lE,GAAE4lE,GAAGD,EAAE,EAAE,IAAIE,GAAG,UAAU,CAACrH,GAAG,KAAK,IAAI,EAAE,KAAK,GAAG,OAAO,OAAO,eAAe,KAAK,gBAAgB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQwG,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,QAAQ,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,aAAa,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,gBAAgB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAIrwF,EAAEsH,EAAE,GAAG,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,IAAI2kF,EAAE,SAASA,EAAE,CAAC,OAAOA,CAAC,EAAE,GAAG,KAAK,QAAQA,EAAE,KAAK,MAAM,SAAS,aAAa,KAAK,KAAK,GAAO,OAAO,KAAK3kF,CAAC,EAAE,SAAnB,EAA0B,CAAC,IAAItH,EAAEnF,EAAE,CAAE,EAAC,IAAImF,KAAKnF,EAAE,KAAK,IAAI,EAAEyM,EAAEzM,EAAE,KAAK,IAAImF,EAAE,KAAK6/I,GAAE5zD,EAAE3kF,EAAEtH,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAOnF,EAAE,KAAK,IAAI,EAAEA,EAAE,KAAK;AAAA,CAAI,CAAC,CAAC,EAAE,IAAI,SAASmF,EAAE,CAAYisF,GAAEjsF,CAAC,IAAd,WAAkBsH,EAAEtH,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOsH,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS2kF,EAAE,CAAW,OAAOA,GAAjB,WAAqB3kF,EAAE,GAAG2kF,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOjsF,CAAC,EAAE,IAAI,SAASisF,EAAE,CAACjsF,EAAEisF,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,kBAAkB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOjsF,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,SAASisF,EAAE,CAACjsF,EAAE,IAAIisF,CAAC,CAAC,CAAC,CAAC,EAAEuD,GAAE6lE,GAAGrH,EAAE,EAAE,IAAIsH,GAAG,UAAU,CAACD,GAAG,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,EAAE7lE,GAAE8lE,GAAGD,EAAE,EAAE,IAAInI,GAAG,UAAU,CAACmI,GAAG,KAAK,IAAI,EAAE,KAAK,MAAM,GAAG,KAAK,WAAW,GAAG,IAAI,EAAE,CAAE,EAAC,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,EAAW,IAAT,OAAW,EAAE,CAAE,EAAC,CAAC,CAAC,EAAE7lE,GAAE09D,GAAGmI,EAAE,EAAE,IAAIE,GAAG,UAAU,CAAC,IAAIv1J,EAAEsH,EAAE0mJ,GAAG,KAAK,IAAI,EAAE,OAAO,eAAe,KAAK,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOhuJ,CAAC,EAAE,IAAI,SAASisF,EAAE,CAACjsF,EAAEisF,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,aAAa,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO3kF,CAAC,EAAE,IAAI,SAAS2kF,EAAE,CAAC3kF,EAAE2kF,CAAC,CAAC,CAAC,EAAE,IAAIpxF,EAAEtC,EAAE,GAAG,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,IAAI0zF,EAAE,SAASA,EAAE,CAAC,OAAOA,CAAC,EAAE,KAAK,QAAQA,EAAE,KAAK,MAAM,SAAS,aAAa,KAAK,KAAK,GAAG,IAAIjsF,EAAEsH,EAAE,CAAE,EAAC,IAAItH,KAAKsH,EAAE,KAAK,IAAI,EAAE/O,EAAE+O,EAAE,KAAK,IAAItH,EAAE,KAAK6/I,GAAE5zD,EAAE1zF,EAAEyH,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAOsH,EAAE,KAAK,IAAI,EAAEA,EAAE,KAAK;AAAA,CAAI,CAAC,EAAE,IAAI,SAAStH,EAAE,CAAYisF,GAAEjsF,CAAC,IAAd,WAAkBzH,EAAEyH,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOzH,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS0zF,EAAE,CAAW,OAAOA,GAAjB,WAAqB1zF,EAAE,GAAG0zF,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,KAAK,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOpxF,CAAC,EAAE,IAAI,SAASoxF,EAAE,CAACpxF,EAAEoxF,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,kBAAkB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAOpxF,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,SAASoxF,EAAE,CAACpxF,EAAE,IAAIoxF,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,gBAAgB,MAAM,KAAK,gBAAgB0pE,GAAG,YAAY,OAAO,KAAK,wBAAwB,KAAK,gBAAgB,uBAAuB,KAAK,UAAU,CAAC,EAAEnmE,GAAE+lE,GAAGvH,EAAE,EAAEd,GAAG,UAAU,cAAc,SAAS,EAAE,CAAC,GAAG,EAAE,2BAA2B,IAAI,EAAE,UAAU,GAAG,MAAM,IAAI,MAAM,oEAAoE,EAAE,QAAQ,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAK,CAAE,CAAC,EAAEA,GAAG,UAAU,aAAa,SAAS,EAAE,CAAC,IAAI,EAAE,IAAIqI,GAAG,OAAO,EAAE,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,KAAK,KAAK,CAAC,EAAEK,IAAG,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE,IAAIJ,GAAG,UAAU,CAACH,GAAG,KAAK,IAAI,EAAE,KAAK,SAAS,eAAe,KAAK,QAAQ,IAAI,KAAK,gBAAgB,KAAK,KAAK,MAAM,KAAK,KAAK,UAAU,SAAS,KAAK,wBAAwBM,GAAG,SAAS,wBAAwB,EAAEnmE,GAAEgmE,GAAGH,EAAE,EAAE,IAAII,GAAG,UAAU,CAACzH,GAAG,KAAK,IAAI,EAAE,KAAK,GAAG,MAAM,OAAO,eAAe,KAAK,YAAY,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQwG,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,aAAa,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,kBAAkB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,cAAc,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,OAAO,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQmkE,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAASvoE,EAAE,CAAcA,EAAG,KAAK,GAAGsE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,eAAe,KAAK,SAAS,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,YAAY,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,EAAE,CAAC,OAAO,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,sBAAsB,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAEb,GAAEimE,GAAGzH,EAAE,EAAE,IAAI0H,GAAG,UAAU,CAACD,GAAG,KAAK,IAAI,EAAE,OAAO,eAAe,KAAK,WAAW,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,UAAU,CAAC,MAAO,EAAQjB,GAAE,KAAK,GAAG,EAAE,CAAE,EAAE,IAAI,SAAS,EAAE,CAAc,EAAG,KAAK,GAAGjkE,GAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAGF,GAAE,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,EAAE,EAAEb,GAAEkmE,GAAGD,EAAE,EAAE,IAAIE,GAAG,CAAC,SAAS,CAAC,uBAAuB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAGA,GAAG,SAAS,SAAS,EAAE,EAAE,CAAC,GAAGA,GAAG,SAAS,YAAY,IAAIA,GAAG,SAAS,WAAW,CAAC,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAExlE,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,SAAS,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,YAAY,kBAAkB,EAAE,KAAK,EAAE,EAAEt6D,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,OAAOq6D,GAAEylE,GAAG,SAAS,SAAS,CAAC,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,UAAU,EAAE,EAAE,KAAK,IAAI,EAAE,IAAIzlE,GAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,UAAU,SAAS,EAAE,CAAC,IAAI,EAAEC,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,MAAM,SAAS,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,YAAY,kBAAkB,EAAE,KAAK,EAAE,EAAE,CAAE,EAAC,EAAEwlE,GAAG,SAAS,UAAU,CAAC,EAAE,EAAEA,GAAG,SAAS,SAAS,CAAC,EAAE,EAAE9/H,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,OAAOq6D,GAAE,CAAC,EAAE,IAAIA,GAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,UAAU,EAAE,EAAE,KAAK,OAAOA,GAAE,EAAE,CAAC,EAAE,IAAIA,GAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,IAAIA,GAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAEC,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,CAAE,EAAC,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,OAAOD,GAAEylE,GAAG,SAAS,SAAS,CAAC,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,uBAAuB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAIA,GAAG,YAAY,OAAO,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAEA,GAAG,YAAY,OAAO,UAAU,EAAE,EAAE,CAAC,EAAEA,GAAG,YAAY,OAAO,YAAY,CAAC,EAAE,MAAM,UAAU,CAAC,MAAM,GAAG,EAAE,UAAU,SAAS,EAAE,CAAC,IAAI,EAAExlE,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,EAAEwlE,GAAG,SAAS,SAAS,CAAC,GAAGA,GAAG,SAAS,UAAU,CAAC,EAAEA,GAAG,SAAS,SAAS,CAAC,EAAE,EAAEA,GAAG,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAEA,GAAG,SAAS,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,WAAWjmE,GAAEimE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIjmE,GAAEimE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAExlE,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,CAAE,EAAC,EAAEwlE,GAAG,SAAS,SAAS,CAAC,GAAGA,GAAG,SAAS,UAAU,CAAC,EAAEA,GAAG,SAAS,SAAS,CAAC,EAAE,EAAEA,GAAG,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAEA,GAAG,SAAS,UAAU,QAAQ,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAEA,GAAG,SAAS,UAAU,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,WAAWjmE,GAAEimE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIjmE,GAAEimE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,WAAWjmE,GAAEimE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIjmE,GAAEimE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAExlE,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,EAAEwlE,GAAG,SAAS,SAAS,CAAC,GAAGA,GAAG,SAAS,UAAU,CAAC,EAAEA,GAAG,SAAS,SAAS,CAAC,EAAE,EAAEA,GAAG,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAEA,GAAG,SAAS,UAAU,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,WAAWjmE,GAAEimE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIjmE,GAAEimE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,uBAAuB,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,IAAIA,GAAG,YAAY,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,EAAEA,GAAG,YAAY,MAAM,UAAU,EAAE,EAAE,CAAC,EAAEA,GAAG,YAAY,MAAM,YAAY,CAAC,EAAE,MAAM,UAAU,CAAC,MAAM,GAAG,EAAE,UAAU,SAAS,EAAE,CAAC,IAAI,EAAExlE,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,CAAE,EAAC,EAAEwlE,GAAG,SAAS,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,OAAOzlE,GAAEylE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAKzlE,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAEC,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAEwlE,GAAG,SAAS,eAAe,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,OAAOzlE,GAAEylE,GAAG,SAAS,SAAS,CAAC,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,OAAOzlE,GAAEylE,GAAG,SAAS,SAAS,CAAC,EAAE,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAKzlE,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAKA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAIA,GAAE,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,EAAE,YAAY,SAAS,EAAE,CAAC,IAAI,EAAEC,GAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,GAAG,OAAO,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,OAAOD,GAAEylE,GAAG,SAAS,SAAS,CAAC,CAAC,EAAE,IAAIzlE,GAAEylE,GAAG,SAAS,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK;AAAA,CAAI,EAAE,CAAC,CAAC,CAAC,EAAE,8BAA8B,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,SAAS,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,MAAM,YAAY,kBAAkB,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,CAAC,EAAEA,GAAG,SAAS,CAAC,SAAS,cAAc,eAAe,SAAS,EAAE,CAAC,IAAI,EAAEA,GAAG,SAAS,SAAS,CAAC,EAAE,EAAEA,GAAG,SAAS,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEA,GAAG,SAAS,SAAS,SAAS31J,EAAE,CAAC,IAAIsH,EAAE,EAAE,OAAiB2kF,GAAEjsF,CAAC,IAAd,WAAkBsH,EAAE8oF,GAAEpwF,EAAE,KAAK,CAAC,CAAC,GAAGsH,CAAC,EAAEquJ,GAAG,SAAS,UAAU,SAAS31J,EAAE,CAAC,IAAIsH,EAAE,EAAE,OAAiB2kF,GAAEjsF,CAAC,IAAd,WAAkBsH,EAAE8oF,GAAEpwF,EAAE,KAAK,CAAC,CAAC,GAAGsH,CAAC,EAAE,IAAIsuJ,IAAGhmE,GAAE,SAAS,SAAS,EAAE,CAAC,GAAG8kE,IAAG,KAAK,CAAC,EAAE,EAAE,aAAa1G,IAAI,MAAM,IAAI,MAAM,4CAA4C,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,SAAS,eAAe,aAAa,EAAE,MAAM,SAAS,eAAe,WAAW,GAAG,EAAE,MAAM,SAAS,eAAe,uBAAuB,MAAM,EAAE,MAAM,SAAS,eAAe,uBAAuB,OAAO,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,SAAS,mBAAkB,EAAG,WAAW,IAAI,EAAEp+D,GAAE,oBAAoBslE,GAAGtlE,GAAE,gBAAgBq+D,GAAGr+D,GAAE,iBAAiBulE,GAAGvlE,GAAE,gBAAgBwlE,GAAGxlE,GAAE,eAAeylE,GAAGzlE,GAAE,mBAAmB0lE,GAAG1lE,GAAE,oBAAoBs9D,GAAGt9D,GAAE,iBAAiB4lE,GAAG5lE,GAAE,kBAAkB6lE,GAAG7lE,GAAE,sBAAsB8lE,GAAG9lE,GAAE,mBAAmB+lE,GAAG/lE,GAAE,SAAS,CAAC,YAAYslE,GAAG,QAAQjH,GAAG,SAASkH,GAAG,QAAQC,GAAG,OAAOC,GAAG,WAAWC,GAAG,YAAYpI,GAAG,SAASsI,GAAG,UAAUC,GAAG,cAAcC,GAAG,WAAWC,EAAE,EAAEzB,GAAE,SAAS,CAAC,YAAYgB,GAAG,QAAQjH,GAAG,SAASkH,GAAG,QAAQC,GAAG,OAAOC,GAAG,WAAWC,GAAG,YAAYpI,GAAG,SAASsI,GAAG,UAAUC,GAAG,cAAcC,GAAG,WAAWC,EAAE,EAAE,IAAIE,IAAG3B,GAAE,SAAS,SAASE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAQ,SAASnoE,EAAEjsF,EAAEsH,EAAE,CAAC,OAAO2kF,EAAEjsF,CAAC,EAAEsH,EAAE2kF,CAAC,EAAG,CAAE,EAAC,EAAE,SAASjsF,EAAE,CAACA,EAAE,aAAa,GAAG,IAAIsH,EAAE,UAAUzM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,OAAO,OAAO,OAAO,OAAO,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,EAAEtC,EAAEyH,EAAE,aAAa,4BAA4B,SAASisF,EAAEjsF,EAAE,CAAC,IAAIzH,EAAE4V,EAAEwoC,EAAE7rC,EAAE/Q,EAAEywB,GAAEljB,EAAE,IAAatH,EAAEA,GAAGsH,KAAf,QAA4B2kF,EAAE,OAAX,QAAiBA,EAAE,gBAAgB,mBAAmB,WAAWA,GAAG,UAAUA,EAAE,MAAM,OAAO,GAAG7pF,EAAE6pF,CAAC,EAAE,IAAIlyF,KAAKc,EAAE,IAAI87C,EAAE97C,EAAEd,CAAC,EAAExB,EAAE,EAAEA,EAAEo+C,EAAE,OAAOp+C,GAAG,EAAE,CAAC,IAAIuS,EAAE,GAAGqD,EAAE,EAAEA,EAAEwoC,EAAEp+C,CAAC,EAAE,OAAO4V,GAAG,EAAE,GAAYwoC,EAAEp+C,CAAC,EAAE4V,CAAC,IAAf,QAAkBwoC,EAAEp+C,CAAC,EAAE4V,CAAC,IAAI89E,EAAE99E,CAAC,EAAE,CAACrD,EAAE,GAAG,KAAK,CAAC,GAAQA,IAAL,GAAO,CAAC0f,GAAEzwB,EAAE,KAAK,CAAC,KAAM,KAAIA,KAAKc,EAAE,IAAI87C,EAAE97C,EAAEd,CAAC,EAAExB,EAAE,EAAEA,EAAEo+C,EAAE,OAAOp+C,GAAG,EAAE,CAAC,IAAIuS,EAAE,GAAGqD,EAAE,EAAEA,EAAEwoC,EAAEp+C,CAAC,EAAE,OAAO4V,GAAG,EAAE,GAAYwoC,EAAEp+C,CAAC,EAAE4V,CAAC,IAAf,QAAkBwoC,EAAEp+C,CAAC,EAAE4V,CAAC,IAAI89E,EAAE,WAAW99E,CAAC,EAAE,CAACrD,EAAE,GAAG,KAAK,CAAC,GAAQA,IAAL,GAAO,CAAC0f,GAAEzwB,EAAE,KAAK,CAAC,CAAC,OAAOywB,KAAIljB,GAAGtH,IAAIsH,IAAIkjB,GAAExqB,GAAGwqB,EAAC,EAAErc,EAAE,SAAS89E,EAAEjsF,EAAE,CAAC,QAAQsH,EAAE,KAAK,SAAS,MAAMzM,EAAE,KAAK,SAAS,UAAUtC,KAAK,KAAK,SAAS,YAAU,EAASA,EAAE,QAAQ,aAAa,IAA5B,IAA+BA,EAAE,OAAOA,EAAE,QAAQ,aAAa,EAAE,CAAC,EAAEyH,EAAE,SAAS,KAAK,SAAS,UAAW,EAAC,IAAImO,EAAE,CAAE,EAAC,GAAGA,EAAE,KAAK,CAAC,IAAI,OAAO,MAAM,UAAU,CAAC,EAAEA,EAAE,KAAK,CAAC,IAAI,UAAU,MAAM,QAAQ,CAAC,EAAEA,EAAE,KAAK,CAAC,IAAI,QAAQ,MAAMnO,EAAE,KAAK,CAAC,EAAEmO,EAAE,KAAK,CAAC,IAAI,SAAS,MAAMnO,EAAE,MAAM,CAAC,EAAEA,EAAE,aAAaoO,EAAE,QAAQD,EAAE,KAAK,CAAC,IAAI,aAAa,MAAM,yBAAyBnO,EAAE,QAAQ,OAAO,EAAE,GAAG,KAAK,UAAUA,GAAYA,EAAE,QAAX,OAAiBA,EAAE,SAAS,EAAEA,EAAE,SAAS,GAAG,OAAO,CAAC,GAAGmO,EAAE,KAAK,CAAC,IAAI,aAAa,MAAM,IAAInO,EAAE,UAAU,CAAC,EAAEA,EAAE,aAAaoO,EAAE,aAAaD,EAAE,KAAK,CAAC,IAAI,SAAS,MAAM,mBAAmB,CAAC,GAAGA,EAAE,KAAK,CAAC,IAAI,mBAAmB,MAAMnO,EAAE,gBAAgB,CAAC,EAAE,qBAAqBA,GAAYA,EAAE,mBAAX,QAA6BmO,EAAE,KAAK,CAAC,IAAI,cAAc,MAAM,KAAKnO,EAAE,iBAAiB,IAAI,CAAC,EAAE,iBAAiBA,GAAG,MAAM,QAAQA,EAAE,YAAY,EAAE,CAAC,QAAQ22C,EAAE,GAAG7rC,GAAE,EAAE/Q,GAAEiG,EAAE,aAAa,OAAO8K,GAAE/Q,GAAE+Q,KAAI6rC,GAAG32C,EAAE,aAAa8K,EAAC,EAAE,IAAI9K,EAAE,aAAa8K,EAAC,EAAE,IAAIqD,EAAE,KAAK,CAAC,IAAI,OAAO,MAAM,IAAIwoC,EAAE,GAAG,CAAC,CAAC,CAAU32C,EAAE,QAAX,QAAkBmO,EAAE,KAAK,CAAC,IAAI,QAAQ,MAAMnO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,IAAIwqB,EAAWxqB,EAAE,SAAX,OAAkB,CAAC,IAAIA,EAAE,MAAM,EAAE,OAAO,GAAGnF,EAAE,CAAC,KAAKmF,EAAE,KAAK,oBAAoBmO,EAAE,sBAAsBqc,EAAE,SAASxqB,EAAE,QAAQ,CAAC,EAAEsH,EAAE,QAAQ,EAAE,UAAUtH,GAAYA,EAAE,QAAX,OAAiB,CAAC,IAAI0gB,EAAE,cAAc1gB,EAAE,UAAU,gCAAgCA,EAAE,iBAAiB,aAAaA,EAAE,MAAM/C,EAAE,CAAC,MAAM+C,EAAE,MAAM,OAAOA,EAAE,OAAO,WAAW,aAAa,iBAAiBA,EAAE,iBAAiB,iBAAiB0gB,EAAE,KAAK1gB,EAAE,KAAK,EAAE,WAAWA,IAAI/C,EAAE,OAAO+C,EAAE,QAAQisF,EAAE,KAAK,KAAKhvF,CAAC,CAAC,CAAC,GAAG+C,EAAE,aAAaoO,EAAE,QAAQ,CAAC,IAAI2gF,EAAE,KAAK,SAAS,YAAYl0F,EAAE,CAAC,KAAKf,EAAE,IAAI,WAAWkG,EAAE,OAAO,CAAC,EAAE,SAAS+uF,CAAC,CAAC,EAAEznF,EAAE,QAAQ,CAAC,CAAC,EAAEqvC,EAAE,UAAU,CAAC,IAAIs1C,EAAE,KAAK,SAAS,YAAY,gBAAgB,QAAQjsF,KAAKisF,EAAE99E,EAAE,KAAK,KAAK89E,EAAEjsF,CAAC,CAAC,CAAC,EAAE8K,EAAE,UAAU,CAAC,IAAImhF,EAAEjsF,EAAE,KAAK,SAAS,YAAY,gBAAgBsH,EAAE,KAAK,SAAS,MAAM,QAAQzM,KAAKmF,EAAEsH,EAAE,MAAM2kF,EAAEjsF,EAAEnF,CAAC,GAAG,MAAMoxF,EAAE,SAAS,IAAI,GAAG,CAAC,EAAElyF,EAAE,UAAU,CAAC,KAAK,SAAS,YAAY,kBAAkB,KAAK,SAAS,YAAY,gBAAgB,GAAG,KAAK,SAAS,OAAO,UAAU,eAAe48C,CAAC,EAAE,KAAK,SAAS,OAAO,UAAU,iBAAiB7rC,CAAC,EAAE,EAAE4V,EAAE,UAAU,CAAC,IAAIurE,EAAE,KAAK,SAAS,YAAY,gBAAgB,OAAOlyF,EAAE,KAAK,IAAI,EAAEkyF,CAAC,EAAEhvF,EAAE,UAAU,CAAC,OAAO,OAAO,KAAK,KAAK,SAAS,YAAY,eAAe,EAAE,MAAM,EAAE8xF,EAAE,SAAS9C,EAAE,CAAC,OAAkB,OAAOjsF,EAAE,UAAUisF,EAAE,YAAa,IAA9C,UAA+C,EAAE5xD,EAAE,SAASr6B,EAAE,CAAC,OAAiBisF,GAAEjsF,CAAC,IAAd,UAAqBA,EAAE,WAAN,CAAc,EAAEiN,EAAE,SAASg/E,EAAE3kF,EAAE,CAAC,GAAW2kF,EAAE,WAAV,OAAoBA,EAAE,aAAa,KAAK,EAAE,CAAC,IAAIpxF,EAAE,GAAGoxF,EAAE,aAAa,KAAK,EAAE,GAAOpxF,EAAE,QAAQ,aAAa,IAA3B,EAA6B,OAAO2vB,GAAE,SAAS3vB,CAAC,EAAE,MAAM,SAAS,EAAE,IAAG,CAAE,EAAE,IAAItC,EAAEyH,EAAE,SAASnF,EAAE,EAAE,EAAE,GAAYtC,IAAT,OAAW,OAAOA,CAAC,CAAC,GAAc0zF,EAAE,WAAb,SAAsB,CAAC,GAAOA,EAAE,QAAN,GAAiBA,EAAE,SAAN,EAAa,MAAM,IAAI,MAAM,8CAA8CA,EAAE,MAAM,aAAaA,EAAE,MAAM,EAAE,IAAI99E,EAAE,OAAO7G,EAAC,CAAE,IAAI,MAAM6G,EAAE,YAAY,MAAM,IAAI,OAAOA,EAAE,aAAa,MAAM,IAAI,OAAO,IAAI,MAAM,QAAQA,EAAE,YAAY,CAAC,OAAOqc,GAAEyhE,EAAE,UAAU99E,EAAE,CAAC,EAAE,MAAM,SAAS,EAAE,IAAK,EAAC,CAAC,EAAEimB,EAAE,SAAS63D,EAAE,CAAC,IAAIjsF,EAAE,KAAK,SAAS,YAAY,gBAAgB,GAAGA,GAAE,QAAQsH,KAAKtH,EAAE,GAAGisF,IAAIjsF,EAAEsH,CAAC,EAAE,MAAM,OAAOtH,EAAEsH,CAAC,EAAC,EAAE6Z,EAAE,SAAS8qE,EAAEjsF,EAAEsH,EAAE,CAAC,OAAO2kF,GAAGjsF,IAAIisF,EAAE,IAAIjsF,EAAE,KAAKisF,EAAE,IAAIA,EAAE,GAAG3kF,EAAE,MAAM,GAAG2kF,EAAE,KAAK,SAAS,aAAajsF,EAAE,IAAIA,EAAE,GAAGsH,EAAE,OAAO,GAAGtH,EAAE,KAAK,SAAS,aAAiBisF,IAAJ,IAAQA,EAAEjsF,EAAEsH,EAAE,MAAMA,EAAE,QAAYtH,IAAJ,IAAQA,EAAEisF,EAAE3kF,EAAE,OAAOA,EAAE,OAAO,CAAC2kF,EAAEjsF,CAAC,CAAC,EAAEpD,EAAE,SAASqvF,EAAEjsF,EAAEsH,EAAEzM,EAAEtC,EAAE4V,EAAE,CAAC,IAAIwoC,EAAEx1B,EAAE,KAAK,KAAK7Z,EAAEzM,EAAEtC,CAAC,EAAEuS,GAAE,KAAK,SAAS,oBAAoB/Q,GAAE,KAAK,SAAS,4BAA4BywB,EAAE9J,EAAE,KAAK,IAAI,EAAE,GAAGpZ,EAAEqvC,EAAE,CAAC,EAAE97C,EAAE87C,EAAE,CAAC,EAAEnsB,EAAEjyB,EAAE,KAAK,EAAEA,EAAE4V,EAAE,CAACA,GAAG,KAAK,GAAG,IAAI,IAAIlR,EAAE,KAAK,IAAIkR,CAAC,EAAE4gF,EAAE,KAAK,IAAI5gF,CAAC,EAAEksB,EAAE,SAAS4xD,EAAE,CAAC,OAAOA,EAAE,QAAQ,CAAC,CAAC,EAAEh/E,EAAE,CAACotB,EAAEp9B,CAAC,EAAEo9B,EAAE00D,CAAC,EAAE10D,EAAE,GAAG00D,CAAC,EAAE10D,EAAEp9B,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,SAAS,MAAM,GAAG,EAAEkR,GAAG,KAAK,SAAS,MAAM,CAAC,EAAE,IAAI,IAAI,EAAErD,GAAEmhF,CAAC,EAAElyF,GAAEiG,EAAEnF,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,SAAS,MAAMoS,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,CAACnC,GAAExD,CAAC,EAAE,IAAI,IAAIwD,GAAEjQ,CAAC,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,SAAS,MAAM,CAACiQ,GAAExD,CAAC,EAAE,IAAI,IAAIwD,GAAEjQ,CAAC,EAAEiQ,GAAEmhF,CAAC,EAAElyF,GAAEiG,EAAEnF,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,cAAe,GAAE,KAAK,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,SAAS,MAAM,KAAKtC,EAAE,MAAM,KAAK,EAAE,KAAK,SAAS,MAAM,GAAG,CAAC,EAAE6V,EAAEpO,EAAE,aAAa,CAAC,WAAW,YAAY,YAAY,aAAa,YAAY,aAAa,SAAS,UAAU,QAAQ,SAAS,IAAI,MAAM,UAAU,WAAW,QAAQ,UAAU,QAAQ,UAAU,WAAW,aAAa,SAAS,SAAS,EAAEA,EAAE,OAAO,CAAC,WAAW,YAAY,aAAa,cAAc,WAAW,YAAY,WAAW,YAAY,aAAa,cAAc,eAAe,gBAAgB,iBAAiB,iBAAiB,kBAAkB,kBAAkB,iBAAiB,gBAAgB,EAAE,IAAIgvF,EAAEhvF,EAAE,kBAAkB,CAAC,KAAK,OAAO,KAAK,OAAO,OAAO,SAAS,KAAK,MAAM,EAAEi+D,EAAEj+D,EAAE,aAAa,UAAU,SAASisF,EAAE,CAAC,IAAIjsF,EAAEsH,EAAEzM,EAAE,EAAE,GAAa,OAAOoxF,GAAjB,SAAmB,IAAI3kF,EAAE2kF,EAAE,OAAOjsF,EAAE,EAAEA,EAAEsH,EAAEtH,IAAInF,GAAGA,GAAG,GAAGA,EAAEoxF,EAAE,WAAWjsF,CAAC,EAAEnF,GAAG,UAAUuH,EAAE6pF,CAAC,EAAE,IAAI3kF,EAAE2kF,EAAE,WAAW,EAAEjsF,EAAE,EAAEA,EAAEsH,EAAEtH,IAAInF,GAAGA,GAAG,GAAGA,EAAEoxF,EAAEjsF,CAAC,EAAEnF,GAAG,EAAE,OAAOA,CAAC,EAAE00F,EAAEvvF,EAAE,aAAa,uBAAuB,SAASisF,EAAE,EAAEA,EAAEA,GAAG,IAAI,SAAU,EAAC,KAAI,EAAG,IAAIjsF,EAAE,GAAG,OAAWisF,EAAE,SAAN,IAAejsF,EAAE,IAAIisF,EAAE,OAAO,GAAG,IAAIjsF,EAAE,IAAS,mBAAmB,KAAKisF,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,CAAC,IAAnD,KAAuDjsF,EAAE,IAAS,gDAAgD,KAAKisF,EAAE,OAAO,EAAE,CAAC,IAAtE,KAA0EjsF,EAAE,IAAIA,CAAC,EAAE2vF,EAAE3vF,EAAE,aAAa,wBAAwB,SAASisF,EAAE,CAAC,IAAIjsF,GAAGisF,EAAEA,GAAG,IAAI,MAAM,SAAS,EAAE3kF,EAAE,KAAK,GAAOtH,EAAE,SAAN,EAAa,CAAC,IAAInF,EAAE,sDAAsD,KAAKmF,EAAE,CAAC,CAAC,EAAE,MAAM,QAAQnF,CAAC,IAAIyM,EAAE,CAAC,SAASzM,EAAE,CAAC,EAAE,QAAQA,EAAE,CAAC,EAAE,KAAKmF,EAAE,CAAC,CAAC,EAAE,CAAC,OAAOsH,CAAC,EAAE2nF,EAAEjvF,EAAE,aAAa,oBAAoB,UAAU,CAAC,OAAmB,OAAO,YAApB,KAA8C,OAAO,WAApB,GAA8B,EAAEA,EAAE,aAAa,cAAc,SAASisF,EAAE,CAAC,OAAOgD,EAAC,GAAIhD,aAAa,WAAW,EAAE,IAAI7pF,EAAEpC,EAAE,aAAa,kBAAkB,SAASisF,EAAE,CAAC,OAAOgD,EAAG,GAAe,OAAO,YAApB,MAAkChD,aAAa,WAAWA,aAAa,YAAyB,OAAO,kBAApB,KAAuCA,aAAa,mBAAmBA,aAAa,YAAYA,aAAa,aAAaA,aAAa,YAAYA,aAAa,aAAaA,aAAa,cAAcA,aAAa,aAAa,EAAE4D,EAAE7vF,EAAE,aAAa,yBAAyB,SAASisF,EAAE,CAAC,QAAQjsF,EAAEisF,EAAE,OAAO3kF,EAAE,IAAI,WAAWtH,CAAC,EAAEnF,EAAE,EAAEA,EAAEmF,EAAEnF,IAAIyM,EAAEzM,CAAC,EAAEoxF,EAAE,WAAWpxF,CAAC,EAAE,OAAOyM,CAAC,EAAExN,EAAEkG,EAAE,aAAa,0BAA0B,SAASisF,EAAE,CAAC,QAAQjsF,EAAE,GAAGsH,EAAElF,EAAE6pF,CAAC,EAAEA,EAAE,IAAI,WAAWA,CAAC,EAAEpxF,EAAE,EAAEA,EAAEyM,EAAE,OAAOzM,GAAG,KAAKmF,GAAG,OAAO,aAAa,MAAM,KAAKsH,EAAE,SAASzM,EAAEA,EAAE,IAAI,CAAC,EAAE,OAAOmF,CAAC,EAAEA,EAAE,SAAS,UAAU,CAAC,IAAIA,EAAEnF,EAAEtC,EAAE4V,EAAEwoC,EAAE7rC,EAAE0f,EAAE9J,GAAEzjB,GAAE,GAAa,OAAO,UAAU,CAAC,GAA5B,UAA+BpC,EAAEyM,EAAE/O,EAAE,UAAU,CAAC,EAAE4V,EAAE,UAAU,CAAC,EAAEwoC,EAAE,UAAU,CAAC,EAAE7rC,EAAE,UAAU,CAAC,EAAE0f,EAAE,UAAU,CAAC,EAAE9J,GAAE,UAAU,CAAC,EAAEzjB,GAAE,UAAU,CAAC,IAAIpC,EAAE,UAAU,CAAC,EAAEtC,EAAE,UAAU,CAAC,EAAE4V,EAAE,UAAU,CAAC,EAAEwoC,EAAE,UAAU,CAAC,EAAE7rC,EAAE,UAAU,CAAC,EAAE0f,EAAE,UAAU,CAAC,EAAE9J,GAAE,UAAU,CAAC,EAAEzjB,GAAE,UAAU,CAAC,GAAcgvF,GAAEjsF,EAAE,UAAU,CAAC,CAAC,IAA3B,UAA8B,CAACq6B,EAAEr6B,CAAC,GAAG,cAAcA,EAAE,CAAC,IAAI+uF,EAAE/uF,EAAEA,EAAE+uF,EAAE,UAAUl0F,EAAEk0F,EAAE,QAAQl0F,GAAGyM,EAAE/O,EAAEw2F,EAAE,GAAGx2F,GAAG,EAAE4V,EAAE4gF,EAAE,GAAG5gF,GAAG,EAAEwoC,EAAEo4C,EAAE,GAAGA,EAAE,OAAOp4C,EAAE7rC,EAAEikF,EAAE,GAAGA,EAAE,QAAQjkF,EAAE0f,EAAEukE,EAAE,OAAOvkE,EAAE9J,GAAEquE,EAAE,aAAaruE,GAAEzjB,GAAE8xF,EAAE,UAAUA,EAAE,OAAO9xF,EAAC,CAAC,IAAIgQ,EAAE,KAAK,SAAS,WAAU,EAAG,GAAYyT,KAAT,QAAiBzT,EAAE,QAAQ,aAAa,IAA5B,KAAgCyT,GAAE,QAAQ,MAAMnoB,CAAC,GAAG,MAAM4V,CAAC,EAAE,MAAM,IAAI,MAAM,8CAA8C,EAAEpU,EAAE,KAAK,IAAI,EAAE,IAAIq6B,EAAE86D,EAAE,KAAK,KAAKlvF,EAAEnF,EAAE2vB,EAAE9J,EAAC,EAAE,OAAO9jB,EAAE,KAAK,KAAKrE,EAAE4V,EAAEwoC,EAAE7rC,EAAEspB,EAAEn3B,EAAC,EAAE,IAAI,EAAE,IAAIiyF,EAAE,SAASjD,EAAEpxF,EAAEsT,EAAEwoC,EAAE,CAAC,IAAI7rC,EAAE/Q,EAAEywB,EAAE,GAAa,OAAOyhE,GAAjB,UAAoB1zF,EAAE0zF,CAAC,IAAI3kF,EAAE,CAAC2kF,EAAE,SAASA,CAAC,EAAE,IAAIvrE,GAAEkf,EAAEqsD,EAAE,EAAE,GAAQvrE,KAAL,KAAkBA,GAAE1gB,EAAE,SAASisF,EAAE,EAAE,KAA3B,UAAiCA,EAAEvrE,GAAE,CAAC,GAAG2Z,EAAE4xD,CAAC,IAAIA,EAAEh/E,EAAEg/E,EAAEpxF,CAAC,GAAGA,EAAEtC,EAAE0zF,EAAEpxF,CAAC,EAAE,CAACk0F,EAAEl0F,CAAC,EAAE,MAAM,IAAI,MAAM,4CAA4CA,EAAE,uCAAuCA,EAAE,qBAAqB,EAAE,KAAW2vB,EAAErc,IAAT,MAAiBqc,EAAE,SAAN,KAAgBrc,EAAE,SAAS89E,GAAE,CAAC,OAAgB,OAAOA,IAAjB,UAAoB7pF,EAAE6pF,EAAC,EAAEhuB,EAAEguB,EAAC,EAAE7pF,EAAE6pF,GAAE,IAAI,EAAEhuB,EAAEguB,GAAE,IAAI,EAAE,IAAI,EAAEA,CAAC,IAAInhF,EAAEspB,EAAE,KAAK,KAAKjmB,CAAC,KAAK8gF,EAAG,IAAGhD,aAAa,YAAqBpxF,IAAT,SAAad,EAAEkyF,EAAEA,EAAE4D,EAAE5D,CAAC,IAAInhF,EAAE,KAAK,UAAUjQ,EAAE,YAAa,GAAEoxF,EAAEhvF,EAAE,KAAK,IAAI,EAAEkR,EAAE,SAAS89E,GAAE,CAAC,OAAOA,IAAa,OAAOA,IAAjB,WAAqBA,GAAEA,GAAE,YAAa,GAAEA,MAAKjsF,EAAE,kBAAkBisF,GAAE+C,EAAE,IAAI,EAAEr4C,CAAC,EAAE58C,CAAC,GAAG,CAAC+Q,EAAE,MAAM,IAAI,MAAM,wDAAwD,EAAE,OAAOA,CAAC,EAAE80B,EAAE5/B,EAAE,aAAa,4BAA4B,SAASisF,EAAEjsF,EAAE,CAAC,IAAIsH,EAAEtH,EAAa,OAAOA,GAAlB,WAAqBA,EAAE,IAAInF,EAAEtC,EAAE,GAAG,GAAa,OAAO0zF,GAAjB,SAAmB,CAACpxF,GAAUyM,EAAEqoF,EAAE1D,CAAC,KAAb,KAAgB3kF,EAAE,KAAK2kF,EAAE,GAAG,CAAC1zF,EAAEiyB,GAAE3vB,CAAC,CAAC,OAAOoxF,EAAE,CAAC,GAAGjsF,EAAE,MAAMuvF,EAAE10F,CAAC,EAAE,IAAI,MAAM,mDAAmDoxF,EAAE,OAAO,EAAE,IAAI,MAAM,+EAA+E,CAAC,CAAC,CAAC,OAAO1zF,CAAC,EAAEyH,EAAE,mBAAmB,SAASisF,EAAE,CAAC,IAAIpxF,EAAEsT,EAAEwoC,EAAE,GAAG,GAAGtc,EAAE4xD,CAAC,IAAIA,EAAEh/E,EAAEg/E,CAAC,GAAa,OAAOA,GAAjB,UAAoB1zF,EAAE0zF,CAAC,IAAI3kF,KAAUqvC,EAAE/W,EAAEqsD,EAAE,EAAE,KAAd,KAAmBt1C,EAAE32C,EAAE,SAASisF,CAAC,GAAG,IAAIA,EAAEt1C,GAAGxoC,EAAE5V,EAAE0zF,CAAC,EAAE,CAAC8C,EAAE5gF,CAAC,EAAE,MAAM,IAAI,MAAM,4CAA4CA,EAAE,uCAAuCA,EAAE,qBAAqB,EAAE,GAAG,CAAC8gF,EAAG,GAAEhD,aAAa,aAAaA,EAAE4D,EAAE5D,CAAC,GAAG,EAAEpxF,EAAE,KAAK,UAAUsT,EAAE,YAAa,GAAE89E,CAAC,GAAG,MAAM,IAAI,MAAM,uDAAuD,EAAE,OAAOpxF,EAAE,SAASsT,EAAEtT,CAAC,CAAC,GAAEq5J,GAAE,GAAG,EAQ745F,SAAS,EAAE,CAAC,IAAI,EAAE,SAASjoE,EAAE,CAAC,GAAYA,IAAT,QAAgBA,GAAJ,GAAM,MAAM,EAAE,EAAEioE,GAAE,IAAI,OAAO,KAAK,CAAC,UAAU,SAASjoE,EAAE,CAAC,KAAK,SAAS,YAAYA,EAAE,UAAU,EAAE,YAAY,YAAY,CAAE,EAAC,CAAC,EAAE,EAAE,OAAO,KAAK,CAAC,UAAU,SAASA,EAAE,CAAC,QAAQ3kF,EAAEzM,EAAEtC,EAAE4V,EAAE,KAAK,SAAS,oBAAoBwoC,EAAE,KAAK,SAAS,4BAA4B7rC,EAAE,KAAK,SAAS,mBAAmBmhF,EAAE,KAAK,EAAElyF,EAAEkyF,EAAE,YAAY,YAAYzhE,EAAE,GAAG9J,EAAE,EAAEA,EAAE3mB,EAAE,QAAQ,CAACywB,EAAE9J,IAAI,QAAQpZ,EAAEvN,EAAE2mB,CAAC,GAAG,KAAM,KAAI,QAAQ,EAAEpZ,EAAE,QAAQ,GAAG,GAAG,EAAEA,EAAE,QAAQ,UAAU,KAAKkjB,EAAE,IAAI,MAAM,IAAI,YAAY,IAAI,OAAO,IAAI,WAAWA,EAAE,EAAE,CAAC,GAAMA,GAAH,EAAK,CAAC,KAAK,SAAS,MAAM,WAAW,EAAE,QAAQvtB,EAAE,EAAEA,EAAElD,EAAE,OAAOkD,IAAI,CAACqK,EAAEvN,EAAEkD,CAAC,EAAE,IAAI8xF,EAAE,KAAK,SAAS,UAAU10D,EAAE,KAAK,SAAS,aAAa4xD,EAAE,KAAK,EAAE,OAAO3kF,EAAE,MAAM,IAAI,YAAY,KAAK,SAAS,MAAM,IAAIA,EAAE,OAAO,MAAM,OAAO,EAAE,MAAM,IAAI,OAAO,IAAI2F,EAAE,KAAK,SAAS,sBAAsBmnB,EAAE,KAAK,SAAS,oBAAqB,EAACjT,EAAE,KAAK,SAAS,aAAalU,EAAE,KAAK,EAAErQ,EAAE0K,EAAE,OAAO,OAAO/O,EAAE,kCAAkCsC,EAAE,UAAUsT,EAAE7G,EAAE,OAAO,CAAC,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAI6G,EAAE7G,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,CAAC,EAAE,MAAM,cAAcynF,EAAE5tE,EAAE7Z,EAAE,QAAQ,CAAC,EAAE,IAAI/O,GAAG,WAAW67B,EAAE,MAAM,OAAO77B,GAAG,OAAOuS,EAAE,MAAM,OAAOvS,GAAG,QAAQw2F,EAAE5tE,EAAEvkB,CAAC,CAAC,EAAE,OAAOqQ,EAAE,QAAQ1U,EAAE,IAAI,EAAE0U,EAAE,MAAM,OAAO1U,EAAE,mCAAmCsC,EAAE,UAAUsT,EAAE7G,EAAE,OAAO,EAAE,EAAE,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAI6G,EAAE7G,EAAE,OAAO,EAAEA,EAAE,OAAO,EAAE,EAAE,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,CAAC,EAAE,MAAM,YAAY,EAAEA,EAAE,OAAO/O,GAAG,eAAeA,GAAG,MAAM67B,EAAE,QAAQ77B,EAAE,KAAK,SAAS,MAAM0U,EAAE,MAAM,MAAMmnB,EAAE,MAAM,KAAK,EAAE,MAAM,IAAI,WAAWv5B,EAAE,UAAUsT,EAAE7G,EAAE,OAAO,CAAC,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,CAAC,EAAE,IAAI6G,EAAE7G,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAE,IAAIqvC,EAAErvC,EAAE,OAAO,EAAEA,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI,EAAEA,EAAE,OAAO,UAAU/O,EAAE,qCAAqCsC,EAAE,cAAck0F,EAAE10D,EAAE/yB,EAAE,QAAQ,CAAC,EAAE,IAAI/O,GAAG,mEAAmE,EAAE,IAAIA,GAAG,mBAAmBA,GAAG,MAAM,KAAK,SAAS,MAAMA,CAAC,EAAE,MAAM,IAAI,OAAO,GAAG+O,EAAE,QAAQ,KAAK,CAAC,IAAI22D,EAAE,KAAK,YAAY,SAAS32D,EAAE,QAAQ,IAAI,EAAEA,EAAE,QAAQ,WAAW22D,EAAE,KAAK32D,EAAE,QAAQ,IAAI22D,EAAE,CAAC,MAAM32D,EAAE,QAAQ,MAAMA,EAAE,QAAQ,IAAI,GAAG,GAAGzM,EAAE,UAAUyM,EAAE,YAAY,EAAE,IAAIA,EAAE,YAAY,EAAE,IAAIA,EAAE,YAAY,EAAE,IAAIA,EAAE,YAAY,EAAE,KAAK/O,EAAE,GAAG+O,EAAE,QAAQ,IAAI/O,EAAE,iCAAiCsC,EAAE,sCAAsCk0F,EAAE10D,EAAE/yB,EAAE,QAAQ,GAAG,CAAC,EAAE,eAAeA,EAAE,QAAQ,WAAY,OAAO/O,EAAE,iCAAiCsC,EAAE,0BAA0B,KAAK,SAAS,YAAYyM,EAAE,QAAQ,UAAU,EAAE,MAAM,OAAOA,EAAE,QAAQ,UAAUA,EAAE,QAAQ,WAAW,MAAMA,EAAE,QAAQ,UAAS,CAAE,IAAI,MAAM/O,GAAG,SAAS,MAAM,IAAI,OAAOA,GAAG,UAAU+O,EAAE,QAAQ,IAAI,IAAI,MAAM,IAAI,OAAOA,EAAE,QAAQ,KAAKA,EAAE,QAAQ,MAAM,EAAE/O,GAAG,UAAU+O,EAAE,QAAQ,KAAK,IAAI,MAAM,IAAI,MAAM,QAAQ,IAAI,EAAEqvC,EAAErvC,EAAE,QAAQ,GAAG,EAAEA,EAAE,QAAQ,KAAKA,EAAE,QAAQ,MAAM,EAAWA,EAAE,QAAQ,OAAnB,SAA0BA,EAAE,QAAQ,KAAK,GAAG/O,GAAG,SAAS+O,EAAE,QAAQ,KAAK,IAAI,EAAE,IAAIA,EAAE,QAAQ,KAAK,GAAG,CAAM/O,GAAJ,KAAQA,GAAG,MAAM,KAAK,SAAS,MAAMA,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,SAAS0zF,EAAE,CAAC,IAAIjsF,EAAE,KAAK,SAAS,qBAAqB,OAAOisF,EAAE,KAAM,KAAI,OAAO,KAAK,KAAKA,EAAE,OAAO,EAAEA,EAAE,OAAO,EAAEA,EAAE,OAAO,EAAEA,EAAE,OAAO,EAAEA,CAAC,EAAE,MAAM,IAAI,OAAO,IAAI,WAAWjsF,EAAE,YAAY,YAAY,KAAKisF,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,SAASA,EAAEjsF,EAAEsH,EAAEzM,EAAEtC,EAAE,CAAC,IAAI4V,EAAE,KAAK,SAAS,mBAAoB,EAACwoC,EAAE,KAAK,SAAS,oBAAoB7rC,EAAE,KAAK,SAAS,4BAA4BqD,EAAE,YAAY,YAAY,KAAK,CAAC,YAAY,CAAC,EAAEwoC,EAAEs1C,CAAC,EAAE,EAAEnhF,EAAE9K,CAAC,EAAE,EAAE22C,EAAEs1C,EAAE3kF,CAAC,EAAE,EAAEwD,EAAE9K,EAAEnF,CAAC,CAAC,EAAE,QAAQtC,EAAE,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,aAAa,SAAS0zF,EAAEjsF,EAAEsH,EAAEzM,EAAE,CAAC,IAAItC,EAAE4V,EAAEwoC,EAAE,KAAK,aAAas1C,CAAC,EAAEnhF,EAAE,KAAK,SAAS,cAAe,EAAC,KAAK,SAAS,YAAY,GAAYjQ,EAAE,WAAX,OAAoB,CAACsT,EAAEtT,EAAE,SAAS,IAAId,EAAE,KAAK,gBAAgBkyF,EAAE99E,CAAC,EAAE,OAAO5V,EAAE,KAAK,KAAKuS,EAAE/Q,CAAC,CAAC,MAAMoU,EAAEwoC,EAAEp+C,EAAEuS,EAAE,OAAO,KAAK,KAAKmhF,EAAEjsF,EAAEsH,EAAEzM,CAAC,EAAEyM,GAAG,GAAGwD,EAAajQ,EAAE,QAAb,WAAqBmF,GAAG22C,EAAE,GAAa97C,EAAE,QAAZ,UAAoBmF,GAAG22C,GAAG,KAAK,KAAK32C,EAAEsH,EAAEwD,EAAEqD,EAAE5V,EAAEsC,CAAC,EAAE87C,CAAC,EAAE,EAAE,aAAa,SAASs1C,EAAE,CAAC,IAAIjsF,EAAE,KAAK,SAAS,cAAc,OAAO,KAAK,mBAAmBisF,CAAC,EAAEjsF,EAAE,KAAK,SAAS,WAAW,CAAC,EAAEk0J,GAAE,GAAG,EAQptH,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KAAK,EAAE,KAAK,CAAC,MAAM,MAAM,MAAM,KA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GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE7sF,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAEytF,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE/1F,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAEo1F,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEtvD,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE6vD,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAEpD,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE8C,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAA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Q,QAAQ,QAAQ,EAAEsI,GAAG,GAAGK,GAAG,GAAGC,GAAG,EAAEC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAA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AAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAEF,GAAG,KAAKK,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,CAAC,EAAEC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE2B,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE9B,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE6B,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE5tD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAEgsD,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,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AAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM,MAAM,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,I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D,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEP,EACGC,GAAS,CACT,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC7G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CACnD,EACD,OAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEP,EACGC,GAAW,CACX,SAAU,CACN,IAAO,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAC1G,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAC3D,EACD,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IAEP,EACGC,GAAwB,SAAUhyL,EAAO6mE,EAAK2rF,EAAKy/B,EAASzvK,EAAUqlE,EAAQ,CAC9E,OAAI7nF,EAAQ6mE,GAAO7mE,EAAQwyJ,EAChB0/B,GAAkBlyL,EAAOwiB,EAAUqlE,EAAO,OAAS,CAAC,EAEvDoqG,EAAQ,SAAS,OAAO,SAAUvu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IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACrwCC,IAAW,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GA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","names":["makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","e","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","toRaw","isShallow","toReactive","shallowReadArray","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","acc","isProxy","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","toReadonly","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","markRaw","r","ref","createRef","shallowRef","rawValue","RefImpl","useDirectValue","unref","ref2","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","set","newVal","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","source","defaultValue","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","a","b","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","prepareAnchor","updateCssVars","queuePostRenderEffect","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","targetNode","Teleport","isDisabled","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getCurrentInstance","getTransitionRawChildren","findNonCommentChild","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","vnode2","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","onActivated","registerKeepAliveHook","onDeactivated","currentInstance","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","resolveDirective","warnMissing","Component","selfName","getComponentName","resolve","registry","renderList","renderItem","cached","sourceIsArray","sourceIsReactiveArray","keys","renderSlot","fallback","noSlotted","openBlock","createBlock","createVNode","slot","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","instanceWatch","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","propsOptions","descriptor","useSlots","getContext","useAttrs","createSetupContext","normalizePropsOrEmits","mergeDefaults","defaults","opt","mergeModels","applyOptions","publicThis","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","inject","h","createPathGetter","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","lastApp","currentApp","parentProvides","treatDefaultAsFactory","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","attrs","setFullProps","updateProps","rawPrevProps","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","isEmitListener","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","comp","hasExtends","extendProps","raw2","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeVNode","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","resolveChildrenNamespace","setScopeId","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","shouldUpdateComponent","updateComponentPreRender","componentUpdateFn","bu","u","parent","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","bm","root","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","leave","delayLeave","afterLeave","remove2","performLeave","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","invalidateMount","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","ssrContextKey","useSSRContext","watchEffect","doWatch","watchSyncEffect","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","watch$1","path","segments","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","i2","modelName","emit","event","rawArgs","handlerName","onceHandler","normalizeEmitsOptions","extendEmits","normalizedFromExtend","withProxy","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","getFunctionalFallthrough","blockStack","filterModelListeners","prevChildren","nextProps","nextChildren","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","suspense","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","selector","content","before","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","decorate$1","Transition","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","camelize$1","positionMap","newPositionMap","moveCbKey","decorate","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","cssTransitionProps","TransitionGroup","oldPos","newPos","dx","dy","clone","getModelAssigner","onCompositionStart","onCompositionEnd","assignKey","vModelText","lazy","trim","number","castToNumber","domValue","elValue","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","keyNames","withKeys","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","isBrowser","isRouteComponent","isESModule","assign","applyToParams","params","newParams","noop","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","listener","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","subPattern","parse","match","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","matcherRef","getRoutes","paramsFromLocation","matched","parentMatcher","mergeMetaFields","clearRoutes","normalizeRecordProps","propsObject","meta","partialOptions","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","registerGuard","removeFromList","onBeforeRouteLeave","leaveGuard","activeRecord","guardToPromiseFn","runWithContext","enterCallbackArray","reject","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","started","reactiveRoute","unmountApp","promise","recordFrom","recordTo","useRouter","useRoute","_name","BehaviorFlags","getEnumMeta","HiddenAreas","resolvePropMeta","metadata","propOrString","silent","propMeta","solidify","walk","o","toDate","argument","argStr","constructFrom","date","addDays","amount","_date","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","minutesInMonth","minutesInDay","defaultOptions","getDefaultOptions","startOfWeek","weekStartsOn","_b","_d","_c","day","startOfISOWeek","getISOWeekYear","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","differenceInCalendarDays","dateLeft","dateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","startOfISOWeekYear","fourthOfJanuary","addYears","compareAsc","_dateLeft","_dateRight","constructNow","isDate","isValid","differenceInCalendarMonths","yearDiff","monthDiff","getRoundingMethod","differenceInMilliseconds","endOfDay","endOfMonth","month","isLastDayOfMonth","differenceInMonths","sign","difference","isLastMonthNotFull","differenceInSeconds","startOfYear","cleanDate","formatDistanceLocale","formatDistance","count","tokenValue","buildFormatLongFn","width","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","_options","buildLocalizeFn","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","string","matchPattern","matchResult","matchedString","parsePatterns","findIndex","findKey","rest","predicate","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","targetLength","output","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","dayPeriodEnum","formatters","era","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","delimiter","absOffset","minutes","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","subject","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","locale","defaultLocale","_f","_e","_h","_g","originalDate","parts","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","baseDate","minutesInAlmostTwoDays","comparison","localizeOptions","seconds","offsetInSeconds","months","days","nearestMonth","monthsSinceStartOfYear","years","formatDistanceToNow","getInternalDefaultOptions","getISODay","transpose","fromDate","constructor","TIMEZONE_UNIT_PRIORITY","Setter$1","__publicField","_utcDate","Setter","validateValue","setValue","priority","subPriority","flags","Parser$2","dateString","ValueSetter","_value","Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","valueCallback","normalizedTwoDigitYear","_flags","firstWeekOfYear","setWeek","setISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYear","setDay","currentDay","dayIndex","wholeWeekDays","setISODay","isPM","parsers","EraParser","YearParser","LocalWeekYearParser","ISOWeekYearParser","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","ISOWeekParser","DateParser","DayOfYearParser","DayParser","LocalDayParser","StandAloneLocalDayParser","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","notWhitespaceRegExp","dateStr","referenceDate","subFnOptions","DateToSystemTimezoneSetter","usedTokens","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setterArray","lightFormat","matches","tzIntlTimeZoneName","dtf","getDTF","partsTimeZone","hackyTimeZone","formatted","tzNameMatch","timeZone","tzTokenizeDate","getDateTimeFormat","partsOffset","hackyOffset","typeToPos","filled","pos","parsed","dtfCache","testDateFormatted","hourCycleSupported","newDateUTC","fullYear","hour","minute","second","millisecond","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","patterns","tzParseTimezone","timezoneString","isUtcDate","absoluteOffset","validateTimezone","isValidTimezoneIANAString","toUtcDate","calcOffset","fixOffset","asUTC","asTS","over","utcGuess","o2","o3","validIANATimezoneCache","timeZoneString","getTimeZoneOffset","timeZoneOffset","tzPattern","DEFAULT_ADDITIONAL_DIGITS","additionalDigits","dateStrings","splitDateString","restDateString","parseYear","parseDate","time","parseTime","timeString","patternYYY","patternYYYYY","yearString","centuryString","validateDate","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","validateTime","fourthOfJanuaryDay","tzFormattingTokensRegExp","precededByQuotedSection","dateFnsFormat","toZonedTime","offsetMilliseconds","resultDate","formatInTimeZone","isNullOrWhitespace","iso8601DateRegex","iso8601TimeRegex","parseJSONDate","kind","timeParts","partTzOffset","parseDateUserInput","defaultDate","dateKind","mmddyy","sep","bestGuessMaxDiffMs","bestMatch","bestMatchDiff","candidate","objectToQueryString","includeNull","items","buildParams","objectToFormData","rbracket","isScalarFormValue","prefix","isScalarArray","ReactiveFlags_SKIP","getInternalInstance","vue","IsVue2","IsVue3","Visitor","parseError","details","parseValue","ModelConversionVisitor","propName","propVal","convertToModel","mapToModel","MapToDtoVisitor","maxObjectDepth","objectValue","objectValuePkValue","serializeAs","mapToDto","mapToDtoFiltered","dto","filteredDto","field","DisplayVisitor","enumeratedItemsMax","enumeratedItemsSeparator","itemMeta","childItem","enumData","formatString","formatOptions","isLightFormatString","formatOptionInput","addSuffix","includeSeconds","padding","defaultDisplayVisitor","modelDisplay","modelMeta","propDisplay","valueDisplay","coalescePendingQuery","bindToQueryString","queryKey","paused","updateObject","newQuery","useBindToQueryString","reactiveDataSource","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","prototype","isFile","isBlob","isFileList","isStream","isFormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","allOwnKeys","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","lastIndex","toArray","isTypedArray","TypedArray","forEachEntry","pair","matchAll","regExp","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducer","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","size","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","callbacks","asap","utils$1","AxiosError","code","config","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","ignoreDuplicateOf","parseHeaders","rawHeaders","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","transformData","isCancel","CanceledError","settle","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","threshold","lastArgs","timer","invoke","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","onloadend","responseHeaders","timeoutErrorMessage","cancel","protocol","composeSignals","signals","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","isFetchSupported","isReadableStreamSupported","encodeText","test","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","body","resolveBodyLength","fetchAdapter","cancelToken","withCredentials","fetchOptions","composedSignal","requestContentLength","_request","contentTypeHeader","isCredentialsSupported","isStreamResponse","responseContentLength","responseData","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","axios","promises","DataSourceParameters","SaveParameters","FilterParameters","ListParameters","mapParamsToDto","parameters","wideParams","simpleParams","paramsObject","dataSource","paramsMeta","paramName","paramMeta","parseApiResult","getMessageForError","statusText","AxiosClient","simultaneousGetCache","ApiClient","$metadata","resultType","argsFactory","argsInvoker","localResultType","ItemApiStateWithArgs","ListApiStateWithArgs","ItemApiState","ListApiState","standardParameters","mappedParams","hasFile","axiosRequest","doCache","disposition","fileName","utf8FilenameRegex","asciiFilenameRegex","filenameStart","partialDisposition","blob","func","capture","old","capturedRequests","pureType","ModelApiClient","fields","ServiceApiClient","ApiStateBase","apiClient","ApiState","configuration","responseCacheConfig","originalInvoker","requests","keyFunc","storage","configuredMaxAge","defaultKey","userKey","cachedValue","storedMaxAge","effectiveMaxAge","cbResult","resp","purgeStaleCacheEntries","thrown","windowUnloading","resultJson","maxAge","objUrl","resetArgs","freeGlobal","freeSelf","Symbol","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","arrayMap","iteratee","INFINITY","symbolProto","symbolToString","baseToString","reWhitespace","trimmedEndIndex","reTrimStart","baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","other","isBinary","MAX_INTEGER","toFinite","toInteger","remainder","baseUnary","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","types","baseSlice","castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","stringToArray","baseProperty","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","wait","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","debounced","isInvoking","regexpTag","baseIsRegExp","nodeIsRegExp","asciiSize","unicodeSize","stringSize","DEFAULT_TRUNC_LENGTH","DEFAULT_TRUNC_OMISSION","reFlags","truncate","omission","strLength","strSymbols","newEnd","nextStableId","emptySet","_ViewModel","$apiClient","initialDirtyData","ctor","ViewModelFactory","dirty","triggerAutosave","effectiveRules","custom","propRules","ignored","rules","ruleName","ruleFn","identifier","rule","ignoreSpec","removed","$load","startTime","$save","overrideProps","joinErrors","dirtyProps","propsToSave","$bulkSave","itemsToSend","dataToSend","errors","dataByRef","refMap","model","age","unloadedTypes","nextModels","getData","currentModels","dependents","principal","collection","action","pkValue","fk","isCleanData","purgeUnsaved","updateViewModelFromModel","$delete","idx","debounceOptions","AutoCallState","ranOnce","enqueueSave","isPending","startAutoCall","newViewModel","ViewModel","ListViewModel","ViewModelCollection","vmc","rebuildModelCollectionForViewModelCollection","$count","enqueueLoad","onChange","watcher","ServiceViewModel","_ViewModelFactory","initialData","vmCtor","vm","viewModelCollectionName","viewModelCollectionMapItems","collectedTypeMeta","viewModel","autoSaveState","resolveProto","proto","$parent","viewModelItems","deleteCount","defineProps","hasWatcherFlag","incomingValue","incomingPk","hasLoaded","$data","$dataRaw","watcherFinalizationRegistry","weakThis","currentObject","incomingLength","currentLength","pkName","existingItemsMap","existingItemsWithoutPk","itemPk","incomingItem","incomingItemPk","existingItem","existingItemsLength","currentItem","skipDirty","skipStale","incomingIsStale","newCollection","debouncer","heldValue","setPrototypeOf","isFrozen","getOwnPropertyDescriptor","freeze","seal","create","construct","fun","thisValue","Func","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len","_len2","_key2","addToSet","transformCaseFunc","element","lcElement","cleanArray","newObject","property","lookupGetter","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","tagName","parentTagName","_forceRemove","_removeAttribute","_initDocument","leadingWhitespace","dirtyPayload","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","_sanitizeElements","_isBasicCustomElement","childNodes","childCount","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","attr","namespaceURI","attrValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","entryPoint","hookFunction","purify","_typeof","requiredArgs","required","addMilliseconds","dirtyDate","dirtyAmount","addMinutes","roundingMap","defaultRoundingMethod","differenceInMinutes","subMilliseconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","startOfUTCISOWeek","getUTCISOWeekYear","startOfUTCISOWeekYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","getUTCWeekYear","_options$firstWeekCon","startOfUTCWeekYear","getUTCWeek","dirtyDelimiter","protectedDayOfYearTokens","protectedWeekYearTokens","throwProtectedError","dirtyIndex","_defaultWidth","_width","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","_arrayLikeToArray","_unsupportedIterableToArray","arrayLikeToArray","t","_createForOfIteratorHelper","unsupportedIterableToArray","_n","F","_assertThisInitialized","_setPrototypeOf","_inherits","_getPrototypeOf","_isNativeReflectConstruct","_possibleConstructorReturn","assertThisInitialized","_createSuper","isNativeReflectConstruct","possibleConstructorReturn","_classCallCheck","toPrimitive","toPropertyKey","_defineProperties","_createClass","_defineProperty","_Setter","_super","_this","_Setter2","_super2","_this2","convertedDate","_Parser","setUTCWeek","dirtyWeek","setUTCISOWeek","dirtyISOWeek","setUTCDay","dirtyDay","setUTCISODay","dirtyDateString","dirtyFormatString","dirtyReferenceDate","_iterator","_step","_loop","_ret","_iterator2","_step2","subMinutes","f","y","A","P","C","T","$","M","N","H","I","z","L","q","S","B","O","D","G","U","V","W","Z","J","K","Q","nn","tn","en","styleTexts","styleEls","injectStyles","styleText","styleEl","appendStylesTo","ensureElHasStyles","registerStylesRoot","rootNode","nonce","getNonceValue","parentEl","insertBefore","hydrateStylesRoot","sheet","ruleCnt","styleStr","queriedNonceValue","queryNonceValue","metaWithNonce","elWithNonce","css_248z","DelayedRunner","drainedOption","delay","pauseDepths","removeElement","elementClosest","elementMatches","findElements","containers","allMatches","PIXEL_PROP_RE","applyStyle","applyStyleProp","getEventTargetViaRoot","ev","guid$1","getUniqueDomId","preventDefault","buildDelegationHandler","matchedChild","listenBySelector","eventType","attachedHandler","listenToHoverBySelector","onMouseEnter","onMouseLeave","currentMatchedChild","mouseOverEv","realOnMouseLeave","mouseLeaveEv","transitionEventNames","whenTransitionDone","realCallback","eventName","createAriaClickAttrs","createAriaKeyboardAttrs","guidNumber","guid","disableCursor","enableCursor","preventSelection","allowSelection","preventContextMenu","allowContextMenu","parseFieldSpecs","specs","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","padStart","formatWithOrdinals","fallbackText","compareNumbers","isInt","computeSmallestCellWidth","cellEl","allWidthEl","contentWidthEl","INTERNAL_UNITS","PARSE_RE","createDuration","unit","parseString","parseObject","weeks","durationsEqual","d0","d1","addDurations","subtractDurations","multiplyDuration","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","wholeDivideDurations","numerator","denominator","localRes","greatestDurationDenominator","ms","isArraysEqual","a0","a1","equalityFunc","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addMs","diffWeeks","m0","m1","diffDays","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","m1day","diffWholeWeeks","diffWholeDays","timeAsMs","startOfHour","startOfMinute","startOfSecond","weekOfYear","marker","dow","doy","weekOfGivenYear","nextW","firstWeekStart","firstWeekOffset","dayStart","fwd","dateToLocalArray","arrayToLocalDate","isValidDate","buildIsoString","stripZeroTime","formatTimeZoneOffset","formatDayString","formatIsoMonthStr","formatIsoTimeString","doIso","abs","mins","memoize","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","memoizeObjArg","currentArg","newArg","isPropsEqual","EXTENDED_SETTINGS_AND_SEVERITIES","STANDARD_DATE_PROP_SEVERITIES","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","buildFormattingFunc","betterDefaultSeparator","diffSeverity","computeMarkerDiffSeverity","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","insertion","findCommonInsertion","standardDatePropCnt","formatWeekNumber","buildNativeFormattingFunc","sanitizeSettings","normalFormat","zeroFormat","zeroProps","postProcess","injectTzoStr","tzoStr","num","weekText","weekTextLong","display","ca","biggestUnit","i0","found0","before0","after0","i1","found1","before1","after1","expandZonedMarker","dateInfo","calendarSystem","createVerboseFormattingArg","startInfo","endInfo","CmdFormatter","cmdStr","FuncFormatter","createFormatter","BASE_OPTION_REFINERS","identity","BASE_OPTION_DEFAULTS","CALENDAR_LISTENER_REFINERS","CALENDAR_OPTION_REFINERS","COMPLEX_OPTION_COMPARATORS","isMaybeObjectsEqual","isMaybeArraysEqual","VIEW_OPTION_REFINERS","mergeRawOptions","optionSets","refineProps","refiners","refined","extra","propObjs","complexPropsMap","dest","complexObjs","filterHash","filtered","mapHash","newHash","arrayToHash","hashValuesToArray","HANDLER_RE","isNonHandlerPropsEqual","getUnequalProps","compareObjs","equalityFuncs","isObjValsEqual","val0","val1","comparator","collectFromHash","startIndex","endIndex","step","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","ISO_RE","DateEnv","settings","isNamedTimeZone","forcedTzo","dateOptions","Theme","calendarOptions","iconOverrideHash","iconClassesCopy","buttonName","className","isRtl","customButtonProps","flushSync","runBeforeFlush","oldDebounceRendering","preact.options","callbackQ","execCallbackSync","preact.render","preact.createElement","FakeComponent","preact.Component","createContext","ContextType","preact.createContext","origProvider","isNew","subs","_props","ScrollResponder","execFunc","emitter","scrollTime","scrollTimeReset","isDatesNew","ViewContextType","buildViewContext","viewSpec","viewApi","viewOptions","dateProfileGenerator","dateEnv","theme","pluginHooks","dispatch","getCurrentData","calendarApi","registerInteractiveComponent","unregisterInteractiveComponent","PureComponent","nextState","newState","addPropsEquality","addStateEquality","BaseComponent","propEquality","stateEquality","ContentInjector","generatorName","hasCustomRenderingHandler","customGenerator","defaultGenerator","renderProps","buildElAttrs","useDefault","innerContent","queuedDomNodes","currentGeneratorMeta","customGeneratorRes","createElement","isValidElement","handleCustomRendering","customRenderingMetaMap","generatorMeta","isTruthy","currentDomNodes","newNode","extraClassNames","elRef","RenderId","ContentContainer","InnerContentInjector","generatedClassNames","generateClassNames","elAttrs","containerComponent","parentProps","classNameGenerator","classNames","ViewContainer","buildViewClassNames","parseRange","invertRanges","ranges","constraintRange","invertedRanges","dateRange","compareRanges","range0","range1","intersectRanges","newRange","rangesEqual","rangesIntersect","rangeContainsRange","outerRange","innerRange","rangeContainsMarker","range","constrainMarkerToRange","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","nextDayThreshold","startDay","endDay","endTimeMS","diffDates","date0","date1","largeUnit","reduceCurrentDate","currentDate","getInitialDate","initialDateInput","nowInput","DateProfileGenerator","currentDateProfile","forceToValid","prevDate","nextDate","direction","validRange","currentInfo","isRangeAllDay","renderRange","activeRange","simpleInput","dayCount","usesMinMaxTime","slotMinTime","slotMaxTime","dateAlignment","dateIncrement","computeRes","runningCount","currentRange","currentRangeUnit","customAlignment","rangeInput","hiddenDays","isHiddenDayHash","inc","isExclusive","createEventInstance","defId","forcedStartTzo","forcedEndTzo","parseRecurring","defaultAllDay","recurringTypes","allDay","expandRecurring","eventStore","framingRange","defs","instances","starts","expandRecurringRanges","eventDef","markers","EVENT_NON_DATE_REFINERS","EVENT_DATE_REFINERS","EVENT_REFINERS","parseEvent","eventSource","allowOpenRange","buildEventRefiners","defIdMap","instanceIdMap","refineEventDef","computeIsDefaultAllDay","recurringRes","parseEventDef","singleRes","parseSingle","EVENT_UI_REFINERS","sourceId","hasEnd","createEventUi","memberAdder","startMeta","startMarker","endMeta","endMarker","startInput","parseEvents","rawEvents","createEmptyEventStore","eventRefiners","rawEvent","tuple","eventTupleToStore","getRelevantEvents","instanceId","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","mergeEventStores","store0","store1","filterFunc","excludeSubEventStore","master","filteredDefs","filteredInstances","normalizeConstraint","parseClassNames","EMPTY_EVENT_UI","constraint","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_SOURCE_REFINERS","parseEventSource","buildEventSourceRefiners","rawObj","metaRes","buildEventSourceMeta","reduceEventStore","eventSources","dateProfile","receiveRawEvents","resetRawEvents","addEvent","excludeEventsBySourceId","fetchId","fetchRange","subset","transformRawEvents","existingEventStore","buildPublicIdMaps","newEventStore","calEachTransform","sourceEachTransform","transformEachRawEvent","refinedEvents","refinedEvent","expandRange","rezoneEventStoreDates","oldDateEnv","newDateEnv","excludeInstances","removals","publicId","Emitter","thisContext","addToHash","removeFromHash","attachedHandlers","optionHandler","DEF_DEFAULTS","parseBusinessHours","refineInputs","rawDefs","rawDef","triggerDateSelect","selection","pev","buildDateSpanApiWithContext","triggerDateUnselect","dateSpan","transform","buildDateSpanApi","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","compileEventUis","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","standardProps","copy","applier","eventInstance","forceAllDay","clearEnd","EventSourceImpl","internalEventSource","EventImpl","ui","instanceRange","startDelta","endInput","endDelta","deltaInput","maintainDuration","formatInput","relevantEvents","oldEvent","buildEventApis","asStore","eventApiToStore","startStr","endStr","eventApi","excludeInstance","eventApis","excludeInstanceId","sliceEventStore","eventUiBases","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","origRange","normalRange","slicedRange","groupId","invertedRange","hasBgRendering","setElSeg","seg","getElSeg","eventDefs","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","eventRange","computeSegDraggable","transformers","transformer","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","displayEventTime","displayEventEnd","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","nowDate","segRange","getEventClassNames","buildEventRangeKey","getSegAnchorAttrs","eventInteractive","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","isDateSpansEqual","span0","span1","isSpanPropsEqual","buildRangeApi","buildRangeApiWithTimeZone","omitTime","fabricateEventRange","unpromisify","normalizedSuccessCallback","normalizedFailureCallback","isResolved","wrappedSuccess","wrappedFailure","JsonRequestError","requestJson","fetchRes","parsedResponse","canVGrowWithinCell","getCanVGrowWithinCell","computeCanVGrowWithinCell","possible","CalendarRoot","forPrint","isHeightAuto","height","Interaction","parseInteractionSettings","interactionSettingsToStore","interactionSettingsStore","CalendarImpl","currentDataManager","viewType","dateOrRange","dateMarker","spec","viewSpecs","toolbarConfig","viewTypes","zonedDateInput","dateOrObj","endDate","selectionInput","eventInput","sourceInput","sourceApi","newEventApi","currentData","sourceHash","sourceApis","internalId","timeInput","pointInsideRect","point","rect","intersectRects","rect1","rect2","constrainPoint","getRectCenter","diffPoints","point1","point2","EMPTY_EVENT_STORE","Splitter","keyInfos","defKeys","dateSelections","individualUi","eventStores","eventDrags","eventResizes","splitProps","buildEventUiForKey","keyInfo","buildEventUi","dateSpans","splitStores","splitHashes","interaction","splitStates","affectedStores","mutatedKeysByDefId","mutatedStores","populate","allUi","eventUiForKey","baseParts","stuff","getDateMeta","getDayClassNames","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","zonedDate","handleInteraction","customAction","_isRtlScrollbarOnLeft","getIsRtlScrollbarOnLeft","computeIsRtlScrollbarOnLeft","outerEl","_scrollbarWidths","getScrollbarWidths","computeScrollbarWidths","computeScrollbarWidthsForEl","computeEdges","getPadding","computedStyle","borderLeft","borderRight","borderTop","borderBottom","badScrollbarWidths","scrollbarLeftRight","scrollbarBottom","computeInnerRect","goWithinPadding","doFromWindowViewport","outerRect","computeRect","edges","computeClippedClientRect","clippingParents","getClippingParents","clippingParent","intersection","parents","PositionCache","originEl","els","isHorizontal","isVertical","originClientRect","originClientLeft","lefts","rights","originClientTop","tops","bottoms","leftPosition","topPosition","leftIndex","topIndex","otherCache","similarNumArrays","ScrollController","ElementScrollController","top","left","WindowScrollController","DateComponent","positionLeft","positionTop","elWidth","elHeight","SegHierarchy","getEntryThickness","entry","inputs","hiddenEntries","hiddenEntry","intersectSpans","barrier","entrySpan","barrierSpan","entriesByLevel","levelCoords","insertAt","buildEntryKey","newEntry","strictOrder","stackCnts","levelCnt","candidateCoord","touchingLevel","touchingLateral","touchingEntry","stackCnt","trackingLevel","trackingCoord","trackingEntries","trackingEntry","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","rects","level","levelCoord","groupIntersectingEntries","merges","filteredMerges","hungryMerge","joinSpans","searchVal","getItemVal","middleIndex","middleVal","ElementDragging","bool","computeFallbackHeaderFormat","datesRepDistinctDays","CLASS_NAME","renderInner$1","TableDateCell","dayMeta","navLinkAttrs","InnerContainer","WEEKDAY_FORMAT","TableDowCell","dateMeta","InnerContent","NowTimer","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","DayHeader","createDayHeaderFormatter","dates","renderIntro","dayHeaderFormat","explicitFormat","dateCnt","DaySeriesModel","indices","firstIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","firstDay","rowCnt","rows","row","cells","col","colCnt","seriesSeg","Slicer","extraArgs","eventSegs","businessHours","computeActiveRange","rangeRes","activeDateSpanRange","eventRanges","isComponentAllDay","isInteractionValid","isNewPropsValid","isDateSelectionValid","dateSelection","calendarState","isPropsValid","dateSpanMeta","filterConfig","isInteractionPropsValid","isDateSelectionPropsValid","subjectEventStore","subjectDefs","subjectInstances","subjectConfigs","otherEventStore","otherDefs","otherInstances","otherConfigs","subjectInstanceId","subjectInstance","subjectRange","subjectConfig","subjectDef","allConstraintsPass","eventOverlap","eventOverlapFunc","otherInstanceId","otherInstance","calendarEventStore","subjectAllow","subjectDateSpan","origDef","origInstance","relevantEventStore","relevantDefs","relevantInstances","selectionRange","selectionConfig","selectOverlap","selectOverlapFunc","relevantInstanceId","relevantInstance","selectionAllow","fullDateSpan","constraints","businessHoursUnexpanded","anyRangesContainRange","constraintToRanges","eventStoreToRanges","outerRanges","VISIBLE_HIDDEN_RE","Scroller","liquid","liquidIsAbsolute","isAbsolute","realClientWidth","realClientHeight","RefMap","masterCallback","depths","currentMap","added","refCallback","computeShrinkWidth","chunkEls","shrinkCells","largestWidth","shrinkCell","getSectionHasLiquidHeight","sectionConfig","getAllowYScrolling","renderChunkContent","chunkConfig","isHeader","expandRows","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","colNodes","colProps","sanitizeShrinkWidth","hasShrinkWidth","getScrollGridClassNames","getSectionClassNames","wholeTableVGrow","renderScrollShim","getStickyHeaderDates","stickyHeaderDates","getStickyFooterScrollbar","stickyFooterScrollbar","SimpleScrollGrid","sectionConfigs","microColGroupNode","configCnt","configI","currentConfig","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","needsYScrolling","isLiquid","overflowY","sectionKey","scrollerEl","section","getSectionByKey","scrollbarWidth","scrollerRefs","scrollerElRefs","scroller","harnessEl","sections","EventContainer","StandardEvent","timeText","renderInnerContent$1","eventContentArg","innerProps","NowIndicatorContainer","DAY_NUM_FORMAT","DayCellContainer","refineRenderProps","hasCustomDayCellContent","isMonthStart","dayNumberText","BgEvent","renderInnerContent","title","renderFill","fillType","WeekNumberContainer","renderInner","PADDING_FROM_VIEWPORT","Popover","onClose","createPortal","alignmentEl","alignGridTop","rootEl","alignmentRect","popoverDims","popoverTop","popoverLeft","MorePopover","startDate","MoreLinkContainer","linkEl","moreLinkClick","computeRange","buildPublicSeg","moreLinkText","moreCnt","hint","renderMoreLinkInner","hiddenSegs","computeEarliestSegStart","computeLatestSegEnd","pickEarliestStart","seg0","seg1","pickLatestEnd","Store","CustomRenderingStore","customRendering","globalLocales","MINIMAL_RAW_EN_LOCALE","RAW_EN_LOCALE","buttonText","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","rawLocale","buildLocale","inputSingular","available","parseLocale","queryLocale","codeArg","codes","queryRawLocale","simpleId","createPlugin","buildPluginHooks","pluginDefs","globalDefs","currentPluginIds","addDefs","pluginName","currentId","combineHooks","buildBuildPluginHooks","currentOverrideDefs","currentGlobalDefs","currentHooks","overrideDefs","hooks0","hooks1","compareOptionalDates","StandardTheme","compileViewDefs","defaultConfigs","overrideConfigs","ensureViewDef","viewDef","buildViewDef","overrideConfig","queryProp","theComponent","superType","superDef","parseViewConfigs","parseViewConfig","rawOptions","createViewHookComponent","viewProps","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","buildViewSpec","durationInput","durationUnit","singleUnit","singleUnitOverrides","createDurationCached","denom","queryButtonText","optionsSubset","buttonTextMap","buttonTextKey","queryButtonTitle","buttonHints","buttonKey","durationInputMap","json","reduceViewType","reduceDynamicOptionOverrides","reduceDateProfile","dp","initEventSources","addSources","parseInitialSources","reduceEventSources","removeSource","fetchDirtySources","fetchSourcesByIds","excludeStaticSources","receiveResponse","reduceEventSourcesNewTimeZone","computeEventSourcesLoading","eventSourceHash","sources","isSourceDirty","doesSourceNeedRange","prevSources","sourceIdHash","isRefetch","nextSources","fetchSource","sourceDef","errorHandled","rawSources","rawSource","reduceDateSelection","currentSelection","reduceSelectedEvent","currentInstanceId","reduceEventDrag","currentDrag","newDrag","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","parseToolbar","footer","sectionStrHash","sectionWidgets","viewsWithButtons","hasTitle","sectionName","sectionStr","sectionRes","parseSection","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonClick","buttonIcon","buttonHint","textFallback","prevOrNext","navUnit","ViewImpl","eventSourceDef$2","successCallback","arrayEventSourcePlugin","eventSourceDef$1","errorCallback","funcEventSourcePlugin","JSON_FEED_EVENT_SOURCE_REFINERS","eventSourceDef","requestParams","buildRequestParams","jsonFeedEventSourcePlugin","startParam","endParam","timeZoneParam","customRequestParams","SIMPLE_RECURRING_REFINERS","recurring","recurringData","typeData","clippedFramingRange","expandRanges","simpleRecurringEventsPlugin","daysOfWeek","dowHash","dayMarker","instanceStarts","instanceStart","changeHandlerPlugin","events","handleEventSources","unfoundSources","newInputs","inputFound","unfoundSource","newInput","handleDateProfile","handleEventStore","globalPlugins","TaskRunner","runTaskOption","task","completedTasks","buildTitle","buildTitleFormat","CalendarDataManager","buildDateEnv$1","buildTheme","buildDateProfileGenerator","buildViewApi","buildViewUiProps","buildEventUiBySource","buildEventUiBases","parseContextBusinessHours","optionsData","currentViewType","currentViewData","calendarContext","initialState","contextAndState","computeIsLoading","changedOptionNames","renderableEventStore","eventUiSingleBase","eventUiBySource","wasLoading","isLoading","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","optionName","refinedOptions","availableLocaleData","warnUnknownOptions","locales","availableRawLocales","currentRaw","currentRefined","anyChanges","explicitLocale","weekNumberCalculation","defaultSeparator","ThemeClass","DateProfileGeneratorClass","isLoadingFunc","viewName","ToolbarSection","widgetGroup","isOnlyButtons","widget","isPressed","buttonClasses","groupClassName","Toolbar","extraClassName","forceLtr","startContent","endContent","centerContent","widgetGroups","ViewHarness","aspectRatio","paddingBottom","EventClicking","segEl","hasUrlContainer","EventHovering","publicEvName","CalendarContent","buildViewPropTransformers","buildToolbarProps","settingsInput","interactions","TheInteractionClass","toolbarProps","viewVGrow","viewHeight","viewAspectRatio","viewContext","viewLabelId","CalendarInteractionClass","propSetHandlers","buildAppendContent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","Calendar","wasRendering","classList","OPTION_IS_COMPLEX","FullCalendar","suppliedOptions","kebabToCamelKeys","customRenderingNodes","CustomRenderingComponent","customRenderingStore","calendar","customRenderingMap","buildWatchers","watchers","complexOptionName","newMap","kebabToCamel","word","TableView","headerRowContent","bodyContent","dayMinWidth","ScrollGrid","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","TableBlockEvent","TableListItemEvent","TableCellMoreLink","compileSegs","allSegs","invisibleSegs","isForcedInvisible","singlePlacements","placement","DEFAULT_WEEK_NUM_FORMAT","TableCell","rootElRef","shouldDisplayMonthStart","renderTopInner","currentStart","currentEnd","currentEndIncl","currentFirstYear","currentFirstMonth","currentLastYear","currentLastMonth","generateSegKey","generateSegUid","computeFgSegPlacement","dayMaxEvents","dayMaxEventRows","segHeights","maxContentHeight","hierarchy","DayGridSegHierarchy","segEntry","segUid","segInputs","unknownHeightSegs","segRects","singleColPlacements","multiColPlacements","leftoverMargins","placeRects","moreCnts","moreMarginTops","resliceSeg","hiddenSpan","allRects","rectsByEachCol","groupRectsByEachCol","currentHeight","currentMarginTop","multiPlacements","isFirstCol","spanStart","spanEnd","excludeHidden","forceHidden","touchingEntryId","hiddenEntryId","TableRow","isForced","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","mirrorSegsByCol","cell","normalFgNodes","mirrorFgNodes","buildMirrorPlacements","prevState","currentProps","segPlacements","isDragging","isResizing","isDateSelecting","eventSelection","framePositions","isMirror","nodes","isVisible","right","leftRightCss","isExternalSizingChange","frameElRefs","frameEls","newPositionCache","oldSegHeights","newSegHeights","limitByContentHeight","segElMap","firstKey","fcContainerEl","elMap","mirrorSegs","colPlacements","topsByInstanceId","buildAbsoluteTopHash","placements","TableRows","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","cellMinHeight","isSegAllDay","firstCellEl","rowObj","colPositions","rowPositions","Table","limitViaBalanced","subjectEl","getScrollSubjectEl","scrollEl","scrollTop","containerEl","DayTableSlicer","dayTableModel","DayTable","DayTableView","buildDayTableModel","headerContent","contentArg","TableDateProfileGenerator","buildDayTableRenderRange","endOfWeek","lastMonthRenderStart","AllDaySplitter","DEFAULT_SLAT_LABEL_FORMAT","TimeColsAxisCell","labelFormat","TimeBodyAxis","slatMeta","AUTO_ALL_DAY_MAX_EVENT_ROWS","TimeColsView","rowKey","frameHeight","rowHeight","renderAllDayInner","slatCoords","allDayContent","timeContent","slatMetas","isNowIndicator","nowIndicatorTop","TimeColsSlatsCoords","positions","slotDuration","startOfDayDate","timeMs","when","slatCoverage","slatIndex","slatRemainder","TimeColsSlatsBody","slatElRefs","TimeColsSlats","collectSlatEls","splitSegsByCol","segsByCol","splitInteractionByCol","TimeColMoreLink","renderPlainFgSegs","buildPositioning","maxStackCnt","hiddenGroups","web","buildWeb","stretchWeb","webToRects","buildNode","cacheable","lateral","siblingRange","findNextLevelSegs","nextLevelRes","buildNodes","lateralStart","lateralEnd","pairs","cmpDescPressures","extractNode","subjectLevel","subjectLateral","subjectEntry","afterSubject","searchIndex","topLevelNodes","totalThickness","stretchNode","startCoord","prevThickness","nextLevelNodes","thickness","allThickness","thicknessFraction","endCoord","childNode","newThickness","processNode","stackDepth","processNodes","stackForward","workFunc","computeSegVCoords","colDate","eventMinHeight","vcoords","computeFgSegPlacements","segVCoords","eventOrderStrict","eventMaxStack","dumbSegs","segRect","dumbSeg","DEFAULT_TIME_FORMAT","TimeColEvent","TimeCol","isSelectMirror","interactionAffectedInstances","sortedFgSegs","segIsInvisible","forcedKey","eventShortHeight","segPlacement","vStyle","computeSegVStyle","hStyle","isInset","isShort","extraDateSpan","eventDrag","eventResize","hiddenGroup","positionCss","compileSegsFromEntries","segHCoords","shouldOverlap","nearCoord","farCoord","hiddenInstances","segEntries","TimeColsContent","nowIndicatorSegsByRow","collectCellEls","TimeCols","processSlotOptions","onScrollTopRequest","colCoords","snapDuration","snapsPerSlot","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","dayDate","snapDurationOverride","DayTimeColsSlicer","dayRanges","DayTimeCols","buildDayRanges","nowIndicator","STOCK_SUB_DURATIONS","buildSlatMetas","explicitLabelInterval","slatTime","slatIterator","labelInterval","computeLabelInterval","metas","isLabeled","slotsPerLabel","DayTimeColsView","buildTimeColsModel","hasAttachedAxis","hasDetachedAxis","timeGridContent","OPTION_REFINERS","ignoreMouseDepth","listenerCnt","isWindowTouchMoveCancelled","PointerDragging","isPrimaryMouseButton","targetEl","startIgnoringMouse","pageX","pageY","listenerCreated","listenerDestroyed","downEl","isFirst","deltaX","deltaY","touches","onWindowTouchMove","ElementMirror","sourceEl","needsRevertAnimation","revertDuration","mirrorEl","finalSourceElRect","sourceElRect","ScrollGeomCache","scrollController","doesListening","ElementScrollGeomCache","WindowScrollGeomCache","getTime","AutoScroller","edge","scrollStartEl","pointerScreenX","pointerScreenY","yDelta","xDelta","scrollCache","edgeThreshold","invDistance","velocity","bestSide","scrollCaches","leftDist","rightDist","topDist","bottomDist","FeaturefulElementDragging","minDistance","distanceSq","pointer","OffsetTracker","isIgnoredClipping","HitDragging","dragging","droppableStore","origPoint","adjustedPoint","subjectRect","initialHit","slicedSubjectRect","forceHandle","hit","isHitsEqual","interactionSettings","offsetTrackers","offsetLeft","offsetTop","bestHit","offsetTracker","originLeft","originTop","origRect","hit0","hit1","buildDatePointApiWithContext","buildDatePointApi","DateClicking","finalHit","hitDragging","DateSelecting","canSelect","getComponentTouchDelay$1","isFinal","dragSelection","isInvalid","joinHitsIntoSelection","dateSelectionTransformers","dateSpan0","dateSpan1","EventDragging","origTarget","mirror","initialContext","subjectSeg","eventInstanceId","getComponentTouchDelay","receivingContext","mutatedRelevantEvents","receivingOptions","computeEventMutation","initialView","validMutation","updatedEventApi","eventChangeArg","transformed","eventRemoveArg","addedEventDef","addedEventInstance","addedEventApi","eventAddArg","nextContext","prevContext","initialCalendar","eventInstanceStart","massagers","massager","EventResizing","computeMutation","isFromStart","UnselectAuto","selectInfo","unselectCancel","documentPointer","unselectAuto","LISTENER_REFINERS","R","HttpError","errorMessage","statusCode","trueProto","TimeoutError","AbortError","UnsupportedTransportError","transport","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","HttpResponse","HttpClient","LogLevel","NullLogger","_logLevel","Arg","Platform","getDataDetail","includeContent","detail","formatArrayBuffer","view","pad","sendMessage","logger","transportName","httpClient","accessTokenFactory","getUserAgentHeader","createLogger","ConsoleLogger","SubjectSubscription","observer","minimumLogLevel","logLevel","msg","userAgentHeaderName","constructUserAgent","getOsName","getRuntime","getRuntimeVersion","os","runtime","runtimeVersion","userAgent","majorAndMinor","getErrorString","FetchHttpClient","requireFunc","abortController","timeoutId","msTimeout","deserializeContent","XhrHttpClient","xhr","DefaultHttpClient","TextMessageFormat","messages","HandshakeProtocol","handshakeRequest","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","MessageType","Subject","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HubConnectionState","HubConnection","connection","reconnectPolicy","handshakePromise","startPromise","streams","streamIds","invocationDescriptor","promiseQueue","cancelInvocation","invocationEvent","sendPromise","newMethod","removeIdx","responseMessage","nextPing","invocationMessage","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","previousRetryCount","elapsedMilliseconds","retryReason","nonblocking","invocationId","streamId","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","retryContext","HeaderNames","HttpTransportType","TransferFormat","AbortController$1","LongPollingTransport","AbortController","transferFormat","pollOptions","pollUrl","deleteOptions","logMessage","ServerSentEventsTransport","opened","WebSocketTransport","logMessageContent","webSocketConstructor","webSocket","_event","MAX_REDIRECTS","HttpConnection","webSocketModule","eventSourceModule","TransportSendQueue","negotiateResponse","redirects","accessToken","negotiateUrl","connectionToken","requestedTransport","requestedTransferFormat","connectUrl","transportExceptions","transports","negotiate","endpoint","transportOrError","ex","transportMatches","aTag","actualTransport","_transport","PromiseSource","transportResult","arrayBuffers","totalLength","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","LogLevelNameMapping","parseLogLevel","mapping","HubConnectionBuilder","logging","isLogger","transportTypeOrOptions","retryDelaysOrReconnectPolicy","httpConnectionOptions","u8","u16","i32","fleb","fdeb","clim","freb","eb","fl","revfl","fd","revfd","rev","hMap","cd","mb","le","co","rvb","sv","r_1","flt","fdt","flm","flrm","fdm","fdrm","max","bits","bits16","shft","slc","ec","ind","nt","inflt","dat","st","buf","dict","sl","dl","noBuf","resize","noSt","cbuf","bl","nbuf","final","bt","lm","dm","lbt","dbt","tbts","hLit","hcLen","tl","ldt","clt","clb","clbmsk","clm","lt","dt","lms","dms","lpos","sym","dsym","shift","dend","wbits","wbits16","hTree","t2","et","maxSym","tr","mbt","ln","lft","cst","i2_1","i2_2","i2_3","lc","cl","cli","cln","clen","cf","wfblk","out","wblk","syms","lf","df","li","bs","dlt","mlb","ddt","mdb","lclt","nlc","lcdt","ndc","lcfreq","lct","mlcb","nlcc","flen","ftlen","dtlen","ll","llm","lcts","it","clct","dst","deo","dflt","lvl","plvl","pre","post","lst","msk_1","bs1_1","bs2_1","hsh","lc_1","wi","hv","imod","pimod","rem","ch_1","dif","maxn","maxd","ml","nl","mmd","md","ti","pti","lin","din","adler","dopt","newDat","wbytes","zlh","lv","zls","zlibSync","unzlibSync","td","tds","E","Vt","_t","Rr","Y","Ye","X","rt","at","ot","ct","ut","Qt","Kt","te","ht","ft","pt","gt","mt","vt","yt","wt","Nt","Lt","At","xt","St","Pt","kt","It","Ft","Ct","jt","Ot","Bt","Mt","Et","qt","Dt","Rt","Tt","Ut","zt","Ht","Wt","Cr","jr","Gt","Yt","Jt","Br","Xt","Zt","$t","ee","ne","ie","ae","oe","se","ce","ue","he","fe","de","pe","ge","me","ve","be","ye","we","Ne","Le","Ae","xe","Se","Pe","ke","Ie","Fe","Ce","je","Me","Oe","pr","fr","Lr","kr","Ir","Be","Ee","qe","De","Re","Te","Ue","ze","He","We","Ve","Ge","Je","Xe","Ke","Ze","lr","_r","br","yr","xr","$e","Qe","er","rr","ar","nr","ir","or","sr","cr","ur","hr","dr","gr","mr","vr","wr","Nr","Ar","Sr","Pr","Fr","Or","qr","Dr","Tr","Mr","Er","__vitePreload","purify_es","Ur","zr","Hr","Hn","Wn","Vn","Gn","vi","Tn","Sn","An","qn","Rn","Un","Ci","ji","_i","Si","Mi","Bi","Oi","Pi","ki","Ei","qi","$n","Gr","Wr","Vr","Zr","$r","Yr","En","Qr","Dn","xn","zn","rn","mi","Xr","gi","Jr","Kr","Qn","Xn","Zn","Jn","Yn","Kn","pi","ni","ei","ri","si","hi","ii","ai","Ri","Ui","Cn","Pn","kn","In","Fn","an","on","cn","un","hn","sn","dn","pn","gn","mn","vn","bn","yn","wn","Nn","Ln","fi","di","ci","oi","Bn","jn","On","Mn","bi","yi","Ni","Li","Ai","xi","Fi","Ii","Di","zi","Ti","index_es","global","module","this","extendStatics","__extends","__","__assign","__awaiter","_arguments","generator","adopt","__generator","verb","op","__spreadArray","pack","Bounds","clientRect","domRectList","domRect","parseBounds","parseDocumentSize","documentElement","toCodePoints$1","codePoints","fromCodePoint$1","codeUnits","codePoint","chars$2","lookup$2","i$2","chars$1$1","lookup$1$1","i$1$1","decode$1","base64","bufferLength","encoded1","encoded2","encoded3","encoded4","polyUint16Array$1","polyUint32Array$1","UTRIE2_SHIFT_2$1","UTRIE2_SHIFT_1$1","UTRIE2_INDEX_SHIFT$1","UTRIE2_SHIFT_1_2$1","UTRIE2_LSCP_INDEX_2_OFFSET$1","UTRIE2_DATA_BLOCK_LENGTH$1","UTRIE2_DATA_MASK$1","UTRIE2_LSCP_INDEX_2_LENGTH$1","UTRIE2_INDEX_2_BMP_LENGTH$1","UTRIE2_UTF8_2B_INDEX_2_OFFSET$1","UTRIE2_UTF8_2B_INDEX_2_LENGTH$1","UTRIE2_INDEX_1_OFFSET$1","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1","UTRIE2_INDEX_2_BLOCK_LENGTH$1","UTRIE2_INDEX_2_MASK$1","slice16$1","slice32$1","createTrieFromBase64$1","_byteLength","view32","view16","headerLength","Trie$1","Trie","errorValue","highStart","highValueIndex","ix","chars$3","lookup$3","i$3","base64$1","LETTER_NUMBER_MODIFIER","BK","CR$1","LF$1","CM","NL","WJ","ZW","GL","SP","ZWJ$1","B2","BA","BB","HY","CB","CL","CP","EX","IN","NS","OP","QU","IS","NU","PO","PR","SY","AI","AL","CJ","EB","EM","H2","H3","HL","ID","JL","JV","JT","RI$1","SA","XX","ea_OP","BREAK_MANDATORY","BREAK_NOT_ALLOWED$1","BREAK_ALLOWED$1","UnicodeTrie$1","ALPHABETICS","HARD_LINE_BREAKS","SPACE$1","PREFIX_POSTFIX","LINE_BREAKS","KOREAN_SYLLABLE_BLOCK","HYPHEN","codePointsToCharacterClasses","lineBreak","categories","classType","isAdjacentWithSpaceIgnored","currentIndex","classTypes","previousNonSpaceClassType","_lineBreakAtIndex","indicies","forbiddenBreaks","beforeIndex","afterIndex","prevIndex","cssFormattedClasses","isLetterNumber","forbiddenBreakpoints","letterNumber","Break","LineBreaker","lastEnd","FLAG_UNRESTRICTED","FLAG_ID","FLAG_INTEGER","FLAG_NUMBER","LINE_FEED","SOLIDUS","REVERSE_SOLIDUS","CHARACTER_TABULATION","SPACE","QUOTATION_MARK","EQUALS_SIGN","NUMBER_SIGN","DOLLAR_SIGN","PERCENTAGE_SIGN","APOSTROPHE","LEFT_PARENTHESIS","RIGHT_PARENTHESIS","LOW_LINE","HYPHEN_MINUS","EXCLAMATION_MARK","LESS_THAN_SIGN","GREATER_THAN_SIGN","COMMERCIAL_AT","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","CIRCUMFLEX_ACCENT","LEFT_CURLY_BRACKET","QUESTION_MARK","RIGHT_CURLY_BRACKET","VERTICAL_LINE","TILDE","CONTROL","REPLACEMENT_CHARACTER","ASTERISK","PLUS_SIGN","COMMA","COLON","SEMICOLON","FULL_STOP","NULL","BACKSPACE","LINE_TABULATION","SHIFT_OUT","INFORMATION_SEPARATOR_ONE","DELETE","EOF","ZERO","isDigit","isSurrogateCodePoint","isHex","isLowerCaseLetter","isUpperCaseLetter","isLetter","isNonASCIICodePoint","isWhiteSpace","isNameStartCodePoint","isNameCodePoint","isNonPrintableCodePoint","isValidEscape","isIdentifierStart","c3","isNumberStart","stringToNumber","integers","int","fraction","fracd","frac","expsign","exponent","exp","LEFT_PARENTHESIS_TOKEN","RIGHT_PARENTHESIS_TOKEN","COMMA_TOKEN","SUFFIX_MATCH_TOKEN","PREFIX_MATCH_TOKEN","COLUMN_TOKEN","DASH_MATCH_TOKEN","INCLUDE_MATCH_TOKEN","LEFT_CURLY_BRACKET_TOKEN","RIGHT_CURLY_BRACKET_TOKEN","SUBSTRING_MATCH_TOKEN","BAD_URL_TOKEN","BAD_STRING_TOKEN","CDO_TOKEN","CDC_TOKEN","COLON_TOKEN","SEMICOLON_TOKEN","LEFT_SQUARE_BRACKET_TOKEN","RIGHT_SQUARE_BRACKET_TOKEN","WHITESPACE_TOKEN","EOF_TOKEN","Tokenizer","e3","a2","a3","u1","u2","digits","questionMarks","start_1","digit","endDigits","stringToken","SLICE_STACK_SIZE","endingCodePoint","repr","hex","hexCodePoint","tokenizer","block","isEndingTokenFor","functionToken","cssFunction","isDimensionToken","isNumberToken","isIdentToken","isStringToken","isIdentWithValue","nonWhiteSpace","nonFunctionArgSeparator","parseFunctionArgs","isLength","isLengthPercentage","parseLengthPercentageTuple","ZERO_LENGTH","FIFTY_PERCENT","HUNDRED_PERCENT","getAbsoluteValueForTuple","getAbsoluteValue","DEG","GRAD","RAD","TURN","angle","_context","isAngle","parseNamedSide","sideOrCorner","ident","deg","color$1","colorFunction","SUPPORTED_COLOR_FUNCTIONS","namedColor","COLORS","isTransparent","color","asString","alpha","blue","green","red","getTokenColorValue","rgb","hue2rgb","t1","hue","hsl","saturation","lightness","parseColor","backgroundClip","backgroundColor","parseColorStop","stop","processColorStops","stops","lineLength","processStops","previous","stop_1","absoluteValue","gapBegin","stop_2","gapLength","beforeGap","gapValue","getAngleFromCorner","corner","centerX","centerY","calculateGradientDirection","radian","halfWidth","halfHeight","halfLineLength","yDiff","xDiff","distance","findCorner","closest","corners","stat","cx","cy","calculateRadius","gradient","rx","ry","linearGradient","angle$1","firstToken","colorStop","prefixLinearGradient","webkitGradient","shape","CLOSEST_SIDE","FARTHEST_SIDE","CLOSEST_CORNER","FARTHEST_CORNER","CIRCLE","ELLIPSE","COVER","CONTAIN","radialGradient","isColorStop","isAtPosition_1","prefixRadialGradient","isLinearGradient","background","isRadialGradient","image","image_1","imageFunction","SUPPORTED_IMAGE_FUNCTIONS","isSupportedImage","backgroundImage","backgroundOrigin","backgroundPosition","backgroundRepeat","parseBackgroundRepeat","BACKGROUND_SIZE","backgroundSize","isBackgroundSizeInfoToken","borderColorForSide","side","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","borderRadiusForSide","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","borderStyleForSide","borderTopStyle","borderRightStyle","borderBottomStyle","borderLeftStyle","borderWidthForSide","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","bit","parseDisplayValue","float","letterSpacing","LINE_BREAK","lineHeight","computeLineHeight","fontSize","listStyleImage","listStylePosition","listStyleType","marginForSide","marginTop","marginRight","marginBottom","marginLeft","overflow","overflowWrap","paddingForSide","paddingTop","paddingRight","paddingLeft","textAlign","textShadow","shadow","textTransform","transform$1","transformFunction","SUPPORTED_TRANSFORM_FUNCTIONS","matrix","matrix3d","b1","b2","a4","b4","DEFAULT_VALUE","DEFAULT","transformOrigin","origins","visibility","WORD_BREAK","wordBreak","zIndex","opacity","textDecorationColor","textDecorationLine","fontFamily","accumulator","results","fontWeight","fontVariant","fontStyle","contains","counterIncrement","increments","counter","increment","counterReset","resets","quotes","open_1","close_1","getQuote","open","quote","boxShadow","paintOrder","layers","webkitTextStrokeColor","webkitTextStrokeWidth","CSSParsedDeclaration","declaration","overflowTuple","CSSParsedPseudoDeclaration","CSSParsedCounterDeclaration","length_1","value_1","elementDebuggerAttribute","getElementDebugType","attribute","isDebugging","elementType","ElementContainer","isHTMLElementNode","chars$1","lookup$1","i$1","polyUint16Array","polyUint32Array","UTRIE2_SHIFT_2","UTRIE2_SHIFT_1","UTRIE2_INDEX_SHIFT","UTRIE2_SHIFT_1_2","UTRIE2_LSCP_INDEX_2_OFFSET","UTRIE2_DATA_BLOCK_LENGTH","UTRIE2_DATA_MASK","UTRIE2_LSCP_INDEX_2_LENGTH","UTRIE2_INDEX_2_BMP_LENGTH","UTRIE2_UTF8_2B_INDEX_2_OFFSET","UTRIE2_UTF8_2B_INDEX_2_LENGTH","UTRIE2_INDEX_1_OFFSET","UTRIE2_OMITTED_BMP_INDEX_1_LENGTH","UTRIE2_INDEX_2_BLOCK_LENGTH","UTRIE2_INDEX_2_MASK","slice16","slice32","createTrieFromBase64","chars","lookup","Prepend","CR","LF","Control","Extend","SpacingMark","LV","LVT","ZWJ","Extended_Pictographic","RI","toCodePoints","fromCodePoint","UnicodeTrie","BREAK_NOT_ALLOWED","BREAK_ALLOWED","codePointToClass","_graphemeBreakAtIndex","_codePoints","countRI","GraphemeBreaker","graphemeBreak","splitGraphemes","breaker","graphemes","bk","testRangeBounds","TEST_HEIGHT","testElement","rangeBounds","rangeHeight","testIOSLineBreak","textList","supports","boundAhead","testCORS","testResponseType","testSVG","img","canvas","isGreenPixel","testForeignObject","greenImageSrc","createForeignObjectSVG","loadSerializedSVG$1","xmlns","foreignObject","FEATURES","TextBounds","bounds","parseTextBounds","breakText","textBounds","clientRects","createRange","subSegments","segmentGraphemes","subOffset_1","subSegment","replacementNode","getWrapperBounds","ownerDocument","segmenter","segmentWords","breakWords","wordSeparators","words","_loop_1","word_1","TextContainer","CAPITALIZE","ImageElementContainer","CanvasElementContainer","SVGElementContainer","LIElementContainer","OLElementContainer","CHECKBOX_BORDER_RADIUS","RADIO_BORDER_RADIUS","reformatInputBounds","getInputValue","PASSWORD","CHECKBOX","RADIO","INPUT_COLOR","InputElementContainer","SelectElementContainer","TextareaElementContainer","IFrameElementContainer","iframe","parseTree","documentBackgroundColor","bodyBackgroundColor","LIST_OWNERS","parseNodeTree","nextNode","isTextNode","isElementNode","isSlotElement","createContainer","createsRealStackingContext","createsStackingContext","isTextareaElement","isSVGElement","isSelectElement","isImageElement","isCanvasElement","isLIElement","isOLElement","isInputElement","isIFrameElement","isBodyElement","isSVGElementNode","isHTMLElement","isVideoElement","isStyleElement","isScriptElement","CounterState","counters","canReset","counterNames","ROMAN_UPPER","ARMENIAN","HEBREW","GEORGIAN","createAdditiveCounter","symbols","createCounterText","integer","createCounterStyleWithSymbolResolver","codePointRangeLength","isNumeric","resolver","createCounterStyleFromRange","codePointRangeStart","codePointRangeEnd","createCounterStyleFromSymbols","CJK_ZEROS","CJK_TEN_COEFFICIENTS","CJK_TEN_HIGH_COEFFICIENTS","CJK_HUNDRED_COEFFICIENTS","createCJKCounter","numbers","multipliers","negativeSign","coefficient","CHINESE_INFORMAL_MULTIPLIERS","CHINESE_FORMAL_MULTIPLIERS","JAPANESE_NEGATIVE","KOREAN_NEGATIVE","appendSuffix","defaultSuffix","cjkSuffix","koreanSuffix","spaceSuffix","IGNORE_ATTRIBUTE","DocumentCloner","windowSize","createIFrameContainer","scrollX","scrollY","cloneWindow","documentClone","iframeLoad","iframeLoader","onclone","referenceElement","restoreNodeScroll","imagesReady","serializeDoctype","restoreOwnerScroll","copyCSSStyles","css","clonedCanvas","clonedCtx","gl","attribs","video","blankCanvas","copyStyles","assignedNodes","assignedNode","styleBefore","styleAfter","createPseudoHideStyles","PseudoElementType","after","pseudoElt","anonymousReplacedElement","counterStyle","counterState","counterType","delim","counterStates","counterType_1","PSEUDO_HIDE_ELEMENT_CLASS_BEFORE","PSEUDO_HIDE_ELEMENT_CLASS_AFTER","newClassName","cloneIframeContainer","imageReady","interval","ignoredStyleProperties","doctype","PSEUDO_BEFORE","PSEUDO_AFTER","PSEUDO_HIDE_ELEMENT_STYLE","createStyles","CacheStorage","src","Cache","isBlobImage","isRenderable","isSameOrigin","useCORS","useProxy","isInlineImage","isInlineBase64Image","reader_1","queryString","timeout_1","INLINE_SVG","INLINE_BASE64","INLINE_IMG","Vector","lerp","BezierCurve","startControl","endControl","firstHalf","ab","bc","abbc","bccd","isBezierCurve","BoundCurves","tlh","tlv","trh","trv","brh","brv","blh","blv","factors","maxFactor","topWidth","rightHeight","bottomWidth","leftHeight","getCurvePoints","CORNER","r1","r2","kappa","ox","oy","xm","ym","calculateBorderBoxPath","curves","calculateContentBoxPath","calculatePaddingBoxPath","TransformEffect","offsetX","offsetY","ClipEffect","OpacityEffect","isTransformEffect","isClipEffect","isOpacityEffect","equalPath","transformPath","deltaW","deltaH","StackingContext","ElementPaint","borderBox","paddingBox","inFlow","effects","croplessEffects","parseStackTree","stackingContext","realStackingContext","listItems","treatAsRealStackingContext","paintContainer","listOwnerItems","parentStack","order_1","index_1","index_2","processListItems","elements","numbering","reversed","parseStackingContexts","parsePathForBorder","borderSide","createPathFromCurves","parsePathForBorderDoubleOuter","parsePathForBorderDoubleInner","parsePathForBorderStroke","createStrokePathFromCurves","outer1","outer2","inner1","inner2","contentBox","calculateBackgroundPositioningArea","calculateBackgroundPaintingArea","calculateBackgroundRendering","intrinsicSize","backgroundPositioningArea","getBackgroundValueForIndex","backgroundPaintingArea","backgroundImageSize","calculateBackgroundSize","sizeWidth","sizeHeight","calculateBackgroundRepeatPath","isAuto","hasIntrinsicValue","intrinsicWidth","intrinsicHeight","intrinsicProportion","hasIntrinsicProportion","targetRatio","hasIntrinsicWidth","hasIntrinsicHeight","hasIntrinsicDimensions","width_1","height_1","width_2","height_2","width_3","height_3","repeat","SMALL_IMAGE","SAMPLE_TEXT","FontMetrics","baseline","Renderer","MASK_OFFSET","CanvasRenderer","paint","letters","letter","variant","fixIOSSystemFonts","font","paintOrderLayer","textShadows","box","iframeRenderer","isTextInputElement","canvasTextAlign","_j","_k","_l","_m","_o","_p","paths","this_1","x0","x1","y0","y1","gradient_1","top_1","radialGradient_1","midX","midY","invF","curvePoints","outerPaths","innerPaths","hasBackground","borders","borders_1","border","calculateBackgroundCurvedPaintingArea","borderBoxArea","maskOffset","shadowPaintingArea","strokePaths","boxPaths","startX","startY","endX","endY","dashLength","spaceLength","useLineDash","multiplier","numberOfDashes","minSpace","maxSpace","path1","path2","clip","iOSBrokenFonts","fontFamilies","ForeignObjectRenderer","loadSerializedSVG","Logger","enabled","Context","windowBounds","html2canvas","renderElement","defaultView","resourceOptions","contextOptions","windowOptions","foreignObjectRendering","cloneOptions","documentCloner","clonedElement","renderOptions","_q","_s","_u","parseBackgroundColor","backgroundColorOverride","defaultBackgroundColor","require$$0","require$$1","__WEBPACK_EXTERNAL_MODULE_jspdf__","__WEBPACK_EXTERNAL_MODULE_html2canvas__","__webpack_modules__","__unused_webpack_module","__webpack_exports__","__webpack_require__","_worker_js__WEBPACK_IMPORTED_MODULE_2__","_utils_js__WEBPACK_IMPORTED_MODULE_3__","linkInfo","orig","links","containerRect","page","nPages","jspdf__WEBPACK_IMPORTED_MODULE_7__","orientation","format_as_string","pageFormats","pageHeight","pageWidth","_worker_js__WEBPACK_IMPORTED_MODULE_5__","_utils_js__WEBPACK_IMPORTED_MODULE_6__","pxPageHeight","modeSrc","all","legacyEls","breakOpt","avoidOpt","startPage","endPage","objType","unitConvert","toPx","scripts","javascriptEnabled","newObj","jspdf__WEBPACK_IMPORTED_MODULE_8__","html2canvas__WEBPACK_IMPORTED_MODULE_9__","_utils_js__WEBPACK_IMPORTED_MODULE_10__","es6_promise__WEBPACK_IMPORTED_MODULE_11__","es6_promise__WEBPACK_IMPORTED_MODULE_11___default","Promise","Worker","inherit","getType","prereqs","overlayCSS","containerCSS","onRendered","imgData","pxFullHeight","pageCanvas","pageCtx","filename","cbk","margin","pageSize","thenBase","isNative","selfPromise","returnVal","__unused_webpack_exports","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","toIndexedObject","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","IndexedObject","toObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","fails","V8_VERSION","SPECIES","METHOD_NAME","originalArray","arraySpeciesConstructor","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","ownKeys","getOwnPropertyDescriptorModule","defineProperty","requireObjectCoercible","quot","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","bitmap","propertyKey","createIteratorConstructor","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","ITERATOR","KEYS","VALUES","ENTRIES","Iterable","IS_SET","FORCED","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","CurrentIteratorPrototype","KEY","wrappedWellKnownSymbolModule","EXISTS","getBuiltIn","process","Deno","versions","v8","setGlobal","copyConstructorProperties","TARGET","GLOBAL","STATIC","targetProperty","sourceProperty","exec","aFunction","variable","check","classof","split","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","wmget","wmhas","wmset","STATE","replacement","feature","detection","normalize","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","symbol","inspectSource","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","chr","argumentsLength","getOwnPropertySymbols","propertyIsEnumerable","anObject","defineProperties","enumBugKeys","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","activeXDocument","temp","NullProtoObjectViaIFrame","JS","iframeDocument","NullProtoObject","Properties","exports","IE8_DOM_DEFINE","$defineProperty","Attributes","$getOwnPropertyDescriptor","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","indexOf","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","pref","getOwnPropertyNamesModule","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","TAG","SHARED","CONVERT_TO_STRING","whitespaces","whitespace","ltrim","rtrim","ceil","floor","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","postfix","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","createProperty","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","nativeJoin","ES3_STRINGS","$map","HAS_SPECIES_SUPPORT","nativeSlice","fin","Constructor","FunctionPrototype","FunctionPrototypeToString","nameRE","inheritIfRequired","getOwnPropertyNames","NUMBER","NativeNumber","NumberPrototype","BROKEN_CLASSOF","third","radix","maxCode","NumberWrapper","nativeKeys","FAILS_ON_PRIMITIVES","$toString","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","charAt","STRING_ITERATOR","createHTML","forcedStringHTMLMethod","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","description","symbolPrototype","native","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","SYMBOL","$stringify","nativeGetOwnPropertyDescriptor","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","QObject","USE_SETTER","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","$getOwnPropertySymbols","$create","enumerable","IS_OBJECT_PROTOTYPE","FORCED_JSON_STRINGIFY","space","$replacer","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","objectOrFunction","_isArray","vertxNext","customSchedulerFn","scheduleFlush","setScheduler","scheduleFn","setAsap","asapFn","browserWindow","browserGlobal","BrowserMutationObserver","isNode","isWorker","useNextTick","useVertxTimer","useSetTimeout","useMutationObserver","iterations","useMessageChannel","channel","globalSetTimeout","attemptVertx","vertx","then","onFulfillment","onRejection","PROMISE_ID","makePromise","_state","invokeCallback","subscribe","resolve$1","PENDING","FULFILLED","REJECTED","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","sealed","fulfill","handleOwnThenable","handleMaybeThenable","maybeThenable","publishRejection","publish","_subscribers","subscribers","settled","hasCallback","succeeded","initializePromise","nextId","validationError","Enumerator","resolve$$1","_then","didError","Promise$1","enumerator","race","reject$1","needsResolver","needsNew","polyfill","local","promiseToString","__webpack_module_cache__","moduleId","cachedModule","definition","_worker_js__WEBPACK_IMPORTED_MODULE_0__","html2pdf","worker","modules","installedModules","ns","_js_init__WEBPACK_IMPORTED_MODULE_1__","printJS","Browser","addWrapper","capitalizePrint","collectStyles","addHeader","cleanUp","isRawHTML","_modal__WEBPACK_IMPORTED_MODULE_0__","_browser__WEBPACK_IMPORTED_MODULE_1__","htmlData","bodyStyle","win","elementStyle","targetStylesMatch","printElement","headerContainer","headerElement","headerNode","regexHtml","_functions__WEBPACK_IMPORTED_MODULE_0__","_print__WEBPACK_IMPORTED_MODULE_1__","printFrame","isHtmlElement","cloneElement","childNodesArray","clonedChild","printable","_browser__WEBPACK_IMPORTED_MODULE_2__","fullyQualifiedSrc","imageWrapper","_browser__WEBPACK_IMPORTED_MODULE_0__","_modal__WEBPACK_IMPORTED_MODULE_1__","_pdf__WEBPACK_IMPORTED_MODULE_2__","_html__WEBPACK_IMPORTED_MODULE_3__","_raw_html__WEBPACK_IMPORTED_MODULE_4__","_image__WEBPACK_IMPORTED_MODULE_5__","_json__WEBPACK_IMPORTED_MODULE_6__","printTypes","usedFrame","file","jsonToHTML","stringData","Modal","modalStyle","printModal","contentDiv","closeButton","spinner","messageNode","_print__WEBPACK_IMPORTED_MODULE_0__","_functions__WEBPACK_IMPORTED_MODULE_1__","bytesArray","createBlobAndPrint","req","localPdf","Print","iframeElement","performPrint","printDocument","images","loadIframeImages","loadIframeImage","pollImage","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","ParchmentError","classes","tags","Scope","BlotClass","find","bubble","Definitions","Definition","tagNames","equal","NULL_CHARACTER","Delta","ops","newOp","lastOp","failed","initial","elem","nextOp","thisIter","otherIter","firstOther","firstLeft","thisOp","otherOp","strings","prep","diffResult","opLength","newline","nextType","toStr","gOPD","hasOwnConstructor","hasIsPrototypeOf","setProperty","getProperty","copyIsArray","protoProps","staticProps","_get","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","subClass","superClass","NEWLINE_LENGTH","BlockEmbed","_Parchment$Embed","Block","_Parchment$Block","domNode","leaf","bubbleFormats","lines","blot","formats","_slicedToArray","sliceIterator","_arr","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","debug","Quill","limit","overwrite","expandConfig","mutations","modify","contents","refNode","_this3","_overload","overload","_overload2","_this4","change","_this5","_overload3","_overload4","_this6","_overload5","_overload6","containerBounds","_overload7","_overload8","focus","_overload9","_overload10","embed","_this7","_this8","_overload11","_overload12","_this9","_overload13","_overload14","_this10","applied","_overload15","_overload16","_this11","userConfig","themeConfig","moduleNames","moduleConfig","moduleClass","modifier","oldDelta","shiftRange","_emitter","_emitter2","_map","_map2","_map3","_map4","Inline","_Parchment$Inline","selfIndex","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","_node$__quill$emitter","_EventEmitter","Module","quill","levels","_console","newLevel","pSlice","isArguments","deepEqual","actual","expected","objEquiv","isUndefinedOrNull","ka","kb","Attributor","keyName","attributeBit","_block","_block2","Code","_Inline","CodeBlock","_Block","frag","_descendant","_descendant2","nextNewline","prevNewline","isolateLength","_descendant3","_descendant4","reverse","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","consumeNextNewline","scrollLength","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","lengthRemaining","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffixLength","cursorIndex","textBlot","oldText","newText","diffDelta","combined","_toConsumableArray","arr2","Range","Selection","_context$range","startNode","startOffset","endNode","endOffset","_format","nativeRange","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","_position","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","scrollingContainer","scrollBounds","oldRange","_getRange","_getRange2","lastRange","descendant","linked_list_1","shadow_1","ContainerBlot","makeBlot","criteria","descendants","lengthLeft","childBlot","refBlot","memo","targetParent","inclusive","addedNodes","removedNodes","FormatBlot","LeafBlot","lib","keepNull","Iterator","retOp","_instanceof","nativeMap","nativeSet","nativePromise","circular","includeNonEnumerable","allParents","allChildren","useBuffer","__getRegExpFlags","keyChild","valueChild","entryChild","allPropertyNames","propertyName","__objToStr","__isDate","__isArray","__isRegExp","_container","_container2","isLine","Scroll","_Parchment$Scroll","whitelist","_line","_line2","_line3","_line4","newlineIndex","_newlineIndex","getLines","_quill","_quill2","SHORTKEY","Keyboard","_Module","evt","handleEnter","handleBackspace","handleDelete","handleDeleteRange","which","_quill$getLine","_quill$getLine2","_quill$getLeaf","_quill$getLeaf2","leafStart","offsetStart","leafEnd","offsetEnd","prefixText","suffixText","curContext","prevented","makeFormatHandler","makeCodeBlockHandler","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","makeEmbedArrowHandler","shiftKey","where","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","Cursor","textNode","restoreText","Container","_Parchment$Container","ColorAttributor","_Parchment$Attributor","ColorClass","ColorStyle","_sanitize","protocols","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","Picker","label","selected","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","parentBlot","refDomNode","AttributorStore","ClassAttributor","StyleAttributor","GUARD_TEXT","Embed","prevLength","AlignAttribute","AlignClass","AlignStyle","_color","BackgroundClass","BackgroundStyle","DirectionAttribute","DirectionClass","DirectionStyle","FontClass","FontStyleAttributor","FontStyle","SizeClass","SizeStyle","History","getLastChangeIndex","changeDelta","undoDelta","endsWithNewlineChange","deleteLength","changeIndex","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","picker","buttons","icons","button","selects","fillSelect","fileInput","BaseTooltip","_Tooltip","boundsContainer","preview","extractVideoUrl","LinkedList","curNode","curIndex","curLength","OBSERVER_CONFIG","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","records","mark","markParent","optimize","remaining","grandChild","isEqual","obj2","InlineBlot","BlockBlot","EmbedBlot","_toggle","subjectString","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","fix_cursor","fix_emoji","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","front","k1start","k1end","k2start","k2end","k1","k1_offset","k2_offset","x2","diff_bisectSplit_","k2","y2","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","pointerend","diff_halfMatchI_","seed","best_common","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","prefixLength","hm1","hm2","count_delete","count_insert","text_delete","text_insert","changes","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","starts_with_pair_end","ends_with_pair_start","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","Events","EE","EventEmitter","exists","a5","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchText","matchNewline","matchBreak","matchBlot","matchSpacing","matchAttributor","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","_prepareMatching","_prepareMatching2","elementMatchers","textMatchers","deltaEndsWith","paste","_pair","applyFormat","computeStyle","endText","childrenDelta","nodeHeight","collapse","Bold","addControls","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","addButton","groups","controls","group","control","addSelect","align","ColorPicker","_Picker","colorLabel","IconPicker","Tooltip","reference","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","toolbar","SnowTooltip","tooltip","_BaseTooltip","_core","_core2","_indent","_blockquote","_blockquote2","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IdentAttributor","IndentClass","Blockquote","Header","ListItem","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","Formula","SyntaxCodeBlock","_CodeBlock","_highlight","CodeToken","Syntax","BubbleTheme","BubbleTooltip","lastLine","_bounds","arrow","_fix_unicode","editdiff","find_cursor_edit_diff","is_surrogate_pair_start","is_surrogate_pair_end","fix_unicode","previous_equality","stray","charCode","remove_empty_tuples","tuples","make_edit_splice","oldMiddle","newMiddle","oldCursor","oldBefore","oldAfter","maybeNewCursor","editBefore","newCursor","newBefore","newAfter","oldPrefix","newPrefix","editAfter","cursor","oldSuffix","newSuffix","replaceRange","diff_1","LARGE_ARRAY_SIZE","HASH_UNDEFINED","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reIsHostCtor","reIsUint","cloneableTags","addMapEntry","addSetEntry","arrayEach","arrayReduce","initAccum","baseTimes","getValue","isHostObject","mapToArray","overArg","setToArray","funcProto","coreJsData","maskSrcKey","funcToString","reIsNative","Buffer","Uint8Array","getPrototype","objectCreate","splice","nativeGetSymbols","nativeIsBuffer","DataView","getNative","Map","Set","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolValueOf","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","arrayLikeKeys","inherited","skipIndexes","isIndex","objValue","eq","baseAssign","copyObject","baseClone","isDeep","isFull","customizer","isArr","initCloneArray","copyArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbols","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","baseGetAllKeys","keysFunc","symbolsFunc","baseIsNative","isMasked","baseKeys","isPrototype","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","cloneSet","cloneSymbol","cloneTypedArray","typedArray","getSymbols","isKeyable","stubArray","Ctor","ctorString","cloneDeep","isArrayLikeObject","isArrayLike","stubFalse","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","asyncTag","proxyTag","typedArrayTags","nodeIsTypedArray","arrayFilter","resIndex","arraySome","cacheHas","SetCache","setCacheAdd","setCacheHas","isArg","isBuff","isType","baseIsArguments","baseIsEqual","bitmask","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsTypedArray","isPartial","arrLength","othLength","arrValue","othValue","compared","othIndex","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","__importDefault","mod","AttributeMap_1","lodash_clonedeep_1","lodash_isequal_1","AttributeMap","compose","invert","baseInverted","Iterator_1","Op_1","Op","fast_diff_1","require$$2","require$$3","require$$4","retDelta","inverted","baseIndex","length_2","slice","baseOp","length_3","length_4","Delta_1","toolbarOptions","QuillEditor","initialize","editor","composeOptions","setContents","handleTextChange","handleSelectionChange","handleEditorChange","clientOptions","modulesOption","maybeClone","deltaHasValuesOtherThanRetain","internalModel","internalModelEquals","against","oldContents","getContents","isEditorFocus","getEditor","getToolbar","getQuill","getHTML","getText","normalizedContent","setHTML","setText","pasteHTML","reinit","newContent","_pureAssign","func1","func2","_pureRef","UNDEF_VALUE","NULL_VALUE","EMPTY","FUNCTION","OBJECT","__PROTO__","UNDEFINED","CONSTRUCTOR","POLYFILL_TAG","LENGTH","CALL","ObjClass","ObjProto","StrCls","StrProto","MathCls","ArrCls","ArrProto","ArrSlice","safe","argArray","safeGet","defValue","_primitiveTypes","_createIs","theType","_createObjIs","theName","objToString","isStrictUndefined","isDefined","isNullOrUndefined","isStrictNullOrUndefined","isPrimitiveType","isError","isPromiseLike","objGetOwnPropertyDescriptor","objHasOwnProperty","objHasOwn","polyObjHasOwn","objForEachKey","theObject","propMap","_createProp","objDefineProp","objDefine","propDesc","_createKeyValueMap","keyType","valueType","completeFn","theMap","_assignMapValue","ERROR_TYPE","dumpObj","propertyValueDump","throwError","throwTypeError","_objFreeze","_doNothing","_getProto","objAssign","objKeys","objDeepFreeze","objFreeze","objGetPrototypeOf","createEnum","createEnumKeyMap","createSimpleMap","mapClass","createTypeMap","_wellKnownSymbolMap","GLOBAL_CONFIG_KEY","_globalCfg","_getGlobalValue","_getGlobalConfig","gbl","_unwrapFunction","_unwrapFunctionWithPoly","funcName","clsProto","polyFunc","clsFn","theFunc","theArgs","_unwrapProp","mathMax","strSlice","strSubstring","strSubstr","polyStrSubstr","strLeft","UNIQUE_REGISTRY_ID","_polySymbols","_globalSymbolRegistry","gblCfg","_wellKnownSymbolCache","polyNewSymbol","theSymbol","polySymbolFor","newSymbol_1","regId_1","polyGetKnownSymbol","knownName","_globalLazyTestHooks","_initTestHooks","getLazy","lazyValue","createCachedValue","WINDOW","_cachedGlobal","_getGlobalInstFn","getFn","useCached","getInst","hasDocument","getDocument","hasWindow","getWindow","hasNavigator","getNavigator","hasHistory","getHistory","isWebWorker","_symbol","_symbolFor","_initSymbol","_getSymbolKey","gblSym","hasSymbol","getSymbol","getKnownSymbol","noPoly","newSymbol","symbolFor","isIterator","isIterable","_iterSymbol$1","iterForOf","iterResult","fnApply","arrAppend","elms","elm","arrForEach","theArray","arrIndexOf","arrMap","arrSlice","arrReduce","objCreate","polyObjCreate","tempFunc","_isProtoArray","objSetPrototypeOf","_createCustomError","_setName","baseClass","createCustomError","constructCb","errorBase","theBaseClass","orgName","captureFn","_self","orgProto","_unsupportedError","throwUnsupported","utcNow","polyUtcNow","_createTrimFn","polyStrTrim","strTrim","_fnToString","_objCtrFnString","_gblWindow","_defaultDeepCopyHandler","plainObjDeepCopyHandler","defaultDeepCopyHandlers","arrayDeepCopyHandler","functionDeepCopyHandler","dateDeepCopyHandler","_getSetVisited","visitMap","newPath","theEntry","_deepCopy","userHandler","newCtx","isPlain","isPrim","newKey","_copyProps","objCopyProps","objDeepCopy","_doExtend","theArg","deepExtend","obj3","obj4","obj5","obj6","objExtend","getLength","_perf","getPerformance","strSplit","setValueByKey","lastKey","strEndsWith","polyStrEndsWith","searchValue","strIndexOf","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","theTimerHandler","_unref","_cancel","_refresh","_setEnabled","_createTimeoutWith","overrideFn","setFn","clearFn","timerFn","scheduleTimeout","createTimeout","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynClassNamePrefix","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","_gbl","_gblInst","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","_getObjProto","newProto","curProto","_forEachProp","name_1","lp","_isDynamicCandidate","skipOwn","_throwTypeError","_getInstanceFuncs","thisTarget","instFuncs","_hasVisited","_getBaseFuncs","classProto","useBaseInst","_instFuncProxy","funcHost","instFuncTable","baseFuncs","baseProto","visited","_getInstFunc","currentDynProtoProxy","instFunc","canAddInst","objProto","protoFunc","_getProtoFunc","_populatePrototype","baseInstFuncs","setInstanceFunc","_createDynamicPrototype","dynProtoProxy","instFuncs_1","_checkPrototype","thisProto","_getObjName","unknownValue","dynamicProto","delegateFunc","perfOptions","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strHasOwnProperty","__objAssignFnImpl","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","il","createEnumStyle","createValueMap","ActiveStatus","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_INSTRUMENTATION_KEY","_DYN__INACTIVE","_DYN_VALUE","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_NAME","_DYN_I_KEY","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_POLL_INTERNAL_LOGS","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_PROTOCOL","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_STATUS","_DYN_GET_RESPONSE_HEADER","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_ITEMS_RECEIVED","_DYN_URL_STRING","_DYN_SEND_POST","_DYN_HEADERS","_DYN_TIMEOUT","_DYN_SET_REQUEST_HEADER","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","_DYN_GET_ATTRIBUTE","aggregationErrorType","throwAggregationError","sourceErrors","theMessage","srcError","STR_PROMISE","doAwaitResponse","doAwait","resolveFn","rejectFn","finallyFn","STRING_STATES","DISPATCH_EVENT","_hasInitEvent","_hasInitEventFn","emitEvent","evtName","populateEvent","useNewEvent","theEvt","theConsole","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","_hasPromiseRejectionEvent","dumpFnObj","_createPromise","newPromise","processor","additionalArgs","_hasResolved","_settledValue","_queue","_id","_handled","_unHandledRejectionHandler","_thePromise","onResolved","thenPromise","_processQueue","_catch","_finally","onFinally","thenFinally","catchFinally","_strState","pending","_createSettleIfFn","allowState","theValue","_notifyUnhandledRejection","_toString","_rejectFn","_createAllPromise","values_1","pending_1","_createAllSettledPromise","processItem","syncItemProcessor","timeoutItemProcessor","callbackTimeout","createAsyncPromise","_promiseCls","createNativePromise","PrmCls","thePromise","_reject","_allSyncSettledCreator","createSyncPromise","createSyncAllSettledPromise","_promiseCreator","createPromise","createAllPromise","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_OFFLINE_STORE","STR_OFFLINE_SENT","STR_OFFLINE_DROP","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","strGetPrototypeOf","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","normalizeJsName","_all","strContains","toISOString","getExceptionName","valChk","srcChk","getSetValue","_createProxyFunction","srcFunc","originalArguments","proxyAssign","chkSet","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","createClassFromInterface","optimizeObject","ObjAssign","extended","argLen","isArgArray","isArgObj","propOk","isNewArray","isFeatureEnabled","rlt","getResponseText","formatErrorMessageXdr","xdr","formatErrorMessageXhr","prependTransports","theTransports","newTransports","strDisabledPropertyName","strWithCredentials","strTimeout","openXhr","urlString","isSync","_wrapSetXhrProp","convertAllHeadersToMap","headersString","headersArray","headerEntry","_appendHeader","theHeaders","STR_KILL_DURATION_HEADER","STR_KILL_DURATION_SECONDS_HEADER","STR_TIME_DELTA_HEADER","_getAllResponseHeaders","isOneDs","strDocumentMode","strLocation","strConsole","strJSON","strCrypto","strMsCrypto","strReactNative","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","getLocation","checkForMock","mockLocation","getConsole","hasJSON","getJSON","getCrypto","getMsCrypto","isReactNative","nav","isIE","getIEVersion","userAgentStr","navigator_1","ua","tridentVer","isBeaconsSupported","withKeepAlive","isSupported","useXDomainRequest","isXhrSupported","xmlHttpRequest","dispatchEvent","evnt","createCustomDomEvent","sendCustomEvent","customDetails","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_mwcSeed","seedValue","_autoSeedMwc","randomValue","maxValue","random32","signed","mwcRandom32","newId","maxLength","base64chars","instanceName","_dataUid","_canAcceptData","_getCache","theCache","createUniqueNamespace","includeVersion","createElmNodeData","addDefault","_isConfigDefaults","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","fallbacks","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","mergeDf","readOnly","blkDynamicValue","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","getDynamicConfigHandler","blockDynamicConversion","_canMakeDynamic","getFunc","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","_patchArray","orgMethod","_makeDynamicObject","_getOwnPropGetter","_createDynamicProperty","checkDynamic","isObjectOrArray","_getProperty","activeHandler","_setProperty","isReferenced","_setDynamicProperty","valueState","newIsObjectOrArray","isDynamic","_setDynamicPropertyState","inPlace","rdOnly","blkProp","symPrefix","symPostfix","_createState","cfgHandler","dynamicPropertySymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","theState","_useHandler","prevWatcher","_notifyWatchers","notifyHandlers","watcherFailures_1","_addWatcher","_trackHandler","_createAndUseHandler","configHandler","_createDynamicHandler","newTarget","_setValue","_watch","allowUpdate","prevUpd","_rdOnly","_blkPropValue","_applyDefaults","defaultValues","_logInvalidAccess","createDynamicConfig","onConfigChange","runTargetUnload","isAsync","doUnloadAll","ChannelControllerPriority","DisabledPropertyName","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","cfgDfValidate","fallBackName","cfgDfBoolean","cfgDfString","listenerFuncs","_aiNamespace","_debugListener","_listenerProxyFunc","dbgExt","getDebugExt","_getExtensionNamespace","getDebugListener","STR_WARN_TO_CONSOLE","AiNonUserActionablePrefix","AiUserActionablePrefix","AIInternalMessagePrefix","_logFuncs","_sanitizeDiagnosticText","_logToConsole","logFunc","_InternalLogMessage","msgId","isUserAct","strProps","diagnosticText","safeGetLogger","core","DiagnosticLogger","_messageCount","_messageLogged","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_setDefaultsFromConfig","_debugExtMsg","messageKey","_logInternalMessage","_areInternalMessagesThrottled","throttleLimitMessage","throttleMessage","_getLogger","_throwInternal","_warnToConsole","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_doc","_cookieCache","_globalCookieConfig","rootDefaultConfig","_getDoc","_gblCookieMgr","inst","createCookieMgr","_isMgrEnabled","cookieMgr","_isIgnoredCookie","cookieMgrCfg","_isBlockedCookie","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_getCookieValue","_setCookieValue","areCookiesSupported","gblManager","maxAgeSec","_extractParts","_isIE","nowMs","expireMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","thePart","theDate","cookieValue","theCookie","_runScheduledListeners","asyncNotifications","_runListeners","NotificationManager","perfEvtsSendAll","_listeners","_asyncNotifications","sendReason","perfEvent","cnt","rn_1","_finishUnload","waiting","asyncUnload","strExecutionContextKey","strParentContextKey","strChildrenContextKey","_defaultPerfManager","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","PerfManager","manager","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","getGblPerfMgr","generateW3CId","hexValues","oct","clockSequenceHi","DEFAULT_VERSION","INVALID_VERSION","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","_formatFlags","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","formatTraceParent","findAllScripts","script","crossOrigin","async","defer","referrerPolicy","pluginStateData","_getPluginState","initializePlugins","processContext","extensions","initPlugins","lastPlugin","pluginState","thePlugin","isInitialized","sortPlugins","plugins","extA","extB","bHasProcess","createDistributedTraceContext","parentCtx","trace","newTraceFlags","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_getNextProxyStart","startAt","createTelemetryProxyChain","_createInternalContext","telemetryChain","_nextProxy","_onComplete","_moveNext","_resolveExtCfg","_getConfig","nextPlugin","_iterateChain","_addOnComplete","onComplete","nextProxy","completeDetails","_getExtCfg","createIfMissing","idCfg","extCfg","extConfig","createProcessTelemetryContext","internalContext","_processNext","env","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","hasProcessTelemetry","hasSetNext","chainId","proxyChain","_processTelemetry","_unloadPlugin","_updatePlugin","_getTelCtx","itemCtx","_processChain","processPluginFn","hasRun","hasRunContext","hasNextRun","_callProcessTelemetry","unloadCtx","_callTeardown","pluginCore","updateCtx","_callUpdate","createUnloadHandlerContainer","_addHandler","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","_addHook","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","_initDefaults","pluginChain","_setDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","theUpdateState","_updateCallback","currentCtx","rootCtx","_addInitializer","_initializers","telemetryInitializer","theInitializer","initializer","_runInitializers","doNotSendItem","telemetryInitializersCount","TelemetryInitializerPlugin","strValidationError","strNotificationManager","strSdkUnloadingError","strSdkNotInitialized","maxInitQueueSize","maxInitTimeout","_createPerfManager","notificationMgr","_validateExtensions","channelPriority","allExtensions","coreExtensions","channels","extPriorities","ext","extPriority","_isPluginPresent","_deepMergeConfig","newValues","_findWatcher","newWatcher","theListener","_addDelayedCfgListener","fnd","_registerDelayedCfgListener","unloadHdl","_initDebugListener","unloadContainer","notificationManager","debugListener","disableDbgExt","_createUnloadHook","unloadHook","AppInsightsCore","_configHandler","_isInitialized","_eventQueue","_notificationManager","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_evtNamespace","_unloadHandlers","_traceCtx","_instrumentationKey","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_activeStatus","_endpoint","_initInMemoMaxSize","_isStatusSet","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_addUnloadHook","rootCfg","ikey","endpointUrl","_releaseQueues","initTimeout","allPromises","_setStatus","ikeyRes","endpointRes","_initPerfManager","cfgExtensions","_initPluginChain","teeController","telemetryItem","_notifyInvalidEvent","_createTelCtx","eventQueue","_startLogPoller","alwaysStart","shouldStart","isRunning","_flushInternalLogs","unloadComplete","cbTimeout","processUnloadCtx","_getPluginChain","flushComplete","_flushChannels","_getPlugin","replaceExisting","addCb","_logOrThrowError","existingPlugin","_addPlugin","removedPlugins_1","_removePlugins","mergeExisting","_doUpdate","createNew","traceCtx","_setPluginVersions","thePlugins","_addPluginVersions","ver","newLogger","theCtx","theExtensions","pluginIdentifier","theExt","channelHosts","host","removeCb","pluginsToRemove","removeComplete","unloadChain","newConfigExtensions","newChannelConfig","newQueue","callBack","doneIterating","cbTimer","doCallback","flushCtx","handled_1","prevCfgPerfMgr","enablePerfMgr","createPerfMgr","parseResponse","diagLog","STR_NO_RESPONSE_BODY","_noResponseQs","STR_POST_METHOD","SenderPostManager","_syncFetchPayload","_enableSendPromise","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fetchCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_sendCredentials","_xhrSender","sync","_getSenderInterface","_onSuccess","_doOnComplete","_onError","_onNoPayloadUrl","syncSupport","transportType","sendPostFunc","_xdrSender","_doFetchSender","_beaconSender","oncomplete","_doBeaconSend","plainTextBatch","queued","onRetry","resolveFunc","rejectFunc","endPointUrl","headerName","_doOnReadyFunc","onReadyFunc","onReadyFuncExist","batchLength","ignoreResponse","responseHandled","init","_handleError","_onFetchComplete","onCompleteFunc","response_1","_window","onloadFunc","hostingProtocol","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strUnload","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doAttach","_doUnregister","unRegFn","theEvent","_unregisterEvents","eventCache","evtType","mergeEvtNamespace","theNamespace","namespaces","newNamespaces","eventOn","registeredEvent","eventOff","evtName_1","found_1","regEvent","addEventHandler","removeEventHandler","_addEventListeners","excludeEvents","addEventListeners","removeEventListeners","addPageUnloadEventListener","removePageUnloadEventListener","addPageHideEventListener","_handlePageVisibility","pageUnloadAdded","removePageHideEventListener","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","callDetails","cbArgs","hookCtx","cbks","orgEx","hookErrorCb","_createFunctionHook","aiHook","funcThis","orgArgs","funcArgs","_replaceArg","_createArgs","_getOwner","checkPrototype","checkParentProto","InstrumentProto","InstrumentFunc","_createInstrumentHook","newFunc","theHook","InstrumentEvent","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","RequestHeaders","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","uniqueField","dsPadNumber","nameTrunc","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeException","exception","exceptionTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","dataSanitizeId","_msgId","inputTrunc","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","urlParseHost","urlGetAbsoluteUrl","urlGetCompleteUrl","absoluteUrl","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","_correlationIdPrefix","isInternalApplicationInsightsEndpoint","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","requestHost","includedDomains","matchExists_1","regex","excludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","AjaxHelperParseDependencyPath","commandName","parsedUrl","pathName","dateTimeUtilsNow","perf","dateNow","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","StorageType","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","getGlobalInst","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlDisableStorage","utlSetStoragePrefix","storagePrefix","utlEnableStorage","utlGetLocalStorage","utlSetLocalStorage","utlRemoveStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","THROTTLE_STORAGE_PREFIX","ThrottleMgr","namePrefix","_localStorageObj","_isTriggered","_namePrefix","_isReady","_isSpecificDaysGiven","_initConfig","localObj","_getLocalStorageObjByKey","_getCfgByKey","_canThrottle","_isTrigger","_getQueueByKey","_flushMessage","result_1","isFlushed","flushAll","msgID","saveUnsentMsg","isSampledIn","_canSampledIn","localStorageObj","canThrottle","isTriggered","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","_setCfgByKey","coreConfig","configMgr","curCfg","configInterval","_getIntervalConfig","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","_checkInterval","dayCheck","daySpan","msgKey","fix","_isTriggeredOnCurDate","preTriggerDate","_getLocalStorageObj","storageName","storageObj","curObj","isTrigger","_FIELDS_SEPARATOR","_FIELD_KEY_VALUE_SEPARATOR","parseConnectionString","connectionString","kvPairs","kv","kvParts","locationPrefix","Envelope","Event","NoMethod","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","errorType","evtMessage","_isExceptionDetailsInternal","_isExceptionInternal","_isStackDetails","_convertStackObj","errorStack","_getOperaStack","_getStackFromErrorObj","errorObj","_formatStackTrace","stackDetails","_parseStack","parsedStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","exceptionParsedStackThreshold","acceptedLeft","acceptedRight","lSize","rSize","howMany","_getErrorType","funcNameRegex","_formatErrorCode","Exception","severityLevel","_ExceptionDetails","lineNumber","columnNumber","errorSrc","exceptions","exceptionData","problemGroup","isManual","exceptionDetailsInterface","assembly","exceptionDetails","sourceFrame","DataPoint","Metric","stdDev","dataPoint","strEmpty","msToTimeSpan","totalms","sec","isCrossOriginError","PageView","durationMs","RemoteDependencyData","success","resultCode","requestAPI","correlationContext","dependencyFields","Trace","PageViewPerformance","unused","cs4BaseData","Data","baseType","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createTelemetryItem","envelopeName","customProperties","systemProperties","iKey","Extensions","CtxTagKeys","createDomEvent","_disableEvents","createOfflineListener","parentEvtNamespace","_isListening","listenerList","rState","uState","_currentState","calCurrentState","_enableEvents","_setOnline","_setOffline","_isOnline","listnerNoticeCheck","offlineState","setOnlineState","_unload","addListener","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_OVERRIDE_PAGE_VIEW_D8","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_REQUEST_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_startTimer","allItems","doFlush","_addQueue","pageView","uri","navigationEntries","loadEventStart","duration_1","pageViewSent","customDuration","maxDurationLimit","processed","pageViewPerformance","MAX_DURATION_ALLOWED","botAgentNames","_isPerformanceTimingSupported","_isPerformanceNavigationTimingSupported","_isPerformanceTimingDataReady","timing","_getPerformanceTiming","_getPerformanceNavigationTiming","_shouldCollectDuration","isGoogleBot","PageViewPerformanceManager","navigationTiming","network","dom","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","currPageVisitDataStr","PageVisitData","pageVisitEndTime","pageVisitDataJsonStr","Timing","_events","strEvent","_dispatchEvent","_getReason","MinMilliSeconds","_chkConfigMilliseconds","_chkSampling","_updateStorageUsage","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_expCfg","_prevUri","_currUri","EventTelemetry","metric","inPv","inPvp","measurement","loc","theError","exceptionPartB","scriptsInfo","logs","_sendCORSException","errorString","_populateDefaults","pageVisitTime","trackPageVisitTime","pageViewItem","_updateExceptionTracking","_updateLocationChange","_addDefaultTelemetryInitializers","browserLinkPaths_1","dropBrowserLinkRequests","envelope","remoteData","locn","_addUnhandledPromiseRejectionTracking","strUndefined","_addHistoryListener","_getDistributedTraceCtx","distributedTraceCtx","_popstateHandler","_locationChangeHandler","traceLocationName","_location","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","ON","OFF","resolveCdnFeatureCfg","cdnCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","cdnOffV","userFt","userM","userOnV","userOffV","blockCdn","mFld","onFld","offFld","onV","offV","applyCdnfeatureCfg","optInMap","cdnConfig_1","featureVal","_overrideCdnCfgByFeature","ftVal","dVal","EVENT_NAME","STR_GET_METHOD","FETCH_TIMEOUT","udfVal","defaultNonOverrideCfg","_defaultConfig","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_clearScheduledTimer","_setupTimer","_setCfg","_sendCfgsyncEvents","_updateEventListenerName","_eventOff","preBlkCdn","newEvtName","_getFetchFnInterface","isAutoSync","global_1","_addEventListener","_fetchSender","fetchFn","xhr_1","JSON_1","newCfg","_replaceTartgetByKeys","global_2","cfgEvent","_cfg","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_ITEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_ENDPOINT_URL","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_DISABLE_XHR","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_ENABLE_SEND_PROMISE","_DYN_GET_SENDER_INST","_DYN_UNLOAD_TRANSPORTS","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_SERIALIZE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ORI_PAYLOAD","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","_DYN_GET_HASH_CODE_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","extApp","extDevice","envData","envBaseData","envProps","extOs","extTrace","tgs","tg","theTags","EnvelopeCreator","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","envelopeType","iKeyNoDashes","EnvelopeCreatorInit","DependencyEnvelopeCreator","customMeasurements","bd","remoteDepData","EventEnvelopeCreator","eventData","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseData","baseMetricData","PageViewEnvelopeCreator","currentContextId","pageTags","pageViewData","PageViewPerformanceEnvelopeCreator","TraceEnvelopeCreator","BaseSendBuffer","_buffer","_bufferFullMessageSent","_maxRetryCnt","payloads","payloadStr_1","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","getItem","setItem","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getPreviousEvents","notDeliveredItems","_setBuffer","_removePayloadsFromBuffer","sentElements","unsentItems","sentItems","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_getItemsFromPreviousKey","prefixEvents","transFormedItems_1","internalItem","Serializer","_serializeObject","circularReferenceCheck","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","MIN_INPUT_LENGTH","HashCodeScoreGenerator","SamplingScoreGenerator","hashCodeGenerator","Sample","sampleRate","samplingPercentage","EMPTY_STR","FetchSyncRequestSizeLimitBytes","_getResponseText","isOverrideFn","httpXHROverride","defaultAppInsightsChannelConfig","EnvelopeTypeCreator","Sender","_consecutiveErrors","_retryAt","_lastSend","_serializer","_stamp_specific_redirects","_headers","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_checkMaxSize","_doUnloadSend","senderConfig","curExtUrl","coreUrl","customHeader","bufferOverride","shouldUpdate","_validateInstrumentationKey","sendPostConfig","_getSendPostMgrConfig","customInterface","httpInterface","syncInterface","xhrInterface","_doSend","_fetchKeepAliveSender","syncTransports","diagLogger","isValidate","_validate","aiEnvelope","_getEnvelope","payloadItem","countOfItemsInPayload","_isStringArr","_xhrReadyStateChange","forcedSender","_notifySendRequest","ieVer","_createPayload","_serialize","_batch","_onPartialSuccess","_xdrOnLoad","responseText","onCompleteFuncs","_getPayloadArr","resValue","_checkResponsStatus","canSend","_onBeaconRetry","retry","errors_1","extracted","_isRetriable","_resendPayload","internalPayload","_isSampledIn","defaultEnvelopeIkey","_getHeaders","_getOnComplete","sendInterface","markAsSent","payloadData","_getPayload","incomingPayload","incomingSize","responseUrl","_checkAndUpdateEndPointUrl","offlineBackOffMultiplier","beaconInst","droppedPayload","thePayload","payloadSize","syncFetchPayload","linearFactor","payload_1","_setRetryTime","SlotDelayInSeconds","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","_getNotifyMgr","sendRequest","instrumentationKey","disableValidation","disableIKeyValidationFlag","UUID_Regex","convertUndefined","creator","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","perfData","_populatePerfData","ajaxData","dependency","propsSet","strName","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","XHRMonitoringState","ajaxRecord","strResponseText","ajaxType","enableRequestHeaderTracking","getResponse","partA","traceExt","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_supportsFetch","strPrototype","_supportsAjaxMonitoring","ajaxMonitorInstance","ajaxDataId","xhrData","theOpen","_throwInternalCritical","_getAjaxData","_addSharedXhrHeaders","_isHeaderSet","_getFailedAjaxDiagnosticsMessage","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","_indexOf","theHandler","_processDependencyContainer","_processDependencyListeners","initializersCount","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_ajaxDataId","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_appId","_polyfillInitialized","_instrumentXhr","_instrumentFetch","_populateContext","_reportDependencyInternal","currentWindowHost","appId","traceFlags","traceParent","dependencyListener","dependencyInitializer","propExt","_canIncludeHeaders","fetch","isPolyfill","fetchData","_isDisabledRequest","_createFetchRecord","newInit","fetchData_1","_reportFetchMetrics","ajaxResponse","_getFetchCorrelationContext","responseHeaderMap_1","_hookProto","_isMonitoredXhrInstance","_openHandler","_attachToOnReadyStateChange","_createMarkId","theUrl","theRegex","idx2","excludeAjaxDataValidation","ajaxValidation","initialized","traceID","spanID","xhrRequestData","ajaxDataCntr","_onAjaxComplete","exceptionText","_reportXhrError","failedProps","errorProps","_findPerfResourceEntry","_getAjaxCorrelationContext","responseHeaderMap_2","sysProperties","responseHeadersString","performance_1","markId","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","_getFailedFetchDiagnosticsMessage","_reportFetchError","initializers","Application","Device","Version","Internal","unloadHookContainer","Location","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_SESSION_COOKIE_POSTF6","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","SESSION_COOKIE_NAME","ACQUISITION_SPAN","RENEWAL_SPAN","COOKIE_UPDATE_INTERVAL","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","isExpired","session","_initializeAutomaticSession","timeSinceAcqMs","timeSinceRenewalMs","_renew","_setCookie","_setStorage","_initializeAutomaticSessionWithData","storageValue","sessionData","sessionReset","acqMs","renewalMs","getNewId","acq","renewalPeriodMs","acqTimeLeftMs","cookieDomain","renewal","TelemetryTrace","parentId","_validateUserInput","User","userCookiePostfix","_generateNewId","newCookie","_generateNewCookie","_setUserCookie","authCookie","authCookieString","userId","acqStr","oneYear","authenticatedUserId","accountId","storeInCookie","isInvalidInput","user_id","user_cookie","strExt","strTags","_removeEmpty","_nullResult","TelemetryContext","previousTraceCtx","sesId","autoSession","application","device","internal","user","undefString","nullValue","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","theContext","userCtx","_processTelemetryInternal","breezeChannel","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_GET_COOKIE_MGR","STR_START_TRACK_PAGE","STR_STOP_TRACK_PAGE","STR_FLUSH","STR_START_TRACK_EVENT","STR_STOP_TRACK_EVENT","STR_ADD_TELEMETRY_INITIALIZER","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","CONFIG_ENDPOINT_URL","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_INSTRUMENTATIONKEY0","_DYN_USER_OVERRIDE_ENDPOI1","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF2","_DYN_SEND_MESSAGE","_DYN_UPDATE_SNIPPET_DEFIN3","_internalSdkSrc","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_limit","default_interval","default_throttle_config","defaultConfigValues","_chkDiagLevel","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","DependenciesPlugin","configCs","_parseCs","curCs","parsedCs","ikeyPromise","cs","ingest","flushDone","legacyMode","_updateSnippetProperties","snippetVer","sdkSrc","_findSdkSourceFile","defaultEnable","properties_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","added_1","analyticsPlugin","_removePageEventHandlers","excludePageUnloadEvents","_getCurrentDependencies","isModule","cdns","scrpt","url_1","src_1","_construct","Parent","Class","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","_transformCaseFunc","_window$NamedNodeMap","documentMode","MUSTACHE_EXPR$1","ERB_EXPR$1","TMPLIT_EXPR$1","DATA_ATTR$1","ARIA_ATTR$1","IS_SCRIPT_OR_DATA$1","ATTR_WHITESPACE$1","CUSTOM_ELEMENT$1","_createIterator","_executeHook","_basicCustomElementTest","_attr","oldNode","globalThis_1","functionBindNative","NATIVE_BIND","functionCall","objectPropertyIsEnumerable","uncurryThisWithBind","functionUncurryThis","uncurryThis","stringSlice","$Object","indexedObject","$TypeError","documentAll","isCallable","globalThis","objectIsPrototypeOf","navigator","environmentUserAgent","environmentV8Version","$String","symbolConstructorDetection","useSymbolAsUid","isPrototypeOf","tryToString","aCallable","getMethod","defineGlobalProperty","sharedStoreModule","hasOwnProperty_1","require$$5","ie8DomDefine","require$$6","require$$7","objectGetOwnPropertyDescriptor","v8PrototypeDefineBug","V8_PROTOTYPE_DEFINE_BUG","ENUMERABLE","CONFIGURABLE","WRITABLE","objectDefineProperty","getDescriptor","PROPER","functionName","weakMapBasicDetection","TypeError","internalState","CONFIGURABLE_FUNCTION_NAME","join","CONFIGURABLE_LENGTH","makeBuiltIn","makeBuiltInModule","defineBuiltIn","mathTrunc","trunc","toIntegerOrInfinity","lengthOfArrayLike","arrayIncludes","objectKeysInternal","objectGetOwnPropertyNames","objectGetOwnPropertySymbols","concat","isForced_1","_export","userAgentStartsWith","environment","ENVIRONMENT","environmentIsNode","functionUncurryThisAccessor","isPossiblePrototype","uncurryThisAccessor","objectSetPrototypeOf","defineBuiltInAccessor","setSpecies","CONSTRUCTOR_NAME","anInstance","toStringTagSupport","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","isConstructor","aConstructor","speciesConstructor","defaultConstructor","functionApply","functionUncurryThisClause","functionBindContext","arraySlice","validateArgumentsLength","environmentIsIos","require$$8","require$$9","IS_IOS","require$$10","IS_NODE","require$$11","clear","Dispatch","Function","MessageChannel","String","ONREADYSTATECHANGE","$location","runner","eventListener","globalPostMessageDefer","safeGetBuiltIn","Queue","environmentIsIosPebble","environmentIsWebosWebkit","macrotask","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","microtask","notify","toggle","microtask_1","hostReportErrors","perform","promiseNativeConstructor","NativePromiseConstructor","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","promiseConstructorDetection","PromiseCapability","$$resolve","$$reject","newPromiseCapability","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","PromiseConstructorDetection","require$$21","newPromiseCapabilityModule","require$$22","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","REJECTION_HANDLED","HANDLED","UNHANDLED","OwnPromiseCapability","PromiseWrapper","nativeThen","callReaction","reaction","ok","exited","onHandleUnhandled","isReject","reactions","onUnhandled","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","iterators","isArrayIteratorMethod","getIteratorMethod","getIterator","usingIterator","iteratorMethod","iteratorClose","innerResult","innerError","Result","stopped","ResultPrototype","iterate","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","condition","callFn","SAFE_CLOSING","iteratorWithReturn","checkCorrectnessOfIteration","SKIP_CLOSING","ITERATION_SUPPORT","promiseStaticsIncorrectIteration","PROMISE_STATICS_INCORRECT_ITERATION","capability","$promiseResolve","alreadyCalled","capabilityReject","promiseResolve","promiseCapability","asyncGeneratorStep","_asyncToGenerator","_next","_throw","regexpFlags","$RegExp","UNSUPPORTED_Y","MISSED_STICKY","BROKEN_CARET","regexpStickyHelpers","objectDefineProperties","definePropertiesModule","regexpUnsupportedDotAll","regexpUnsupportedNcg","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","regexpExec","fixRegexpWellKnownSymbolLogic","SHAM","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","forceStringMethod","$exec","charCodeAt","stringMultibyte","advanceStringIndex","unicode","regexpExecAbstract","fixRegExpWellKnownSymbolLogic","regExpExec","MATCH","nativeMatch","maybeCallNative","fullUnicode","matchStr","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","getSubstitution","captures","namedCaptures","tailPos","ch","REPLACE","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","UNSAFE_SUBSTITUTE","replaceValue","functionalReplace","accumulatedResult","nextSourcePosition","replacerArgs","isRegexp","notARegexp","correctIsRegexpLogic","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","correctPrototypeGetter","objectGetPrototypeOf","iteratorsCore","iteratorCreateConstructor","ENUMERABLE_NEXT","FunctionName","PROPER_FUNCTION_NAME","iteratorDefine","createIterResultObject","es_array_iterator","domIterables","DOMTokenListPrototype","domTokenListPrototype","handlePrototype","REDUCE_EMPTY","IS_RIGHT","$reduce","CHROME_VERSION","CHROME_BUG","endPosition","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","splitter","unicodeMatching","lim","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performanceNowModule","vendors","raf","caf","frameDuration","_now","cp","handle","rafModule","non","stringTrimForced","$trim","forcedStringTrimMethod","rgbcolor","color_string","simple_colors","color_defs","examples","example","sc","list_item","list_color","example_div","list_item_value","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","nativeReverse","regExpFlags","regexpGetFlags","getRegExpFlags","mulTable","shgTable","getImageDataFromCanvas","topX","topY","processCanvasRGBA","radius","imageData","processImageDataRGBA","pixels","div","widthMinus1","heightMinus1","radiusPlus1","sumFactor","stackStart","BlurStack","stackEnd","stackIn","stackOut","yw","mulSum","shgSum","pg","pb","pa","rInSum","gInSum","bInSum","aInSum","rOutSum","gOutSum","bOutSum","aOutSum","rSum","gSum","bSum","aSum","_i2","rbs","paInitial","_a2","_stackOut","_x","_pr","_pg","_pb","_pa","_rOutSum","_gOutSum","_bOutSum","_aOutSum","_rSum","_gSum","_bSum","_aSum","_i3","yp","_gInSum","_bInSum","_aInSum","_rInSum","_i4","_rbs","_y","_p2","offscreen","DOMParserFallback","preset","compressSpaces","trimLeft","trimRight","toNumbers","allUppercase","normalizeAttributeName","parseExternalUrl","urlMatch","normalizeColor","rgbParts","normalizedColor","isFloat","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","getSelectorSpecificity","specificity","currentSelector","PSEUDO_ZERO","vectorMagnitude","vectorsRatio","vectorsAngle","CB1","CB2","CB3","CB4","QB1","QB2","QB3","Property","zeroIsValue","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","patternTransform","commas","RGBColor","ViewPort","viewPorts","Point","scale","points","pathPoints","xp","Mouse","screen","onClick","onMouseMove","eventElements","boundingBox","eventTarget","defaultWindow","defaultFetch$1","Screen","checker","isReadyLock","desiredWidth","desiredHeight","minX","minY","refX","refY","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","scaledClipX","scaledClipY","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreMouse","ignoreAnimation","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","FRAMERATE","mouse","tick","requestAnimationFrame","animation","CLIENT_WIDTH","CLIENT_HEIGHT","isFirstRender","widthStyle","heightStyle","cWidth","cHeight","viewBox","xRatio","yRatio","_widthStyle","_heightStyle","transformStyle","defaultFetch","DefaultDOMParser","resource","parserError","Translate","Rotate","rotate","originX","originY","tx","ty","rad","Scale","scaleSize","Matrix","det","Skew","skew","SkewX","SkewY","parseTransforms","parseTransform","Transform","TransformType","transformOriginXProperty","transformOriginYProperty","transforms","Element$1","captureTextNodes","nodeName","definitions","createIfNotExists","skipAncestors","parentStyle","_style","mask","clipPathStyleProp","_node$getAttribute","styleClasses","styleClass","stylesSpecificity","existingSpecificity","ignoreStyles","toRestore","styleProp","_this$parent","UnknownElement","wrapFontFamily","trimmed","prepareFontFamily","prepareFontStyle","targetFontStyle","prepareFontWeight","targetFontWeight","Font","inheritFont","BoundingBox","p0","p3","forX","b2ac","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","cp1x","cp1y","cp2x","cp2y","PathParser","SVGPathData","commands","command","xProp","yProp","previousCommand","priorTo","angles","RenderedElement","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","strokeStyle","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","PathElement","pathParser","fillRuleStyleProp","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","cpp","centp","ad","ah","halfWay","sx","sy","GlyphElement","TextElement","textBaseline","childBoundingBox","inheritFontSize","glyph","prevChar","nextChar","arabicForm","maybeGlyph","renderText","customFont","unitsPerEm","ctxFont","lw","firstElement","textAnchor","isRTL","textParent","xAttr","yAttr","dxAttr","dyAttr","measureCache","targetText","_measure","parentAttr","TSpanElement","TextNode","_this$node$parentNode","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","KAPPA","CircleElement","EllipseElement","LineElement","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","SVGElement","patternCanvas","patternCtx","MarkerElement","orient","markerUnits","markerSvg","DefsElement","GElement","GradientElement","stopsContainer","MAX_VIRTUAL_PIXELS","rootView","attributeToInherit","colorProp","LinearGradientElement","isBoundingBoxUnits","RadialGradientElement","fx","fy","StopElement","stopOpacity","stopColor","AnimateElement","valuesAttr","attributeType","attributeName","initialUnits","progress","fill","typeAttr","lb","ub","AnimateColorElement","colorFrom","colorTo","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","ownKeys$2","enumerableOnly","_objectSpread$2","TextPathElement","pathElement","dataArray","theta","dTheta","psi","fs","textDecoration","glyphInfo","rotation","partialText","textFullWidth","fullPathWidth","spacesNumber","inputOffset","charI","glyphWidth","splineStep","dyX","dyY","measuresCache","thisSpacing","parentSpacing","letterSpacingCache","textLen","dxSum","textWidth","nextOffset","pathCommands","nextCommandType","commandType","dist","fromX","fromY","rise","iy","pRise","pRun","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","inputStep","inputPrecision","precision","targetDistance","dataUriRegex","ImageElement","isSvg","subDocument","SymbolElement","SVGFontLoader","svgDocument","fonts","fontNode","StyleElement","cssDefs","cssParts","cssClasses","cssProps","cssClass","cssProp","srcs","UseElement","tempSvg","oldParent","imGet","_height","rgba","imSet","m2","m3","FeColorMatrixElement","includeOpacity","srcData","ng","nb","na","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","ClipPathElement","contextProto","beginPath","closePath","FilterElement","px","py","efd","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","canvasRGBA","TitleElement","DescElement","ownKeys$1","_objectSpread$1","createCanvas","createImage","_createImage","anonymousCrossOrigin","_source","_lineno","_colno","Document","canvg","rootEmSize","emSize","forceAnonymousCrossOrigin","emSizeStack","ElementType","_objectSpread","Canvg","_arguments2","baseOptions"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622],"sources":["../../../node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../../node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../../node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../../node_modules/vue-router/dist/vue-router.mjs","../../../node_modules/coalesce-vue/lib/metadata.js","../../../node_modules/coalesce-vue/node_modules/date-fns/toDate.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/constructFrom.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/addDays.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/addMonths.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/constants.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/defaultOptions.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfISOWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getISOWeekYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfDay.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/differenceInCalendarDays.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfISOWeekYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/addYears.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/compareAsc.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/constructNow.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/isDate.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/isValid.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/differenceInCalendarMonths.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/getRoundingMethod.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/differenceInMilliseconds.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/endOfDay.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/endOfMonth.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/isLastDayOfMonth.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/differenceInMonths.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/differenceInSeconds.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US/_lib/formatDistance.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/_lib/buildFormatLongFn.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US/_lib/formatLong.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US/_lib/formatRelative.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/_lib/buildLocalizeFn.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US/_lib/localize.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/_lib/buildMatchFn.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/_lib/buildMatchPatternFn.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US/_lib/match.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/locale/en-US.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getDayOfYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getISOWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getWeekYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/startOfWeekYear.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/addLeadingZeros.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/format/lightFormatters.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/format/formatters.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/format/longFormatters.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/_lib/protectedTokens.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/format.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/formatDistance.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/formatDistanceToNow.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getDefaultOptions.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/getISODay.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/transpose.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/Setter.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/Parser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/constants.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/utils.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/setWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/setISOWeek.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/setDay.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/setISODay.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse/_lib/parsers.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/parse.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns/lightFormat.mjs","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/tzIntlTimeZoneName/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/tzTokenizeDate/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/newDateUTC/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/tzParseTimezone/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/format/formatters/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/_lib/tzPattern/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/toDate/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/format/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/toZonedTime/index.js","../../../node_modules/coalesce-vue/node_modules/date-fns-tz/dist/esm/formatInTimeZone/index.js","../../../node_modules/coalesce-vue/lib/util.js","../../../node_modules/coalesce-vue/lib/model.js","../../../node_modules/axios/lib/helpers/bind.js","../../../node_modules/axios/lib/utils.js","../../../node_modules/axios/lib/core/AxiosError.js","../../../node_modules/axios/lib/helpers/null.js","../../../node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/axios/lib/defaults/transitional.js","../../../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/axios/lib/platform/browser/index.js","../../../node_modules/axios/lib/platform/common/utils.js","../../../node_modules/axios/lib/platform/index.js","../../../node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/axios/lib/defaults/index.js","../../../node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/axios/lib/core/transformData.js","../../../node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/axios/lib/core/settle.js","../../../node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/axios/lib/helpers/throttle.js","../../../node_modules/axios/lib/helpers/progressEventReducer.js","../../../node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/axios/lib/helpers/cookies.js","../../../node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/axios/lib/helpers/resolveConfig.js","../../../node_modules/axios/lib/adapters/xhr.js","../../../node_modules/axios/lib/helpers/composeSignals.js","../../../node_modules/axios/lib/helpers/trackStream.js","../../../node_modules/axios/lib/adapters/fetch.js","../../../node_modules/axios/lib/adapters/adapters.js","../../../node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/axios/lib/env/data.js","../../../node_modules/axios/lib/helpers/validator.js","../../../node_modules/axios/lib/core/Axios.js","../../../node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/axios/lib/helpers/spread.js","../../../node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/axios/lib/axios.js","../../../node_modules/coalesce-vue/lib/api-client.js","../../../node_modules/lodash-es/_freeGlobal.js","../../../node_modules/lodash-es/_root.js","../../../node_modules/lodash-es/_Symbol.js","../../../node_modules/lodash-es/_getRawTag.js","../../../node_modules/lodash-es/_objectToString.js","../../../node_modules/lodash-es/_baseGetTag.js","../../../node_modules/lodash-es/isObjectLike.js","../../../node_modules/lodash-es/isSymbol.js","../../../node_modules/lodash-es/_arrayMap.js","../../../node_modules/lodash-es/isArray.js","../../../node_modules/lodash-es/_baseToString.js","../../../node_modules/lodash-es/_trimmedEndIndex.js","../../../node_modules/lodash-es/_baseTrim.js","../../../node_modules/lodash-es/isObject.js","../../../node_modules/lodash-es/toNumber.js","../../../node_modules/lodash-es/toFinite.js","../../../node_modules/lodash-es/toInteger.js","../../../node_modules/lodash-es/_baseUnary.js","../../../node_modules/lodash-es/_nodeUtil.js","../../../node_modules/lodash-es/toString.js","../../../node_modules/lodash-es/_baseSlice.js","../../../node_modules/lodash-es/_castSlice.js","../../../node_modules/lodash-es/_hasUnicode.js","../../../node_modules/lodash-es/_asciiToArray.js","../../../node_modules/lodash-es/_unicodeToArray.js","../../../node_modules/lodash-es/_stringToArray.js","../../../node_modules/lodash-es/_baseProperty.js","../../../node_modules/lodash-es/now.js","../../../node_modules/lodash-es/debounce.js","../../../node_modules/lodash-es/_baseIsRegExp.js","../../../node_modules/lodash-es/isRegExp.js","../../../node_modules/lodash-es/_asciiSize.js","../../../node_modules/lodash-es/_unicodeSize.js","../../../node_modules/lodash-es/_stringSize.js","../../../node_modules/lodash-es/throttle.js","../../../node_modules/lodash-es/truncate.js","../../../node_modules/coalesce-vue/lib/viewmodel.js","../../../node_modules/dompurify/dist/purify.es.mjs","../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/date-fns/esm/_lib/toInteger/index.js","../../../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../../../node_modules/date-fns/esm/toDate/index.js","../../../node_modules/date-fns/esm/addMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../../../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../../../node_modules/date-fns/esm/startOfDay/index.js","../../../node_modules/date-fns/esm/addMinutes/index.js","../../../node_modules/date-fns/esm/constants/index.js","../../../node_modules/date-fns/esm/isDate/index.js","../../../node_modules/date-fns/esm/isValid/index.js","../../../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../../../node_modules/date-fns/esm/differenceInMinutes/index.js","../../../node_modules/date-fns/esm/subMilliseconds/index.js","../../../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../../../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../../../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../../../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../node_modules/date-fns/esm/_lib/format/formatters/index.js","../../../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../../../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../../../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../../../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../../../node_modules/date-fns/esm/locale/en-US/index.js","../../../node_modules/date-fns/esm/format/index.js","../../../node_modules/date-fns/esm/_lib/assign/index.js","../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inherits.js","../../../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../../../node_modules/@babel/runtime/helpers/esm/createSuper.js","../../../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/@babel/runtime/helpers/esm/createClass.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/date-fns/esm/parse/_lib/Setter.js","../../../node_modules/date-fns/esm/parse/_lib/Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../../../node_modules/date-fns/esm/parse/_lib/constants.js","../../../node_modules/date-fns/esm/parse/_lib/utils.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../../../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../../../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../../../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../../../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../../../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../../../node_modules/date-fns/esm/parse/index.js","../../../node_modules/date-fns/esm/lightFormat/index.js","../../../node_modules/date-fns/esm/subMinutes/index.js","../../../node_modules/preact/dist/preact.module.js","../../../node_modules/preact/hooks/dist/hooks.module.js","../../../node_modules/preact/compat/dist/compat.module.js","../../../node_modules/@fullcalendar/core/internal-common.js","../../../node_modules/@fullcalendar/core/index.js","../../../node_modules/@fullcalendar/vue3/dist/options.js","../../../node_modules/@fullcalendar/vue3/dist/FullCalendar.js","../../../node_modules/@fullcalendar/daygrid/internal.js","../../../node_modules/@fullcalendar/daygrid/index.js","../../../node_modules/@fullcalendar/timegrid/internal.js","../../../node_modules/@fullcalendar/timegrid/index.js","../../../node_modules/@fullcalendar/interaction/index.js","../../../node_modules/@gtm-support/core/lib/index.js","../../../node_modules/@gtm-support/vue-gtm/dist/index.js","../../../node_modules/@microsoft/signalr/dist/esm/Errors.js","../../../node_modules/@microsoft/signalr/dist/esm/HttpClient.js","../../../node_modules/@microsoft/signalr/dist/esm/ILogger.js","../../../node_modules/@microsoft/signalr/dist/esm/Loggers.js","../../../node_modules/@microsoft/signalr/dist/esm/Utils.js","../../../node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","../../../node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","../../../node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","../../../node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","../../../node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","../../../node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","../../../node_modules/@microsoft/signalr/dist/esm/Subject.js","../../../node_modules/@microsoft/signalr/dist/esm/HubConnection.js","../../../node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","../../../node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","../../../node_modules/@microsoft/signalr/dist/esm/ITransport.js","../../../node_modules/@microsoft/signalr/dist/esm/AbortController.js","../../../node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","../../../node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","../../../node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","../../../node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","../../../node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","../../../node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","../../../node_modules/fflate/esm/browser.js","../../../node_modules/jspdf/dist/jspdf.es.min.js","../../../node_modules/html2canvas/dist/html2canvas.js","../../../node_modules/html2pdf.js/dist/html2pdf.js","../../../node_modules/print-js/dist/print.js","../../../node_modules/vue-email-editor/dist/vue-email-editor.es.js","../../../node_modules/quill/dist/quill.js","../../../node_modules/quill-delta/node_modules/fast-diff/diff.js","../../../node_modules/lodash.clonedeep/index.js","../../../node_modules/lodash.isequal/index.js","../../../node_modules/quill-delta/dist/AttributeMap.js","../../../node_modules/quill-delta/dist/Iterator.js","../../../node_modules/quill-delta/dist/Op.js","../../../node_modules/quill-delta/dist/Delta.js","../../../node_modules/@vueup/vue-quill/dist/vue-quill.esm-bundler.js","../../../node_modules/@nevware21/ts-utils/dist/es5/mod/ts-utils.js","../../../node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","../../../node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","../../../node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/InitActiveStatusEnum.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","../../../node_modules/@nevware21/ts-async/dist/es5/mod/ts-async.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","../../../node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","../../../node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","../../../node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","../../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","../../../node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","../../../node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","../../../node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","../../../node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","../../../node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","../../../node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","../../../node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","../../../node_modules/jspdf/node_modules/dompurify/dist/purify.es.js","../../../node_modules/core-js/internals/global-this.js","../../../node_modules/core-js/internals/fails.js","../../../node_modules/core-js/internals/descriptors.js","../../../node_modules/core-js/internals/function-bind-native.js","../../../node_modules/core-js/internals/function-call.js","../../../node_modules/core-js/internals/object-property-is-enumerable.js","../../../node_modules/core-js/internals/create-property-descriptor.js","../../../node_modules/core-js/internals/function-uncurry-this.js","../../../node_modules/core-js/internals/classof-raw.js","../../../node_modules/core-js/internals/indexed-object.js","../../../node_modules/core-js/internals/is-null-or-undefined.js","../../../node_modules/core-js/internals/require-object-coercible.js","../../../node_modules/core-js/internals/to-indexed-object.js","../../../node_modules/core-js/internals/is-callable.js","../../../node_modules/core-js/internals/is-object.js","../../../node_modules/core-js/internals/get-built-in.js","../../../node_modules/core-js/internals/object-is-prototype-of.js","../../../node_modules/core-js/internals/environment-user-agent.js","../../../node_modules/core-js/internals/environment-v8-version.js","../../../node_modules/core-js/internals/symbol-constructor-detection.js","../../../node_modules/core-js/internals/use-symbol-as-uid.js","../../../node_modules/core-js/internals/is-symbol.js","../../../node_modules/core-js/internals/try-to-string.js","../../../node_modules/core-js/internals/a-callable.js","../../../node_modules/core-js/internals/get-method.js","../../../node_modules/core-js/internals/ordinary-to-primitive.js","../../../node_modules/core-js/internals/define-global-property.js","../../../node_modules/core-js/internals/shared-store.js","../../../node_modules/core-js/internals/shared.js","../../../node_modules/core-js/internals/to-object.js","../../../node_modules/core-js/internals/has-own-property.js","../../../node_modules/core-js/internals/uid.js","../../../node_modules/core-js/internals/well-known-symbol.js","../../../node_modules/core-js/internals/to-primitive.js","../../../node_modules/core-js/internals/to-property-key.js","../../../node_modules/core-js/internals/document-create-element.js","../../../node_modules/core-js/internals/ie8-dom-define.js","../../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../../node_modules/core-js/internals/an-object.js","../../../node_modules/core-js/internals/object-define-property.js","../../../node_modules/core-js/internals/create-non-enumerable-property.js","../../../node_modules/core-js/internals/function-name.js","../../../node_modules/core-js/internals/inspect-source.js","../../../node_modules/core-js/internals/weak-map-basic-detection.js","../../../node_modules/core-js/internals/shared-key.js","../../../node_modules/core-js/internals/hidden-keys.js","../../../node_modules/core-js/internals/internal-state.js","../../../node_modules/core-js/internals/make-built-in.js","../../../node_modules/core-js/internals/define-built-in.js","../../../node_modules/core-js/internals/math-trunc.js","../../../node_modules/core-js/internals/to-integer-or-infinity.js","../../../node_modules/core-js/internals/to-absolute-index.js","../../../node_modules/core-js/internals/to-length.js","../../../node_modules/core-js/internals/length-of-array-like.js","../../../node_modules/core-js/internals/array-includes.js","../../../node_modules/core-js/internals/object-keys-internal.js","../../../node_modules/core-js/internals/enum-bug-keys.js","../../../node_modules/core-js/internals/object-get-own-property-names.js","../../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../../node_modules/core-js/internals/own-keys.js","../../../node_modules/core-js/internals/copy-constructor-properties.js","../../../node_modules/core-js/internals/is-forced.js","../../../node_modules/core-js/internals/export.js","../../../node_modules/core-js/internals/environment.js","../../../node_modules/core-js/internals/environment-is-node.js","../../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../../node_modules/core-js/internals/is-possible-prototype.js","../../../node_modules/core-js/internals/a-possible-prototype.js","../../../node_modules/core-js/internals/object-set-prototype-of.js","../../../node_modules/core-js/internals/set-to-string-tag.js","../../../node_modules/core-js/internals/define-built-in-accessor.js","../../../node_modules/core-js/internals/set-species.js","../../../node_modules/core-js/internals/an-instance.js","../../../node_modules/core-js/internals/to-string-tag-support.js","../../../node_modules/core-js/internals/classof.js","../../../node_modules/core-js/internals/is-constructor.js","../../../node_modules/core-js/internals/a-constructor.js","../../../node_modules/core-js/internals/species-constructor.js","../../../node_modules/core-js/internals/function-apply.js","../../../node_modules/core-js/internals/function-uncurry-this-clause.js","../../../node_modules/core-js/internals/function-bind-context.js","../../../node_modules/core-js/internals/html.js","../../../node_modules/core-js/internals/array-slice.js","../../../node_modules/core-js/internals/validate-arguments-length.js","../../../node_modules/core-js/internals/environment-is-ios.js","../../../node_modules/core-js/internals/task.js","../../../node_modules/core-js/internals/safe-get-built-in.js","../../../node_modules/core-js/internals/queue.js","../../../node_modules/core-js/internals/environment-is-ios-pebble.js","../../../node_modules/core-js/internals/environment-is-webos-webkit.js","../../../node_modules/core-js/internals/microtask.js","../../../node_modules/core-js/internals/host-report-errors.js","../../../node_modules/core-js/internals/perform.js","../../../node_modules/core-js/internals/promise-native-constructor.js","../../../node_modules/core-js/internals/promise-constructor-detection.js","../../../node_modules/core-js/internals/new-promise-capability.js","../../../node_modules/core-js/modules/es.promise.constructor.js","../../../node_modules/core-js/internals/iterators.js","../../../node_modules/core-js/internals/is-array-iterator-method.js","../../../node_modules/core-js/internals/get-iterator-method.js","../../../node_modules/core-js/internals/get-iterator.js","../../../node_modules/core-js/internals/iterator-close.js","../../../node_modules/core-js/internals/iterate.js","../../../node_modules/core-js/internals/check-correctness-of-iteration.js","../../../node_modules/core-js/internals/promise-statics-incorrect-iteration.js","../../../node_modules/core-js/modules/es.promise.all.js","../../../node_modules/core-js/modules/es.promise.catch.js","../../../node_modules/core-js/modules/es.promise.race.js","../../../node_modules/core-js/modules/es.promise.reject.js","../../../node_modules/core-js/internals/promise-resolve.js","../../../node_modules/core-js/modules/es.promise.resolve.js","../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/core-js/internals/to-string.js","../../../node_modules/core-js/internals/regexp-flags.js","../../../node_modules/core-js/internals/regexp-sticky-helpers.js","../../../node_modules/core-js/internals/object-keys.js","../../../node_modules/core-js/internals/object-define-properties.js","../../../node_modules/core-js/internals/object-create.js","../../../node_modules/core-js/internals/regexp-unsupported-dot-all.js","../../../node_modules/core-js/internals/regexp-unsupported-ncg.js","../../../node_modules/core-js/internals/regexp-exec.js","../../../node_modules/core-js/modules/es.regexp.exec.js","../../../node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","../../../node_modules/core-js/internals/string-multibyte.js","../../../node_modules/core-js/internals/advance-string-index.js","../../../node_modules/core-js/internals/regexp-exec-abstract.js","../../../node_modules/core-js/modules/es.string.match.js","../../../node_modules/core-js/internals/get-substitution.js","../../../node_modules/core-js/modules/es.string.replace.js","../../../node_modules/core-js/internals/is-regexp.js","../../../node_modules/core-js/internals/not-a-regexp.js","../../../node_modules/core-js/internals/correct-is-regexp-logic.js","../../../node_modules/core-js/modules/es.string.starts-with.js","../../../node_modules/core-js/internals/add-to-unscopables.js","../../../node_modules/core-js/internals/correct-prototype-getter.js","../../../node_modules/core-js/internals/object-get-prototype-of.js","../../../node_modules/core-js/internals/iterators-core.js","../../../node_modules/core-js/internals/iterator-create-constructor.js","../../../node_modules/core-js/internals/iterator-define.js","../../../node_modules/core-js/internals/create-iter-result-object.js","../../../node_modules/core-js/modules/es.array.iterator.js","../../../node_modules/core-js/internals/dom-iterables.js","../../../node_modules/core-js/internals/dom-token-list-prototype.js","../../../node_modules/core-js/modules/web.dom-collections.iterator.js","../../../node_modules/core-js/internals/array-reduce.js","../../../node_modules/core-js/internals/array-method-is-strict.js","../../../node_modules/core-js/modules/es.array.reduce.js","../../../node_modules/core-js/modules/es.string.ends-with.js","../../../node_modules/core-js/modules/es.string.split.js","../../../node_modules/performance-now/lib/performance-now.js","../../../node_modules/raf/index.js","../../../node_modules/core-js/internals/whitespaces.js","../../../node_modules/core-js/internals/string-trim.js","../../../node_modules/core-js/internals/string-trim-forced.js","../../../node_modules/core-js/modules/es.string.trim.js","../../../node_modules/rgbcolor/index.js","../../../node_modules/core-js/modules/es.array.index-of.js","../../../node_modules/core-js/modules/es.string.includes.js","../../../node_modules/core-js/internals/is-array.js","../../../node_modules/core-js/modules/es.array.reverse.js","../../../node_modules/svg-pathdata/lib/SVGPathData.module.js","../../../node_modules/core-js/internals/regexp-get-flags.js","../../../node_modules/core-js/modules/es.regexp.to-string.js","../../../node_modules/stackblur-canvas/dist/stackblur-es.js","../../../node_modules/canvg/lib/index.es.js"],"sourcesContent":["/**\n* @vue/shared v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, toRawType, capitalize, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isSymbol, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= ~1;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(() => {\n mountToTarget();\n n2.el.__isMounted = true;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && !n1.el.__isMounted) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n delete n1.el.__isMounted;\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const disabled = isTeleportDisabled(vnode.props);\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= ~256;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (isArray(a) && isArray(b)) return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !camelizePropsKey.includes(key)\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || key !== \"_\") {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= ~32;\n job.flags &= ~4;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n const runsImmediately = cb && immediate || !cb && flush !== \"post\";\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!runsImmediately) {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (isInSSRComponentSetup) {\n if (ssrCleanup) {\n ssrCleanup.push(watchHandle);\n } else if (runsImmediately) {\n watchHandle();\n }\n }\n return watchHandle;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n const camelizedName = camelize(name);\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][camelizedName]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const hyphenatedName = hyphenate(name);\n const modifiers = getModelModifiers(props, camelizedName);\n const res = customRef((track, trigger) => {\n let localValue;\n let prevSetValue = EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[camelizedName];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(event))}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs, false, true);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text or teleport root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root, null, false, true);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, vnode.transition);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n `<Suspense> is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) === container2) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect, optimized2) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized2\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(`<Suspense> slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value, inVOnce = false) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock && inVOnce) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (isVNode(child)) {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n pauseTracking();\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n const isAsyncSetup = isPromise(setupResult);\n resetTracking();\n reset();\n if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {\n markAsyncBoundary(instance);\n }\n if (isAsyncSetup) {\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || __VUE_OPTIONS_API__ && resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n // avoid debugger accessing value affecting behavior\n formatValue(\"_value\" in obj ? obj._value : obj),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.13\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/**\n* @vue/runtime-dom v3.5.13\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { warn, h, BaseTransition, assertNumber, BaseTransitionPropsValidators, getCurrentInstance, onBeforeUpdate, queuePostFlushCb, onMounted, watch, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, NOOP, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, isOn, isModelListener, camelize as camelize$1, isPlainObject, hasOwn, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n try {\n policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n createHTML: (val) => val\n });\n } catch (e) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Error creating trusted types policy: ${e}`);\n }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling)) break;\n }\n } else {\n templateContainer.innerHTML = unsafeToTrustedHTML(\n namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n );\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n t.displayName = \"Transition\";\n t.props = TransitionPropsValidators;\n return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done, isCancelled) => {\n el._enterCancelled = isCancelled;\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n if (!el._enterCancelled) {\n forceReflow();\n addTransitionClass(el, leaveActiveClass);\n } else {\n addTransitionClass(el, leaveActiveClass);\n forceReflow();\n }\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false, void 0, true);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true, void 0, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout != null) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\") return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue) return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.getCssVars = () => getter(instance.proxy);\n }\n const setVars = () => {\n const vars = getter(instance.proxy);\n if (instance.ce) {\n setVarsOnNode(instance.ce, vars);\n } else {\n setVarsOnVNode(instance.subTree, vars);\n }\n updateTeleports(vars);\n };\n onBeforeUpdate(() => {\n queuePostFlushCb(setVars);\n });\n onMounted(() => {\n watch(setVars, NOOP, { flush: \"post\" });\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor) break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null) val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(\n key,\n isBoolean ? \"\" : isSymbol(value) ? String(value) : value\n );\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent, attrName) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (value != null) {\n el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n }\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? (\n // #11647: value should be set as empty string for null and undefined,\n // but <input type=\"checkbox\"> should be set as 'on'.\n el.type === \"checkbox\" ? \"on\" : \"\"\n ) : String(value);\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(attrName || key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(\n !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue,\n instance\n );\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n if (isFunction(value) || isArray(value)) {\n return value;\n }\n warn(\n `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n );\n return NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(\n (fn) => (e2) => !e2._stopped && fn && fn(e2)\n );\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue);\n if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n }\n } else if (\n // #11081 force set props for possible async custom element\n el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))\n ) {\n patchDOMProp(el, camelize$1(key), nextValue, parentComponent, key);\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n return key in el;\n}\n\nconst REMOVAL = {};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n const Comp = defineComponent(options, extraOptions);\n if (isPlainObject(Comp)) extend(Comp, extraOptions);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, _createApp);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, _createApp = createApp) {\n super();\n this._def = _def;\n this._props = _props;\n this._createApp = _createApp;\n this._isVueCE = true;\n /**\n * @internal\n */\n this._instance = null;\n /**\n * @internal\n */\n this._app = null;\n /**\n * @internal\n */\n this._nonce = this._def.nonce;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._styleChildren = /* @__PURE__ */ new WeakSet();\n this._ob = null;\n if (this.shadowRoot && _createApp !== createApp) {\n this._root = this.shadowRoot;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n if (_def.shadowRoot !== false) {\n this.attachShadow({ mode: \"open\" });\n this._root = this.shadowRoot;\n } else {\n this._root = this;\n }\n }\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n connectedCallback() {\n if (!this.isConnected) return;\n if (!this.shadowRoot) {\n this._parseSlots();\n }\n this._connected = true;\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n this._parent = parent;\n break;\n }\n }\n if (!this._instance) {\n if (this._resolved) {\n this._setParent();\n this._update();\n } else {\n if (parent && parent._pendingResolve) {\n this._pendingResolve = parent._pendingResolve.then(() => {\n this._pendingResolve = void 0;\n this._resolveDef();\n });\n } else {\n this._resolveDef();\n }\n }\n }\n }\n _setParent(parent = this._parent) {\n if (parent) {\n this._instance.parent = parent._instance;\n this._instance.provides = parent._instance.provides;\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n this._app && this._app.unmount();\n if (this._instance) this._instance.ce = void 0;\n this._app = this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._pendingResolve) {\n return;\n }\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n this._resolved = true;\n this._pendingResolve = void 0;\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n if (this.shadowRoot) {\n this._applyStyles(styles);\n } else if (!!(process.env.NODE_ENV !== \"production\") && styles) {\n warn(\n \"Custom element style injection is not supported when using shadowRoot: false\"\n );\n }\n this._mount(def);\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n this._pendingResolve = asyncDef().then(\n (def) => resolve(this._def = def, true)\n );\n } else {\n resolve(this._def);\n }\n }\n _mount(def) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) && !def.name) {\n def.name = \"VueElement\";\n }\n this._app = this._createApp(def);\n if (def.configureApp) {\n def.configureApp(this._app);\n }\n this._app._ceVNode = this._createVNode();\n this._app.mount(this._root);\n const exposed = this._instance && this._instance.exposed;\n if (!exposed) return;\n for (const key in exposed) {\n if (!hasOwn(this, key)) {\n Object.defineProperty(this, key, {\n // unwrap ref to be consistent with public instance behavior\n get: () => unref(exposed[key])\n });\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`Exposed property \"${key}\" already exists on custom element.`);\n }\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key]);\n }\n }\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val, true, true);\n }\n });\n }\n }\n _setAttr(key) {\n if (key.startsWith(\"data-v-\")) return;\n const has = this.hasAttribute(key);\n let value = has ? this.getAttribute(key) : REMOVAL;\n const camelKey = camelize$1(key);\n if (has && this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false, true);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n if (val !== this._props[key]) {\n if (val === REMOVAL) {\n delete this._props[key];\n } else {\n this._props[key] = val;\n if (key === \"key\" && this._app) {\n this._app._ceVNode.key = val;\n }\n }\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n const ob = this._ob;\n ob && ob.disconnect();\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n ob && ob.observe(this, { attributes: true });\n }\n }\n }\n _update() {\n render(this._createVNode(), this._root);\n }\n _createVNode() {\n const baseProps = {};\n if (!this.shadowRoot) {\n baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n }\n const vnode = createVNode(this._def, extend(baseProps, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.ce = this;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this._root.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(\n event,\n isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }\n )\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n this._setParent();\n };\n }\n return vnode;\n }\n _applyStyles(styles, owner) {\n if (!styles) return;\n if (owner) {\n if (owner === this._def || this._styleChildren.has(owner)) {\n return;\n }\n this._styleChildren.add(owner);\n }\n const nonce = this._nonce;\n for (let i = styles.length - 1; i >= 0; i--) {\n const s = document.createElement(\"style\");\n if (nonce) s.setAttribute(\"nonce\", nonce);\n s.textContent = styles[i];\n this.shadowRoot.prepend(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (owner) {\n if (owner.__hmrId) {\n if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n let entry = this._childStyles.get(owner.__hmrId);\n if (!entry) {\n this._childStyles.set(owner.__hmrId, entry = []);\n }\n entry.push(s);\n }\n } else {\n (this._styles || (this._styles = [])).push(s);\n }\n }\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _parseSlots() {\n const slots = this._slots = {};\n let n;\n while (n = this.firstChild) {\n const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n (slots[slotName] || (slots[slotName] = [])).push(n);\n this.removeChild(n);\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _renderSlots() {\n const outlets = (this._teleportTarget || this).querySelectorAll(\"slot\");\n const scopeId = this._instance.type.__scopeId;\n for (let i = 0; i < outlets.length; i++) {\n const o = outlets[i];\n const slotName = o.getAttribute(\"name\") || \"default\";\n const content = this._slots[slotName];\n const parent = o.parentNode;\n if (content) {\n for (const n of content) {\n if (scopeId && n.nodeType === 1) {\n const id = scopeId + \"-s\";\n const walker = document.createTreeWalker(n, 1);\n n.setAttribute(id, \"\");\n let child;\n while (child = walker.nextNode()) {\n child.setAttribute(id, \"\");\n }\n }\n parent.insertBefore(n, o);\n }\n } else {\n while (o.firstChild) parent.insertBefore(o.firstChild, o);\n }\n parent.removeChild(o);\n }\n }\n /**\n * @internal\n */\n _injectChildStyle(comp) {\n this._applyStyles(comp.styles, comp);\n }\n /**\n * @internal\n */\n _removeChildStyle(comp) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this._styleChildren.delete(comp);\n if (this._childStyles && comp.__hmrId) {\n const oldStyles = this._childStyles.get(comp.__hmrId);\n if (oldStyles) {\n oldStyles.forEach((s) => this._root.removeChild(s));\n oldStyles.length = 0;\n }\n }\n }\n }\n}\nfunction useHost(caller) {\n const instance = getCurrentInstance();\n const el = instance && instance.ce;\n if (el) {\n return el;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!instance) {\n warn(\n `${caller || \"useHost\"} called without an active component instance.`\n );\n } else {\n warn(\n `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n );\n }\n }\n return null;\n}\nfunction useShadowRoot() {\n const el = !!(process.env.NODE_ENV !== \"production\") ? useHost(\"useShadowRoot\") : useHost();\n return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst decorate = (t) => {\n delete t.props.mode;\n return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = [];\n if (children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.el && child.el instanceof Element) {\n prevChildren.push(child);\n setTransitionHooks(\n child,\n resolveTransitionHooks(\n child,\n cssTransitionProps,\n state,\n instance\n )\n );\n positionMap.set(\n child,\n child.el.getBoundingClientRect()\n );\n }\n }\n }\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") && child.type !== Text) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n return createVNode(tag, null, children);\n };\n }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing) return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing) return;\n const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy && value === oldValue) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n let checked;\n if (isArray(value)) {\n checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n checked = value.has(vnode.props.value);\n } else {\n if (value === oldValue) return;\n checked = looseEqual(value, getCheckboxValue(el, true));\n }\n if (el.checked !== checked) {\n el.checked = checked;\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value }) {\n if (!el._assigning) {\n setSelected(el, value);\n }\n }\n};\nfunction setSelected(el, value) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.some((v) => String(v) === String(optionValue));\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers)) return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(\n (k) => k === eventKey || keyNames[k] === eventKey\n )) {\n return fn(event);\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container) return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n if (container.nodeType === 1) {\n container.textContent = \"\";\n }\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/*!\n * vue-router v4.4.5\n * (c) 2024 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onUnmounted, onDeactivated, onActivated, computed, unref, watchEffect, defineComponent, reactive, h, provide, ref, watch, shallowRef, shallowReactive, nextTick } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst isBrowser = typeof document !== 'undefined';\n\n/**\n * Allows differentiating lazy components from functional components and vue-class-component\n * @internal\n *\n * @param component\n */\nfunction isRouteComponent(component) {\n return (typeof component === 'object' ||\n 'displayName' in component ||\n 'props' in component ||\n '__vccOpts' in component);\n}\nfunction isESModule(obj) {\n return (obj.__esModule ||\n obj[Symbol.toStringTag] === 'Module' ||\n // support CF with dynamic imports that do not\n // add the Module string tag\n (obj.default && isRouteComponent(obj.default)));\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n const newParams = {};\n for (const key in params) {\n const value = params[key];\n newParams[key] = isArray(value)\n ? value.map(fn)\n : fn(value);\n }\n return newParams;\n}\nconst noop = () => { };\n/**\n * Typesafe alternative to Array.isArray\n * https://github.com/microsoft/TypeScript/pull/48228\n */\nconst isArray = Array.isArray;\n\nfunction warn(msg) {\n // avoid using ...args as it breaks in older Edge builds\n const args = Array.from(arguments).slice(1);\n console.warn.apply(console, ['[Vue Router warn]: ' + msg].concat(args));\n}\n\n/**\n * Encoding Rules (⣠= Space)\n * - Path: ⣠\" < > # ? { }\n * - Query: ⣠\" < > # & =\n * - Hash: ⣠\" < > `\n *\n * On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n * defines some extra characters to be encoded. Most browsers do not encode them\n * in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n * also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n * plus `-._~`. This extra safety should be applied to query by patching the\n * string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n * should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n * into a `/` if directly typed in. The _backtick_ (`````) should also be\n * encoded everywhere because some browsers like FF encode it when directly\n * written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n */\n// const EXTRA_RESERVED_RE = /[!'()*]/g\n// const encodeReservedReplacer = (c: string) => '%' + c.charCodeAt(0).toString(16)\nconst HASH_RE = /#/g; // %23\nconst AMPERSAND_RE = /&/g; // %26\nconst SLASH_RE = /\\//g; // %2F\nconst EQUAL_RE = /=/g; // %3D\nconst IM_RE = /\\?/g; // %3F\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * NOTE: It's not clear to me if we should encode the + symbol in queries, it\n * seems to be less flexible than not doing so and I can't find out the legacy\n * systems requiring this for regular requests like text/html. In the standard,\n * the encoding of the plus character is only mentioned for\n * application/x-www-form-urlencoded\n * (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n * leave the plus character as is in queries. To be more flexible, we allow the\n * plus character on the query, but it can also be manually encoded by the user.\n *\n * Resources:\n * - https://url.spec.whatwg.org/#urlencoded-parsing\n * - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n */\nconst ENC_BRACKET_OPEN_RE = /%5B/g; // [\nconst ENC_BRACKET_CLOSE_RE = /%5D/g; // ]\nconst ENC_CARET_RE = /%5E/g; // ^\nconst ENC_BACKTICK_RE = /%60/g; // `\nconst ENC_CURLY_OPEN_RE = /%7B/g; // {\nconst ENC_PIPE_RE = /%7C/g; // |\nconst ENC_CURLY_CLOSE_RE = /%7D/g; // }\nconst ENC_SPACE_RE = /%20/g; // }\n/**\n * Encode characters that need to be encoded on the path, search and hash\n * sections of the URL.\n *\n * @internal\n * @param text - string to encode\n * @returns encoded string\n */\nfunction commonEncode(text) {\n return encodeURI('' + text)\n .replace(ENC_PIPE_RE, '|')\n .replace(ENC_BRACKET_OPEN_RE, '[')\n .replace(ENC_BRACKET_CLOSE_RE, ']');\n}\n/**\n * Encode characters that need to be encoded on the hash section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeHash(text) {\n return commonEncode(text)\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^');\n}\n/**\n * Encode characters that need to be encoded query values on the query\n * section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeQueryValue(text) {\n return (commonEncode(text)\n // Encode the space as +, encode the + to differentiate it from the space\n .replace(PLUS_RE, '%2B')\n .replace(ENC_SPACE_RE, '+')\n .replace(HASH_RE, '%23')\n .replace(AMPERSAND_RE, '%26')\n .replace(ENC_BACKTICK_RE, '`')\n .replace(ENC_CURLY_OPEN_RE, '{')\n .replace(ENC_CURLY_CLOSE_RE, '}')\n .replace(ENC_CARET_RE, '^'));\n}\n/**\n * Like `encodeQueryValue` but also encodes the `=` character.\n *\n * @param text - string to encode\n */\nfunction encodeQueryKey(text) {\n return encodeQueryValue(text).replace(EQUAL_RE, '%3D');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodePath(text) {\n return commonEncode(text).replace(HASH_RE, '%23').replace(IM_RE, '%3F');\n}\n/**\n * Encode characters that need to be encoded on the path section of the URL as a\n * param. This function encodes everything {@link encodePath} does plus the\n * slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n * string instead.\n *\n * @param text - string to encode\n * @returns encoded string\n */\nfunction encodeParam(text) {\n return text == null ? '' : encodePath(text).replace(SLASH_RE, '%2F');\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) {\n (process.env.NODE_ENV !== 'production') && warn(`Error decoding \"${text}\". Using original value`);\n }\n return '' + text;\n}\n\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, '');\n/**\n * Transforms a URI into a normalized history location\n *\n * @param parseQuery\n * @param location - URI to normalize\n * @param currentLocation - current absolute location. Allows resolving relative\n * paths. Must start with `/`. Defaults to `/`\n * @returns a normalized history location\n */\nfunction parseURL(parseQuery, location, currentLocation = '/') {\n let path, query = {}, searchString = '', hash = '';\n // Could use URL and URLSearchParams but IE 11 doesn't support it\n // TODO: move to new URL()\n const hashPos = location.indexOf('#');\n let searchPos = location.indexOf('?');\n // the hash appears before the search, so it's not part of the search string\n if (hashPos < searchPos && hashPos >= 0) {\n searchPos = -1;\n }\n if (searchPos > -1) {\n path = location.slice(0, searchPos);\n searchString = location.slice(searchPos + 1, hashPos > -1 ? hashPos : location.length);\n query = parseQuery(searchString);\n }\n if (hashPos > -1) {\n path = path || location.slice(0, hashPos);\n // keep the # character\n hash = location.slice(hashPos, location.length);\n }\n // no search and no query\n path = resolveRelativePath(path != null ? path : location, currentLocation);\n // empty path means a relative query or hash `?foo=f`, `#thing`\n return {\n fullPath: path + (searchString && '?') + searchString + hash,\n path,\n query,\n hash: decode(hash),\n };\n}\n/**\n * Stringifies a URL object\n *\n * @param stringifyQuery\n * @param location\n */\nfunction stringifyURL(stringifyQuery, location) {\n const query = location.query ? stringifyQuery(location.query) : '';\n return location.path + (query && '?') + query + (location.hash || '');\n}\n/**\n * Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n *\n * @param pathname - location.pathname\n * @param base - base to strip off\n */\nfunction stripBase(pathname, base) {\n // no base or base is not found at the beginning\n if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))\n return pathname;\n return pathname.slice(base.length) || '/';\n}\n/**\n * Checks if two RouteLocation are equal. This means that both locations are\n * pointing towards the same {@link RouteRecord} and that all `params`, `query`\n * parameters and `hash` are the same\n *\n * @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n * @param a - first {@link RouteLocation}\n * @param b - second {@link RouteLocation}\n */\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n const aLastIndex = a.matched.length - 1;\n const bLastIndex = b.matched.length - 1;\n return (aLastIndex > -1 &&\n aLastIndex === bLastIndex &&\n isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) &&\n isSameRouteLocationParams(a.params, b.params) &&\n stringifyQuery(a.query) === stringifyQuery(b.query) &&\n a.hash === b.hash);\n}\n/**\n * Check if two `RouteRecords` are equal. Takes into account aliases: they are\n * considered equal to the `RouteRecord` they are aliasing.\n *\n * @param a - first {@link RouteRecord}\n * @param b - second {@link RouteRecord}\n */\nfunction isSameRouteRecord(a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n if (Object.keys(a).length !== Object.keys(b).length)\n return false;\n for (const key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key]))\n return false;\n }\n return true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n return isArray(a)\n ? isEquivalentArray(a, b)\n : isArray(b)\n ? isEquivalentArray(b, a)\n : a === b;\n}\n/**\n * Check if two arrays are the same or if an array with one single entry is the\n * same as another primitive value. Used to check query and parameters\n *\n * @param a - array of values\n * @param b - array of values or a single value\n */\nfunction isEquivalentArray(a, b) {\n return isArray(b)\n ? a.length === b.length && a.every((value, i) => value === b[i])\n : a.length === 1 && a[0] === b;\n}\n/**\n * Resolves a relative path that starts with `.`.\n *\n * @param to - path location we are resolving\n * @param from - currentLocation.path, should start with `/`\n */\nfunction resolveRelativePath(to, from) {\n if (to.startsWith('/'))\n return to;\n if ((process.env.NODE_ENV !== 'production') && !from.startsWith('/')) {\n warn(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n return to;\n }\n if (!to)\n return from;\n const fromSegments = from.split('/');\n const toSegments = to.split('/');\n const lastToSegment = toSegments[toSegments.length - 1];\n // make . and ./ the same (../ === .., ../../ === ../..)\n // this is the same behavior as new URL()\n if (lastToSegment === '..' || lastToSegment === '.') {\n toSegments.push('');\n }\n let position = fromSegments.length - 1;\n let toPosition;\n let segment;\n for (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n segment = toSegments[toPosition];\n // we stay on the same position\n if (segment === '.')\n continue;\n // go up in the from array\n if (segment === '..') {\n // we can't go below zero, but we still need to increment toPosition\n if (position > 1)\n position--;\n // continue\n }\n // we reached a non-relative path, we stop here\n else\n break;\n }\n return (fromSegments.slice(0, position).join('/') +\n '/' +\n toSegments.slice(toPosition).join('/'));\n}\n/**\n * Initial route location where the router is. Can be used in navigation guards\n * to differentiate the initial navigation.\n *\n * @example\n * ```js\n * import { START_LOCATION } from 'vue-router'\n *\n * router.beforeEach((to, from) => {\n * if (from === START_LOCATION) {\n * // initial navigation\n * }\n * })\n * ```\n */\nconst START_LOCATION_NORMALIZED = {\n path: '/',\n // TODO: could we use a symbol in the future?\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\n};\n\nvar NavigationType;\n(function (NavigationType) {\n NavigationType[\"pop\"] = \"pop\";\n NavigationType[\"push\"] = \"push\";\n})(NavigationType || (NavigationType = {}));\nvar NavigationDirection;\n(function (NavigationDirection) {\n NavigationDirection[\"back\"] = \"back\";\n NavigationDirection[\"forward\"] = \"forward\";\n NavigationDirection[\"unknown\"] = \"\";\n})(NavigationDirection || (NavigationDirection = {}));\n/**\n * Starting location for Histories\n */\nconst START = '';\n// Generic utils\n/**\n * Normalizes a base by removing any trailing slash and reading the base tag if\n * present.\n *\n * @param base - base to normalize\n */\nfunction normalizeBase(base) {\n if (!base) {\n if (isBrowser) {\n // respect <base> tag\n const baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^\\w+:\\/\\/[^\\/]+/, '');\n }\n else {\n base = '/';\n }\n }\n // ensure leading slash when it was removed by the regex above avoid leading\n // slash with hash because the file could be read from the disk like file://\n // and the leading slash would cause problems\n if (base[0] !== '/' && base[0] !== '#')\n base = '/' + base;\n // remove the trailing slash so all other method can just do `base + fullPath`\n // to build an href\n return removeTrailingSlash(base);\n}\n// remove any character before the hash\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n return base.replace(BEFORE_HASH_RE, '#') + location;\n}\n\nfunction getElementPosition(el, offset) {\n const docRect = document.documentElement.getBoundingClientRect();\n const elRect = el.getBoundingClientRect();\n return {\n behavior: offset.behavior,\n left: elRect.left - docRect.left - (offset.left || 0),\n top: elRect.top - docRect.top - (offset.top || 0),\n };\n}\nconst computeScrollPosition = () => ({\n left: window.scrollX,\n top: window.scrollY,\n});\nfunction scrollToPosition(position) {\n let scrollToOptions;\n if ('el' in position) {\n const positionEl = position.el;\n const isIdSelector = typeof positionEl === 'string' && positionEl.startsWith('#');\n /**\n * `id`s can accept pretty much any characters, including CSS combinators\n * like `>` or `~`. It's still possible to retrieve elements using\n * `document.getElementById('~')` but it needs to be escaped when using\n * `document.querySelector('#\\\\~')` for it to be valid. The only\n * requirements for `id`s are them to be unique on the page and to not be\n * empty (`id=\"\"`). Because of that, when passing an id selector, it should\n * be properly escaped for it to work with `querySelector`. We could check\n * for the id selector to be simple (no CSS combinators `+ >~`) but that\n * would make things inconsistent since they are valid characters for an\n * `id` but would need to be escaped when using `querySelector`, breaking\n * their usage and ending up in no selector returned. Selectors need to be\n * escaped:\n *\n * - `#1-thing` becomes `#\\31 -thing`\n * - `#with~symbols` becomes `#with\\\\~symbols`\n *\n * - More information about the topic can be found at\n * https://mathiasbynens.be/notes/html5-id-class.\n * - Practical example: https://mathiasbynens.be/demo/html5-id\n */\n if ((process.env.NODE_ENV !== 'production') && typeof position.el === 'string') {\n if (!isIdSelector || !document.getElementById(position.el.slice(1))) {\n try {\n const foundEl = document.querySelector(position.el);\n if (isIdSelector && foundEl) {\n warn(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n // return to avoid other warnings\n return;\n }\n }\n catch (err) {\n warn(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n // return to avoid other warnings\n return;\n }\n }\n }\n const el = typeof positionEl === 'string'\n ? isIdSelector\n ? document.getElementById(positionEl.slice(1))\n : document.querySelector(positionEl)\n : positionEl;\n if (!el) {\n (process.env.NODE_ENV !== 'production') &&\n warn(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n return;\n }\n scrollToOptions = getElementPosition(el, position);\n }\n else {\n scrollToOptions = position;\n }\n if ('scrollBehavior' in document.documentElement.style)\n window.scrollTo(scrollToOptions);\n else {\n window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n }\n}\nfunction getScrollKey(path, delta) {\n const position = history.state ? history.state.position - delta : -1;\n return position + path;\n}\nconst scrollPositions = new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n scrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n const scroll = scrollPositions.get(key);\n // consume it so it's not used again\n scrollPositions.delete(key);\n return scroll;\n}\n// TODO: RFC about how to save scroll position\n/**\n * ScrollBehavior instance used by the router to compute and restore the scroll\n * position when navigating.\n */\n// export interface ScrollHandler<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\n// // returns a scroll position that can be saved in history\n// compute(): ScrollPositionEntry\n// // can take an extended ScrollPositionEntry\n// scroll(position: ScrollPosition): void\n// }\n// export const scrollHandler: ScrollHandler<ScrollPosition> = {\n// compute: computeScroll,\n// scroll: scrollToPosition,\n// }\n\nlet createBaseLocation = () => location.protocol + '//' + location.host;\n/**\n * Creates a normalized history location from a window.location object\n * @param base - The base path\n * @param location - The window.location object\n */\nfunction createCurrentLocation(base, location) {\n const { pathname, search, hash } = location;\n // allows hash bases like #, /#, #/, #!, #!/, /#!/, or even /folder#end\n const hashPos = base.indexOf('#');\n if (hashPos > -1) {\n let slicePos = hash.includes(base.slice(hashPos))\n ? base.slice(hashPos).length\n : 1;\n let pathFromHash = hash.slice(slicePos);\n // prepend the starting slash to hash so the url starts with /#\n if (pathFromHash[0] !== '/')\n pathFromHash = '/' + pathFromHash;\n return stripBase(pathFromHash, '');\n }\n const path = stripBase(pathname, base);\n return path + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n let listeners = [];\n let teardowns = [];\n // TODO: should it be a stack? a Dict. Check if the popstate listener\n // can trigger twice\n let pauseState = null;\n const popStateHandler = ({ state, }) => {\n const to = createCurrentLocation(base, location);\n const from = currentLocation.value;\n const fromState = historyState.value;\n let delta = 0;\n if (state) {\n currentLocation.value = to;\n historyState.value = state;\n // ignore the popstate and reset the pauseState\n if (pauseState && pauseState === from) {\n pauseState = null;\n return;\n }\n delta = fromState ? state.position - fromState.position : 0;\n }\n else {\n replace(to);\n }\n // Here we could also revert the navigation by calling history.go(-delta)\n // this listener will have to be adapted to not trigger again and to wait for the url\n // to be updated before triggering the listeners. Some kind of validation function would also\n // need to be passed to the listeners so the navigation can be accepted\n // call all listeners\n listeners.forEach(listener => {\n listener(currentLocation.value, from, {\n delta,\n type: NavigationType.pop,\n direction: delta\n ? delta > 0\n ? NavigationDirection.forward\n : NavigationDirection.back\n : NavigationDirection.unknown,\n });\n });\n };\n function pauseListeners() {\n pauseState = currentLocation.value;\n }\n function listen(callback) {\n // set up the listener and prepare teardown callbacks\n listeners.push(callback);\n const teardown = () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n teardowns.push(teardown);\n return teardown;\n }\n function beforeUnloadListener() {\n const { history } = window;\n if (!history.state)\n return;\n history.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), '');\n }\n function destroy() {\n for (const teardown of teardowns)\n teardown();\n teardowns = [];\n window.removeEventListener('popstate', popStateHandler);\n window.removeEventListener('beforeunload', beforeUnloadListener);\n }\n // set up the listeners and prepare teardown callbacks\n window.addEventListener('popstate', popStateHandler);\n // TODO: could we use 'pagehide' or 'visibilitychange' instead?\n // https://developer.chrome.com/blog/page-lifecycle-api/\n window.addEventListener('beforeunload', beforeUnloadListener, {\n passive: true,\n });\n return {\n pauseListeners,\n listen,\n destroy,\n };\n}\n/**\n * Creates a state object\n */\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n return {\n back,\n current,\n forward,\n replaced,\n position: window.history.length,\n scroll: computeScroll ? computeScrollPosition() : null,\n };\n}\nfunction useHistoryStateNavigation(base) {\n const { history, location } = window;\n // private variables\n const currentLocation = {\n value: createCurrentLocation(base, location),\n };\n const historyState = { value: history.state };\n // build current history entry as this is a fresh navigation\n if (!historyState.value) {\n changeLocation(currentLocation.value, {\n back: null,\n current: currentLocation.value,\n forward: null,\n // the length is off by one, we need to decrease it\n position: history.length - 1,\n replaced: true,\n // don't add a scroll as the user may have an anchor, and we want\n // scrollBehavior to be triggered without a saved position\n scroll: null,\n }, true);\n }\n function changeLocation(to, state, replace) {\n /**\n * if a base tag is provided, and we are on a normal domain, we have to\n * respect the provided `base` attribute because pushState() will use it and\n * potentially erase anything before the `#` like at\n * https://github.com/vuejs/router/issues/685 where a base of\n * `/folder/#` but a base of `/` would erase the `/folder/` section. If\n * there is no host, the `<base>` tag makes no sense and if there isn't a\n * base tag we can just use everything after the `#`.\n */\n const hashIndex = base.indexOf('#');\n const url = hashIndex > -1\n ? (location.host && document.querySelector('base')\n ? base\n : base.slice(hashIndex)) + to\n : createBaseLocation() + base + to;\n try {\n // BROWSER QUIRK\n // NOTE: Safari throws a SecurityError when calling this function 100 times in 30 seconds\n history[replace ? 'replaceState' : 'pushState'](state, '', url);\n historyState.value = state;\n }\n catch (err) {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('Error with push/replace State', err);\n }\n else {\n console.error(err);\n }\n // Force the navigation, this also resets the call count\n location[replace ? 'replace' : 'assign'](url);\n }\n }\n function replace(to, data) {\n const state = assign({}, history.state, buildState(historyState.value.back, \n // keep back and forward entries but override current position\n to, historyState.value.forward, true), data, { position: historyState.value.position });\n changeLocation(to, state, true);\n currentLocation.value = to;\n }\n function push(to, data) {\n // Add to current entry the information of where we are going\n // as well as saving the current position\n const currentState = assign({}, \n // use current history state to gracefully handle a wrong call to\n // history.replaceState\n // https://github.com/vuejs/router/issues/366\n historyState.value, history.state, {\n forward: to,\n scroll: computeScrollPosition(),\n });\n if ((process.env.NODE_ENV !== 'production') && !history.state) {\n warn(`history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\n` +\n `history.replaceState(history.state, '', url)\\n\\n` +\n `You can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state`);\n }\n changeLocation(currentState.current, currentState, true);\n const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);\n changeLocation(to, state, false);\n currentLocation.value = to;\n }\n return {\n location: currentLocation,\n state: historyState,\n push,\n replace,\n };\n}\n/**\n * Creates an HTML5 history. Most common history for single page applications.\n *\n * @param base -\n */\nfunction createWebHistory(base) {\n base = normalizeBase(base);\n const historyNavigation = useHistoryStateNavigation(base);\n const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n function go(delta, triggerListeners = true) {\n if (!triggerListeners)\n historyListeners.pauseListeners();\n history.go(delta);\n }\n const routerHistory = assign({\n // it's overridden right after\n location: '',\n base,\n go,\n createHref: createHref.bind(null, base),\n }, historyNavigation, historyListeners);\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => historyNavigation.location.value,\n });\n Object.defineProperty(routerHistory, 'state', {\n enumerable: true,\n get: () => historyNavigation.state.value,\n });\n return routerHistory;\n}\n\n/**\n * Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n * It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n *\n * @param base - Base applied to all urls, defaults to '/'\n * @returns a history object that can be passed to the router constructor\n */\nfunction createMemoryHistory(base = '') {\n let listeners = [];\n let queue = [START];\n let position = 0;\n base = normalizeBase(base);\n function setLocation(location) {\n position++;\n if (position !== queue.length) {\n // we are in the middle, we remove everything from here in the queue\n queue.splice(position);\n }\n queue.push(location);\n }\n function triggerListeners(to, from, { direction, delta }) {\n const info = {\n direction,\n delta,\n type: NavigationType.pop,\n };\n for (const callback of listeners) {\n callback(to, from, info);\n }\n }\n const routerHistory = {\n // rewritten by Object.defineProperty\n location: START,\n // TODO: should be kept in queue\n state: {},\n base,\n createHref: createHref.bind(null, base),\n replace(to) {\n // remove current entry and decrement position\n queue.splice(position--, 1);\n setLocation(to);\n },\n push(to, data) {\n setLocation(to);\n },\n listen(callback) {\n listeners.push(callback);\n return () => {\n const index = listeners.indexOf(callback);\n if (index > -1)\n listeners.splice(index, 1);\n };\n },\n destroy() {\n listeners = [];\n queue = [START];\n position = 0;\n },\n go(delta, shouldTrigger = true) {\n const from = this.location;\n const direction = \n // we are considering delta === 0 going forward, but in abstract mode\n // using 0 for the delta doesn't make sense like it does in html5 where\n // it reloads the page\n delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n position = Math.max(0, Math.min(position + delta, queue.length - 1));\n if (shouldTrigger) {\n triggerListeners(this.location, from, {\n direction,\n delta,\n });\n }\n },\n };\n Object.defineProperty(routerHistory, 'location', {\n enumerable: true,\n get: () => queue[position],\n });\n return routerHistory;\n}\n\n/**\n * Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n * handle any URL is not possible.\n *\n * @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `<base>` tag\n * in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n * calls**, meaning that if you use a `<base>` tag, it's `href` value **has to match this parameter** (ignoring anything\n * after the `#`).\n *\n * @example\n * ```js\n * // at https://example.com/folder\n * createWebHashHistory() // gives a url of `https://example.com/folder#`\n * createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n * // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n * createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n * // you should avoid doing this because it changes the original url and breaks copying urls\n * createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n *\n * // at file:///usr/etc/folder/index.html\n * // for locations with no `host`, the base is ignored\n * createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n * ```\n */\nfunction createWebHashHistory(base) {\n // Make sure this implementation is fine in terms of encoding, specially for IE11\n // for `file://`, directly use the pathname and ignore the base\n // location.pathname contains an initial `/` even at the root: `https://example.com`\n base = location.host ? base || location.pathname + location.search : '';\n // allow the user to provide a `#` in the middle: `/base/#/app`\n if (!base.includes('#'))\n base += '#';\n if ((process.env.NODE_ENV !== 'production') && !base.endsWith('#/') && !base.endsWith('#')) {\n warn(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, '#')}\".`);\n }\n return createWebHistory(base);\n}\n\nfunction isRouteLocation(route) {\n return typeof route === 'string' || (route && typeof route === 'object');\n}\nfunction isRouteName(name) {\n return typeof name === 'string' || typeof name === 'symbol';\n}\n\nconst NavigationFailureSymbol = Symbol((process.env.NODE_ENV !== 'production') ? 'navigation failure' : '');\n/**\n * Enumeration with all possible types for navigation failures. Can be passed to\n * {@link isNavigationFailure} to check for specific failures.\n */\nvar NavigationFailureType;\n(function (NavigationFailureType) {\n /**\n * An aborted navigation is a navigation that failed because a navigation\n * guard returned `false` or called `next(false)`\n */\n NavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n /**\n * A cancelled navigation is a navigation that failed because a more recent\n * navigation finished started (not necessarily finished).\n */\n NavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n /**\n * A duplicated navigation is a navigation that failed because it was\n * initiated while already being at the exact same location.\n */\n NavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n})(NavigationFailureType || (NavigationFailureType = {}));\n// DEV only debug messages\nconst ErrorTypeMessages = {\n [1 /* ErrorTypes.MATCHER_NOT_FOUND */]({ location, currentLocation }) {\n return `No match for\\n ${JSON.stringify(location)}${currentLocation\n ? '\\nwhile being at\\n' + JSON.stringify(currentLocation)\n : ''}`;\n },\n [2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */]({ from, to, }) {\n return `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n },\n [4 /* ErrorTypes.NAVIGATION_ABORTED */]({ from, to }) {\n return `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n },\n [8 /* ErrorTypes.NAVIGATION_CANCELLED */]({ from, to }) {\n return `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n },\n [16 /* ErrorTypes.NAVIGATION_DUPLICATED */]({ from, to }) {\n return `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n },\n};\n/**\n * Creates a typed NavigationFailure object.\n * @internal\n * @param type - NavigationFailureType\n * @param params - { from, to }\n */\nfunction createRouterError(type, params) {\n // keep full error messages in cjs versions\n if ((process.env.NODE_ENV !== 'production') || !true) {\n return assign(new Error(ErrorTypeMessages[type](params)), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n else {\n return assign(new Error(), {\n type,\n [NavigationFailureSymbol]: true,\n }, params);\n }\n}\nfunction isNavigationFailure(error, type) {\n return (error instanceof Error &&\n NavigationFailureSymbol in error &&\n (type == null || !!(error.type & type)));\n}\nconst propertiesToLog = ['params', 'query', 'hash'];\nfunction stringifyRoute(to) {\n if (typeof to === 'string')\n return to;\n if (to.path != null)\n return to.path;\n const location = {};\n for (const key of propertiesToLog) {\n if (key in to)\n location[key] = to[key];\n }\n return JSON.stringify(location, null, 2);\n}\n\n// default pattern for a param: non-greedy everything but /\nconst BASE_PARAM_PATTERN = '[^/]+?';\nconst BASE_PATH_PARSER_OPTIONS = {\n sensitive: false,\n strict: false,\n start: true,\n end: true,\n};\n// Special Regex characters that must be escaped in static tokens\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n * Creates a path parser from an array of Segments (a segment is an array of Tokens)\n *\n * @param segments - array of segments returned by tokenizePath\n * @param extraOptions - optional options for the regexp\n * @returns a PathParser\n */\nfunction tokensToParser(segments, extraOptions) {\n const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n // the amount of scores is the same as the length of segments except for the root segment \"/\"\n const score = [];\n // the regexp as a string\n let pattern = options.start ? '^' : '';\n // extracted keys\n const keys = [];\n for (const segment of segments) {\n // the root segment needs special treatment\n const segmentScores = segment.length ? [] : [90 /* PathScore.Root */];\n // allow trailing slash\n if (options.strict && !segment.length)\n pattern += '/';\n for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n const token = segment[tokenIndex];\n // resets the score if we are inside a sub-segment /:a-other-:b\n let subSegmentScore = 40 /* PathScore.Segment */ +\n (options.sensitive ? 0.25 /* PathScore.BonusCaseSensitive */ : 0);\n if (token.type === 0 /* TokenType.Static */) {\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n pattern += '/';\n pattern += token.value.replace(REGEX_CHARS_RE, '\\\\$&');\n subSegmentScore += 40 /* PathScore.Static */;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional, regexp } = token;\n keys.push({\n name: value,\n repeatable,\n optional,\n });\n const re = regexp ? regexp : BASE_PARAM_PATTERN;\n // the user provided a custom regexp /:id(\\\\d+)\n if (re !== BASE_PARAM_PATTERN) {\n subSegmentScore += 10 /* PathScore.BonusCustomRegExp */;\n // make sure the regexp is valid before using it\n try {\n new RegExp(`(${re})`);\n }\n catch (err) {\n throw new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` +\n err.message);\n }\n }\n // when we repeat we must take care of the repeating leading slash\n let subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n // prepend the slash if we are starting a new segment\n if (!tokenIndex)\n subPattern =\n // avoid an optional / if there are more segments e.g. /:p?-static\n // or /:p?-:p2\n optional && segment.length < 2\n ? `(?:/${subPattern})`\n : '/' + subPattern;\n if (optional)\n subPattern += '?';\n pattern += subPattern;\n subSegmentScore += 20 /* PathScore.Dynamic */;\n if (optional)\n subSegmentScore += -8 /* PathScore.BonusOptional */;\n if (repeatable)\n subSegmentScore += -20 /* PathScore.BonusRepeatable */;\n if (re === '.*')\n subSegmentScore += -50 /* PathScore.BonusWildcard */;\n }\n segmentScores.push(subSegmentScore);\n }\n // an empty array like /home/ -> [[{home}], []]\n // if (!segment.length) pattern += '/'\n score.push(segmentScores);\n }\n // only apply the strict bonus to the last score\n if (options.strict && options.end) {\n const i = score.length - 1;\n score[i][score[i].length - 1] += 0.7000000000000001 /* PathScore.BonusStrict */;\n }\n // TODO: dev only warn double trailing slash\n if (!options.strict)\n pattern += '/?';\n if (options.end)\n pattern += '$';\n // allow paths like /dynamic to only match dynamic or dynamic/... but not dynamic_something_else\n else if (options.strict)\n pattern += '(?:/|$)';\n const re = new RegExp(pattern, options.sensitive ? '' : 'i');\n function parse(path) {\n const match = path.match(re);\n const params = {};\n if (!match)\n return null;\n for (let i = 1; i < match.length; i++) {\n const value = match[i] || '';\n const key = keys[i - 1];\n params[key.name] = value && key.repeatable ? value.split('/') : value;\n }\n return params;\n }\n function stringify(params) {\n let path = '';\n // for optional parameters to allow to be empty\n let avoidDuplicatedSlash = false;\n for (const segment of segments) {\n if (!avoidDuplicatedSlash || !path.endsWith('/'))\n path += '/';\n avoidDuplicatedSlash = false;\n for (const token of segment) {\n if (token.type === 0 /* TokenType.Static */) {\n path += token.value;\n }\n else if (token.type === 1 /* TokenType.Param */) {\n const { value, repeatable, optional } = token;\n const param = value in params ? params[value] : '';\n if (isArray(param) && !repeatable) {\n throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n }\n const text = isArray(param)\n ? param.join('/')\n : param;\n if (!text) {\n if (optional) {\n // if we have more than one optional param like /:a?-static we don't need to care about the optional param\n if (segment.length < 2) {\n // remove the last slash as we could be at the end\n if (path.endsWith('/'))\n path = path.slice(0, -1);\n // do not append a slash on the next iteration\n else\n avoidDuplicatedSlash = true;\n }\n }\n else\n throw new Error(`Missing required param \"${value}\"`);\n }\n path += text;\n }\n }\n }\n // avoid empty path when we have multiple optional params\n return path || '/';\n }\n return {\n re,\n score,\n keys,\n parse,\n stringify,\n };\n}\n/**\n * Compares an array of numbers as used in PathParser.score and returns a\n * number. This function can be used to `sort` an array\n *\n * @param a - first array of numbers\n * @param b - second array of numbers\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n * should be sorted first\n */\nfunction compareScoreArray(a, b) {\n let i = 0;\n while (i < a.length && i < b.length) {\n const diff = b[i] - a[i];\n // only keep going if diff === 0\n if (diff)\n return diff;\n i++;\n }\n // if the last subsegment was Static, the shorter segments should be sorted first\n // otherwise sort the longest segment first\n if (a.length < b.length) {\n return a.length === 1 && a[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? -1\n : 1;\n }\n else if (a.length > b.length) {\n return b.length === 1 && b[0] === 40 /* PathScore.Static */ + 40 /* PathScore.Segment */\n ? 1\n : -1;\n }\n return 0;\n}\n/**\n * Compare function that can be used with `sort` to sort an array of PathParser\n *\n * @param a - first PathParser\n * @param b - second PathParser\n * @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n */\nfunction comparePathParserScore(a, b) {\n let i = 0;\n const aScore = a.score;\n const bScore = b.score;\n while (i < aScore.length && i < bScore.length) {\n const comp = compareScoreArray(aScore[i], bScore[i]);\n // do not return if both are equal\n if (comp)\n return comp;\n i++;\n }\n if (Math.abs(bScore.length - aScore.length) === 1) {\n if (isLastScoreNegative(aScore))\n return 1;\n if (isLastScoreNegative(bScore))\n return -1;\n }\n // if a and b share the same score entries but b has more, sort b first\n return bScore.length - aScore.length;\n // this is the ternary version\n // return aScore.length < bScore.length\n // ? 1\n // : aScore.length > bScore.length\n // ? -1\n // : 0\n}\n/**\n * This allows detecting splats at the end of a path: /home/:id(.*)*\n *\n * @param score - score to check\n * @returns true if the last entry is negative\n */\nfunction isLastScoreNegative(score) {\n const last = score[score.length - 1];\n return score.length > 0 && last[last.length - 1] < 0;\n}\n\nconst ROOT_TOKEN = {\n type: 0 /* TokenType.Static */,\n value: '',\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\n// After some profiling, the cache seems to be unnecessary because tokenizePath\n// (the slowest part of adding a route) is very fast\n// const tokenCache = new Map<string, Token[][]>()\nfunction tokenizePath(path) {\n if (!path)\n return [[]];\n if (path === '/')\n return [[ROOT_TOKEN]];\n if (!path.startsWith('/')) {\n throw new Error((process.env.NODE_ENV !== 'production')\n ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".`\n : `Invalid path \"${path}\"`);\n }\n // if (tokenCache.has(path)) return tokenCache.get(path)!\n function crash(message) {\n throw new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n }\n let state = 0 /* TokenizerState.Static */;\n let previousState = state;\n const tokens = [];\n // the segment will always be valid because we get into the initial state\n // with the leading /\n let segment;\n function finalizeSegment() {\n if (segment)\n tokens.push(segment);\n segment = [];\n }\n // index on the path\n let i = 0;\n // char at index\n let char;\n // buffer of the value read\n let buffer = '';\n // custom regexp for a param\n let customRe = '';\n function consumeBuffer() {\n if (!buffer)\n return;\n if (state === 0 /* TokenizerState.Static */) {\n segment.push({\n type: 0 /* TokenType.Static */,\n value: buffer,\n });\n }\n else if (state === 1 /* TokenizerState.Param */ ||\n state === 2 /* TokenizerState.ParamRegExp */ ||\n state === 3 /* TokenizerState.ParamRegExpEnd */) {\n if (segment.length > 1 && (char === '*' || char === '+'))\n crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n segment.push({\n type: 1 /* TokenType.Param */,\n value: buffer,\n regexp: customRe,\n repeatable: char === '*' || char === '+',\n optional: char === '*' || char === '?',\n });\n }\n else {\n crash('Invalid state to consume buffer');\n }\n buffer = '';\n }\n function addCharToBuffer() {\n buffer += char;\n }\n while (i < path.length) {\n char = path[i++];\n if (char === '\\\\' && state !== 2 /* TokenizerState.ParamRegExp */) {\n previousState = state;\n state = 4 /* TokenizerState.EscapeNext */;\n continue;\n }\n switch (state) {\n case 0 /* TokenizerState.Static */:\n if (char === '/') {\n if (buffer) {\n consumeBuffer();\n }\n finalizeSegment();\n }\n else if (char === ':') {\n consumeBuffer();\n state = 1 /* TokenizerState.Param */;\n }\n else {\n addCharToBuffer();\n }\n break;\n case 4 /* TokenizerState.EscapeNext */:\n addCharToBuffer();\n state = previousState;\n break;\n case 1 /* TokenizerState.Param */:\n if (char === '(') {\n state = 2 /* TokenizerState.ParamRegExp */;\n }\n else if (VALID_PARAM_RE.test(char)) {\n addCharToBuffer();\n }\n else {\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n }\n break;\n case 2 /* TokenizerState.ParamRegExp */:\n // TODO: is it worth handling nested regexp? like :p(?:prefix_([^/]+)_suffix)\n // it already works by escaping the closing )\n // https://paths.esm.dev/?p=AAMeJbiAwQEcDKbAoAAkP60PG2R6QAvgNaA6AFACM2ABuQBB#\n // is this really something people need since you can also write\n // /prefix_:p()_suffix\n if (char === ')') {\n // handle the escaped )\n if (customRe[customRe.length - 1] == '\\\\')\n customRe = customRe.slice(0, -1) + char;\n else\n state = 3 /* TokenizerState.ParamRegExpEnd */;\n }\n else {\n customRe += char;\n }\n break;\n case 3 /* TokenizerState.ParamRegExpEnd */:\n // same as finalizing a param\n consumeBuffer();\n state = 0 /* TokenizerState.Static */;\n // go back one character if we were not modifying\n if (char !== '*' && char !== '?' && char !== '+')\n i--;\n customRe = '';\n break;\n default:\n crash('Unknown state');\n break;\n }\n }\n if (state === 2 /* TokenizerState.ParamRegExp */)\n crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n consumeBuffer();\n finalizeSegment();\n // tokenCache.set(path, tokens)\n return tokens;\n}\n\nfunction createRouteRecordMatcher(record, parent, options) {\n const parser = tokensToParser(tokenizePath(record.path), options);\n // warn against params with the same name\n if ((process.env.NODE_ENV !== 'production')) {\n const existingKeys = new Set();\n for (const key of parser.keys) {\n if (existingKeys.has(key.name))\n warn(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n existingKeys.add(key.name);\n }\n }\n const matcher = assign(parser, {\n record,\n parent,\n // these needs to be populated by the parent\n children: [],\n alias: [],\n });\n if (parent) {\n // both are aliases or both are not aliases\n // we don't want to mix them because the order is used when\n // passing originalRecord in Matcher.addRoute\n if (!matcher.record.aliasOf === !parent.record.aliasOf)\n parent.children.push(matcher);\n }\n return matcher;\n}\n\n/**\n * Creates a Router Matcher.\n *\n * @internal\n * @param routes - array of initial routes\n * @param globalOptions - global route options\n */\nfunction createRouterMatcher(routes, globalOptions) {\n // normalized ordered array of matchers\n const matchers = [];\n const matcherMap = new Map();\n globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);\n function getRecordMatcher(name) {\n return matcherMap.get(name);\n }\n function addRoute(record, parent, originalRecord) {\n // used later on to remove by name\n const isRootAdd = !originalRecord;\n const mainNormalizedRecord = normalizeRouteRecord(record);\n if ((process.env.NODE_ENV !== 'production')) {\n checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n }\n // we might be the child of an alias\n mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n const options = mergeOptions(globalOptions, record);\n // generate an array of records to correctly handle aliases\n const normalizedRecords = [mainNormalizedRecord];\n if ('alias' in record) {\n const aliases = typeof record.alias === 'string' ? [record.alias] : record.alias;\n for (const alias of aliases) {\n normalizedRecords.push(\n // we need to normalize again to ensure the `mods` property\n // being non enumerable\n normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n // this allows us to hold a copy of the `components` option\n // so that async components cache is hold on the original record\n components: originalRecord\n ? originalRecord.record.components\n : mainNormalizedRecord.components,\n path: alias,\n // we might be the child of an alias\n aliasOf: originalRecord\n ? originalRecord.record\n : mainNormalizedRecord,\n // the aliases are always of the same kind as the original since they\n // are defined on the same record\n })));\n }\n }\n let matcher;\n let originalMatcher;\n for (const normalizedRecord of normalizedRecords) {\n const { path } = normalizedRecord;\n // Build up the path for nested routes if the child isn't an absolute\n // route. Only add the / delimiter if the child path isn't empty and if the\n // parent path doesn't have a trailing slash\n if (parent && path[0] !== '/') {\n const parentPath = parent.record.path;\n const connectingSlash = parentPath[parentPath.length - 1] === '/' ? '' : '/';\n normalizedRecord.path =\n parent.record.path + (path && connectingSlash + path);\n }\n if ((process.env.NODE_ENV !== 'production') && normalizedRecord.path === '*') {\n throw new Error('Catch all routes (\"*\") must now be defined using a param with a custom regexp.\\n' +\n 'See more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.');\n }\n // create the object beforehand, so it can be passed to children\n matcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n if ((process.env.NODE_ENV !== 'production') && parent && path[0] === '/')\n checkMissingParamsInAbsolutePath(matcher, parent);\n // if we are an alias we must tell the original record that we exist,\n // so we can be removed\n if (originalRecord) {\n originalRecord.alias.push(matcher);\n if ((process.env.NODE_ENV !== 'production')) {\n checkSameParams(originalRecord, matcher);\n }\n }\n else {\n // otherwise, the first record is the original and others are aliases\n originalMatcher = originalMatcher || matcher;\n if (originalMatcher !== matcher)\n originalMatcher.alias.push(matcher);\n // remove the route if named and only for the top record (avoid in nested calls)\n // this works because the original record is the first one\n if (isRootAdd && record.name && !isAliasRecord(matcher))\n removeRoute(record.name);\n }\n // Avoid adding a record that doesn't display anything. This allows passing through records without a component to\n // not be reached and pass through the catch all route\n if (isMatchable(matcher)) {\n insertMatcher(matcher);\n }\n if (mainNormalizedRecord.children) {\n const children = mainNormalizedRecord.children;\n for (let i = 0; i < children.length; i++) {\n addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n }\n }\n // if there was no original record, then the first one was not an alias and all\n // other aliases (if any) need to reference this record when adding children\n originalRecord = originalRecord || matcher;\n // TODO: add normalized records for more flexibility\n // if (parent && isAliasRecord(originalRecord)) {\n // parent.children.push(originalRecord)\n // }\n }\n return originalMatcher\n ? () => {\n // since other matchers are aliases, they should be removed by the original matcher\n removeRoute(originalMatcher);\n }\n : noop;\n }\n function removeRoute(matcherRef) {\n if (isRouteName(matcherRef)) {\n const matcher = matcherMap.get(matcherRef);\n if (matcher) {\n matcherMap.delete(matcherRef);\n matchers.splice(matchers.indexOf(matcher), 1);\n matcher.children.forEach(removeRoute);\n matcher.alias.forEach(removeRoute);\n }\n }\n else {\n const index = matchers.indexOf(matcherRef);\n if (index > -1) {\n matchers.splice(index, 1);\n if (matcherRef.record.name)\n matcherMap.delete(matcherRef.record.name);\n matcherRef.children.forEach(removeRoute);\n matcherRef.alias.forEach(removeRoute);\n }\n }\n }\n function getRoutes() {\n return matchers;\n }\n function insertMatcher(matcher) {\n const index = findInsertionIndex(matcher, matchers);\n matchers.splice(index, 0, matcher);\n // only add the original record to the name map\n if (matcher.record.name && !isAliasRecord(matcher))\n matcherMap.set(matcher.record.name, matcher);\n }\n function resolve(location, currentLocation) {\n let matcher;\n let params = {};\n let path;\n let name;\n if ('name' in location && location.name) {\n matcher = matcherMap.get(location.name);\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n });\n // warn if the user is passing invalid params so they can debug it better when they get removed\n if ((process.env.NODE_ENV !== 'production')) {\n const invalidParams = Object.keys(location.params || {}).filter(paramName => !matcher.keys.find(k => k.name === paramName));\n if (invalidParams.length) {\n warn(`Discarded invalid param(s) \"${invalidParams.join('\", \"')}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n }\n }\n name = matcher.record.name;\n params = assign(\n // paramsFromLocation is a new object\n paramsFromLocation(currentLocation.params, \n // only keep params that exist in the resolved location\n // only keep optional params coming from a parent record\n matcher.keys\n .filter(k => !k.optional)\n .concat(matcher.parent ? matcher.parent.keys.filter(k => k.optional) : [])\n .map(k => k.name)), \n // discard any existing params in the current location that do not exist here\n // #1497 this ensures better active/exact matching\n location.params &&\n paramsFromLocation(location.params, matcher.keys.map(k => k.name)));\n // throws if cannot be stringified\n path = matcher.stringify(params);\n }\n else if (location.path != null) {\n // no need to resolve the path with the matcher as it was provided\n // this also allows the user to control the encoding\n path = location.path;\n if ((process.env.NODE_ENV !== 'production') && !path.startsWith('/')) {\n warn(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n }\n matcher = matchers.find(m => m.re.test(path));\n // matcher should have a value after the loop\n if (matcher) {\n // we know the matcher works because we tested the regexp\n params = matcher.parse(path);\n name = matcher.record.name;\n }\n // location is a relative path\n }\n else {\n // match by name or path of current route\n matcher = currentLocation.name\n ? matcherMap.get(currentLocation.name)\n : matchers.find(m => m.re.test(currentLocation.path));\n if (!matcher)\n throw createRouterError(1 /* ErrorTypes.MATCHER_NOT_FOUND */, {\n location,\n currentLocation,\n });\n name = matcher.record.name;\n // since we are navigating to the same location, we don't need to pick the\n // params like when `name` is provided\n params = assign({}, currentLocation.params, location.params);\n path = matcher.stringify(params);\n }\n const matched = [];\n let parentMatcher = matcher;\n while (parentMatcher) {\n // reversed order so parents are at the beginning\n matched.unshift(parentMatcher.record);\n parentMatcher = parentMatcher.parent;\n }\n return {\n name,\n path,\n params,\n matched,\n meta: mergeMetaFields(matched),\n };\n }\n // add initial routes\n routes.forEach(route => addRoute(route));\n function clearRoutes() {\n matchers.length = 0;\n matcherMap.clear();\n }\n return {\n addRoute,\n resolve,\n removeRoute,\n clearRoutes,\n getRoutes,\n getRecordMatcher,\n };\n}\nfunction paramsFromLocation(params, keys) {\n const newParams = {};\n for (const key of keys) {\n if (key in params)\n newParams[key] = params[key];\n }\n return newParams;\n}\n/**\n * Normalizes a RouteRecordRaw. Creates a copy\n *\n * @param record\n * @returns the normalized version\n */\nfunction normalizeRouteRecord(record) {\n const normalized = {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: record.aliasOf,\n beforeEnter: record.beforeEnter,\n props: normalizeRecordProps(record),\n children: record.children || [],\n instances: {},\n leaveGuards: new Set(),\n updateGuards: new Set(),\n enterCallbacks: {},\n // must be declared afterwards\n // mods: {},\n components: 'components' in record\n ? record.components || null\n : record.component && { default: record.component },\n };\n // mods contain modules and shouldn't be copied,\n // logged or anything. It's just used for internal\n // advanced use cases like data loaders\n Object.defineProperty(normalized, 'mods', {\n value: {},\n });\n return normalized;\n}\n/**\n * Normalize the optional `props` in a record to always be an object similar to\n * components. Also accept a boolean for components.\n * @param record\n */\nfunction normalizeRecordProps(record) {\n const propsObject = {};\n // props does not exist on redirect records, but we can set false directly\n const props = record.props || false;\n if ('component' in record) {\n propsObject.default = props;\n }\n else {\n // NOTE: we could also allow a function to be applied to every component.\n // Would need user feedback for use cases\n for (const name in record.components)\n propsObject[name] = typeof props === 'object' ? props[name] : props;\n }\n return propsObject;\n}\n/**\n * Checks if a record or any of its parent is an alias\n * @param record\n */\nfunction isAliasRecord(record) {\n while (record) {\n if (record.record.aliasOf)\n return true;\n record = record.parent;\n }\n return false;\n}\n/**\n * Merge meta fields of an array of records\n *\n * @param matched - array of matched records\n */\nfunction mergeMetaFields(matched) {\n return matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction mergeOptions(defaults, partialOptions) {\n const options = {};\n for (const key in defaults) {\n options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n }\n return options;\n}\nfunction isSameParam(a, b) {\n return (a.name === b.name &&\n a.optional === b.optional &&\n a.repeatable === b.repeatable);\n}\n/**\n * Check if a path and its alias have the same required params\n *\n * @param a - original record\n * @param b - alias record\n */\nfunction checkSameParams(a, b) {\n for (const key of a.keys) {\n if (!key.optional && !b.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n for (const key of b.keys) {\n if (!key.optional && !a.keys.find(isSameParam.bind(null, key)))\n return warn(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n }\n}\n/**\n * A route with a name and a child with an empty path without a name should warn when adding the route\n *\n * @param mainNormalizedRecord - RouteRecordNormalized\n * @param parent - RouteRecordMatcher\n */\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n if (parent &&\n parent.record.name &&\n !mainNormalizedRecord.name &&\n !mainNormalizedRecord.path) {\n warn(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n }\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n for (const key of parent.keys) {\n if (!record.keys.find(isSameParam.bind(null, key)))\n return warn(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n }\n}\n/**\n * Performs a binary search to find the correct insertion index for a new matcher.\n *\n * Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n * with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n *\n * @param matcher - new matcher to be inserted\n * @param matchers - existing matchers\n */\nfunction findInsertionIndex(matcher, matchers) {\n // First phase: binary search based on score\n let lower = 0;\n let upper = matchers.length;\n while (lower !== upper) {\n const mid = (lower + upper) >> 1;\n const sortOrder = comparePathParserScore(matcher, matchers[mid]);\n if (sortOrder < 0) {\n upper = mid;\n }\n else {\n lower = mid + 1;\n }\n }\n // Second phase: check for an ancestor with the same score\n const insertionAncestor = getInsertionAncestor(matcher);\n if (insertionAncestor) {\n upper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n if ((process.env.NODE_ENV !== 'production') && upper < 0) {\n // This should never happen\n warn(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n }\n }\n return upper;\n}\nfunction getInsertionAncestor(matcher) {\n let ancestor = matcher;\n while ((ancestor = ancestor.parent)) {\n if (isMatchable(ancestor) &&\n comparePathParserScore(matcher, ancestor) === 0) {\n return ancestor;\n }\n }\n return;\n}\n/**\n * Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n * a component, or name, or redirect, are just used to group other routes.\n * @param matcher\n * @param matcher.record record of the matcher\n * @returns\n */\nfunction isMatchable({ record }) {\n return !!(record.name ||\n (record.components && Object.keys(record.components).length) ||\n record.redirect);\n}\n\n/**\n * Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n * version with the leading `?` and without Should work as URLSearchParams\n\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n const eqPos = searchParam.indexOf('=');\n const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n/**\n * Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n * doesn't prepend a `?`\n *\n * @internal\n *\n * @param query - query object to stringify\n * @returns string version of the query without the leading `?`\n */\nfunction stringifyQuery(query) {\n let search = '';\n for (let key in query) {\n const value = query[key];\n key = encodeQueryKey(key);\n if (value == null) {\n // only null adds the value\n if (value !== undefined) {\n search += (search.length ? '&' : '') + key;\n }\n continue;\n }\n // keep null values\n const values = isArray(value)\n ? value.map(v => v && encodeQueryValue(v))\n : [value && encodeQueryValue(value)];\n values.forEach(value => {\n // skip undefined values in arrays as if they were not present\n // smaller code than using filter\n if (value !== undefined) {\n // only append & with non-empty search\n search += (search.length ? '&' : '') + key;\n if (value != null)\n search += '=' + value;\n }\n });\n }\n return search;\n}\n/**\n * Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n * numbers into strings, removing keys with an undefined value and replacing\n * undefined with null in arrays\n *\n * @param query - query object to normalize\n * @returns a normalized query object\n */\nfunction normalizeQuery(query) {\n const normalizedQuery = {};\n for (const key in query) {\n const value = query[key];\n if (value !== undefined) {\n normalizedQuery[key] = isArray(value)\n ? value.map(v => (v == null ? null : '' + v))\n : value == null\n ? value\n : '' + value;\n }\n }\n return normalizedQuery;\n}\n\n/**\n * RouteRecord being rendered by the closest ancestor Router View. Used for\n * `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n * Location Matched\n *\n * @internal\n */\nconst matchedRouteKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location matched' : '');\n/**\n * Allows overriding the router view depth to control which component in\n * `matched` is rendered. rvd stands for Router View Depth\n *\n * @internal\n */\nconst viewDepthKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view depth' : '');\n/**\n * Allows overriding the router instance returned by `useRouter` in tests. r\n * stands for router\n *\n * @internal\n */\nconst routerKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router' : '');\n/**\n * Allows overriding the current route returned by `useRoute` in tests. rl\n * stands for route location\n *\n * @internal\n */\nconst routeLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'route location' : '');\n/**\n * Allows overriding the current route used by router-view. Internally this is\n * used when the `route` prop is passed.\n *\n * @internal\n */\nconst routerViewLocationKey = Symbol((process.env.NODE_ENV !== 'production') ? 'router view location' : '');\n\n/**\n * Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n */\nfunction useCallbacks() {\n let handlers = [];\n function add(handler) {\n handlers.push(handler);\n return () => {\n const i = handlers.indexOf(handler);\n if (i > -1)\n handlers.splice(i, 1);\n };\n }\n function reset() {\n handlers = [];\n }\n return {\n add,\n list: () => handlers.slice(),\n reset,\n };\n}\n\nfunction registerGuard(record, name, guard) {\n const removeFromList = () => {\n record[name].delete(guard);\n };\n onUnmounted(removeFromList);\n onDeactivated(removeFromList);\n onActivated(() => {\n record[name].add(guard);\n });\n record[name].add(guard);\n}\n/**\n * Add a navigation guard that triggers whenever the component for the current\n * location is about to be left. Similar to {@link beforeRouteLeave} but can be\n * used in any component. The guard is removed when the component is unmounted.\n *\n * @param leaveGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteLeave(leaveGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'leaveGuards', leaveGuard);\n}\n/**\n * Add a navigation guard that triggers whenever the current location is about\n * to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n * component. The guard is removed when the component is unmounted.\n *\n * @param updateGuard - {@link NavigationGuard}\n */\nfunction onBeforeRouteUpdate(updateGuard) {\n if ((process.env.NODE_ENV !== 'production') && !getCurrentInstance()) {\n warn('getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function');\n return;\n }\n const activeRecord = inject(matchedRouteKey, \n // to avoid warning\n {}).value;\n if (!activeRecord) {\n (process.env.NODE_ENV !== 'production') &&\n warn('No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = fn => fn()) {\n // keep a reference to the enterCallbackArray to prevent pushing callbacks if a new navigation took place\n const enterCallbackArray = record &&\n // name is defined if record is because of the function overload\n (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n return () => new Promise((resolve, reject) => {\n const next = (valid) => {\n if (valid === false) {\n reject(createRouterError(4 /* ErrorTypes.NAVIGATION_ABORTED */, {\n from,\n to,\n }));\n }\n else if (valid instanceof Error) {\n reject(valid);\n }\n else if (isRouteLocation(valid)) {\n reject(createRouterError(2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */, {\n from: to,\n to: valid,\n }));\n }\n else {\n if (enterCallbackArray &&\n // since enterCallbackArray is truthy, both record and name also are\n record.enterCallbacks[name] === enterCallbackArray &&\n typeof valid === 'function') {\n enterCallbackArray.push(valid);\n }\n resolve();\n }\n };\n // wrapping with Promise.resolve allows it to work with both async and sync guards\n const guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, (process.env.NODE_ENV !== 'production') ? canOnlyBeCalledOnce(next, to, from) : next));\n let guardCall = Promise.resolve(guardReturn);\n if (guard.length < 3)\n guardCall = guardCall.then(next);\n if ((process.env.NODE_ENV !== 'production') && guard.length > 2) {\n const message = `The \"next\" callback was never called inside of ${guard.name ? '\"' + guard.name + '\"' : ''}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n if (typeof guardReturn === 'object' && 'then' in guardReturn) {\n guardCall = guardCall.then(resolvedValue => {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n return Promise.reject(new Error('Invalid navigation guard'));\n }\n return resolvedValue;\n });\n }\n else if (guardReturn !== undefined) {\n // @ts-expect-error: _called is added at canOnlyBeCalledOnce\n if (!next._called) {\n warn(message);\n reject(new Error('Invalid navigation guard'));\n return;\n }\n }\n }\n guardCall.catch(err => reject(err));\n });\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n let called = 0;\n return function () {\n if (called++ === 1)\n warn(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n // @ts-expect-error: we put it in the original one because it's easier to check\n next._called = true;\n if (called === 1)\n next.apply(null, arguments);\n };\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = fn => fn()) {\n const guards = [];\n for (const record of matched) {\n if ((process.env.NODE_ENV !== 'production') && !record.components && !record.children.length) {\n warn(`Record with path \"${record.path}\" is either missing a \"component(s)\"` +\n ` or \"children\" property.`);\n }\n for (const name in record.components) {\n let rawComponent = record.components[name];\n if ((process.env.NODE_ENV !== 'production')) {\n if (!rawComponent ||\n (typeof rawComponent !== 'object' &&\n typeof rawComponent !== 'function')) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is not` +\n ` a valid component. Received \"${String(rawComponent)}\".`);\n // throw to ensure we stop here but warn to ensure the message isn't\n // missed by the user\n throw new Error('Invalid route component');\n }\n else if ('then' in rawComponent) {\n // warn if user wrote import('/component.vue') instead of () =>\n // import('./component.vue')\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a ` +\n `Promise instead of a function that returns a Promise. Did you ` +\n `write \"import('./MyPage.vue')\" instead of ` +\n `\"() => import('./MyPage.vue')\" ? This will break in ` +\n `production if not fixed.`);\n const promise = rawComponent;\n rawComponent = () => promise;\n }\n else if (rawComponent.__asyncLoader &&\n // warn only once per component\n !rawComponent.__warnedDefineAsync) {\n rawComponent.__warnedDefineAsync = true;\n warn(`Component \"${name}\" in record with path \"${record.path}\" is defined ` +\n `using \"defineAsyncComponent()\". ` +\n `Write \"() => import('./MyPage.vue')\" instead of ` +\n `\"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n }\n }\n // skip update and leave guards if the route component is not mounted\n if (guardType !== 'beforeRouteEnter' && !record.instances[name])\n continue;\n if (isRouteComponent(rawComponent)) {\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = rawComponent.__vccOpts || rawComponent;\n const guard = options[guardType];\n guard &&\n guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n }\n else {\n // start requesting the chunk already\n let componentPromise = rawComponent();\n if ((process.env.NODE_ENV !== 'production') && !('catch' in componentPromise)) {\n warn(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n componentPromise = Promise.resolve(componentPromise);\n }\n guards.push(() => componentPromise.then(resolved => {\n if (!resolved)\n throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // keep the resolved module for plugins like data loaders\n record.mods[name] = resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n // __vccOpts is added by vue-class-component and contain the regular options\n const options = resolvedComponent.__vccOpts || resolvedComponent;\n const guard = options[guardType];\n return (guard &&\n guardToPromiseFn(guard, to, from, record, name, runWithContext)());\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\n *\n * @param route - resolved route to load\n */\nfunction loadRouteLocation(route) {\n return route.matched.every(record => record.redirect)\n ? Promise.reject(new Error('Cannot load a route that redirects.'))\n : Promise.all(route.matched.map(record => record.components &&\n Promise.all(Object.keys(record.components).reduce((promises, name) => {\n const rawComponent = record.components[name];\n if (typeof rawComponent === 'function' &&\n !('displayName' in rawComponent)) {\n promises.push(rawComponent().then(resolved => {\n if (!resolved)\n return Promise.reject(new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // keep the resolved module for plugins like data loaders\n record.mods[name] = resolved;\n // replace the function with the resolved component\n // cannot be null or undefined because we went into the for loop\n record.components[name] = resolvedComponent;\n return;\n }));\n }\n return promises;\n }, [])))).then(() => route);\n}\n\n// TODO: we could allow currentRoute as a prop to expose `isActive` and\n// `isExactActive` behavior should go through an RFC\n/**\n * Returns the internal behavior of a {@link RouterLink} without the rendering part.\n *\n * @param props - a `to` location and an optional `replace` flag\n */\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n let hasPrevious = false;\n let previousTo = null;\n const route = computed(() => {\n const to = unref(props.to);\n if ((process.env.NODE_ENV !== 'production') && (!hasPrevious || to !== previousTo)) {\n if (!isRouteLocation(to)) {\n if (hasPrevious) {\n warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n }\n else {\n warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n }\n }\n previousTo = to;\n hasPrevious = true;\n }\n return router.resolve(to);\n });\n const activeRecordIndex = computed(() => {\n const { matched } = route.value;\n const { length } = matched;\n const routeMatched = matched[length - 1];\n const currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length)\n return -1;\n const index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n if (index > -1)\n return index;\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[length - 2]);\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n getOriginalPath(routeMatched) === parentRecordPath &&\n // avoid comparing the child with its parent\n currentMatched[currentMatched.length - 1].path !== parentRecordPath\n ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2]))\n : index);\n });\n const isActive = computed(() => activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, route.value.params));\n const isExactActive = computed(() => activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, route.value.params));\n function navigate(e = {}) {\n if (guardEvent(e)) {\n return router[unref(props.replace) ? 'replace' : 'push'](unref(props.to)\n // avoid uncaught errors are they are logged anyway\n ).catch(noop);\n }\n return Promise.resolve();\n }\n // devtools only\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n const instance = getCurrentInstance();\n if (instance) {\n const linkContextDevtools = {\n route: route.value,\n isActive: isActive.value,\n isExactActive: isExactActive.value,\n error: null,\n };\n // @ts-expect-error: this is internal\n instance.__vrl_devtools = instance.__vrl_devtools || [];\n // @ts-expect-error: this is internal\n instance.__vrl_devtools.push(linkContextDevtools);\n watchEffect(() => {\n linkContextDevtools.route = route.value;\n linkContextDevtools.isActive = isActive.value;\n linkContextDevtools.isExactActive = isExactActive.value;\n linkContextDevtools.error = isRouteLocation(unref(props.to))\n ? null\n : 'Invalid \"to\" value';\n }, { flush: 'post' });\n }\n }\n /**\n * NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n */\n return {\n route,\n href: computed(() => route.value.href),\n isActive,\n isExactActive,\n navigate,\n };\n}\nconst RouterLinkImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterLink',\n compatConfig: { MODE: 3 },\n props: {\n to: {\n type: [String, Object],\n required: true,\n },\n replace: Boolean,\n activeClass: String,\n // inactiveClass: String,\n exactActiveClass: String,\n custom: Boolean,\n ariaCurrentValue: {\n type: String,\n default: 'page',\n },\n },\n useLink,\n setup(props, { slots }) {\n const link = reactive(useLink(props));\n const { options } = inject(routerKey);\n const elClass = computed(() => ({\n [getLinkClass(props.activeClass, options.linkActiveClass, 'router-link-active')]: link.isActive,\n // [getLinkClass(\n // props.inactiveClass,\n // options.linkInactiveClass,\n // 'router-link-inactive'\n // )]: !link.isExactActive,\n [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, 'router-link-exact-active')]: link.isExactActive,\n }));\n return () => {\n const children = slots.default && slots.default(link);\n return props.custom\n ? children\n : h('a', {\n 'aria-current': link.isExactActive\n ? props.ariaCurrentValue\n : null,\n href: link.href,\n // this would override user added attrs but Vue will still add\n // the listener, so we end up triggering both\n onClick: link.navigate,\n class: elClass.value,\n }, children);\n };\n },\n});\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to render a link that triggers a navigation on click.\n */\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n return;\n // don't redirect when preventDefault called\n if (e.defaultPrevented)\n return;\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0)\n return;\n // don't redirect if `target=\"_blank\"`\n // @ts-expect-error getAttribute does exist\n if (e.currentTarget && e.currentTarget.getAttribute) {\n // @ts-expect-error getAttribute exists\n const target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target))\n return;\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault)\n e.preventDefault();\n return true;\n}\nfunction includesParams(outer, inner) {\n for (const key in inner) {\n const innerValue = inner[key];\n const outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue)\n return false;\n }\n else {\n if (!isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some((value, i) => value !== outerValue[i]))\n return false;\n }\n }\n return true;\n}\n/**\n * Get the original path value of a record by following its aliasOf\n * @param record\n */\nfunction getOriginalPath(record) {\n return record ? (record.aliasOf ? record.aliasOf.path : record.path) : '';\n}\n/**\n * Utility class to get the active class based on defaults.\n * @param propClass\n * @param globalClass\n * @param defaultClass\n */\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null\n ? propClass\n : globalClass != null\n ? globalClass\n : defaultClass;\n\nconst RouterViewImpl = /*#__PURE__*/ defineComponent({\n name: 'RouterView',\n // #674 we manually inherit them\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n default: 'default',\n },\n route: Object,\n },\n // Better compat for @vue/compat users\n // https://github.com/vuejs/router/issues/1315\n compatConfig: { MODE: 3 },\n setup(props, { attrs, slots }) {\n (process.env.NODE_ENV !== 'production') && warnDeprecatedUsage();\n const injectedRoute = inject(routerViewLocationKey);\n const routeToDisplay = computed(() => props.route || injectedRoute.value);\n const injectedDepth = inject(viewDepthKey, 0);\n // The depth changes based on empty components option, which allows passthrough routes e.g. routes with children\n // that are used to reuse the `path` property\n const depth = computed(() => {\n let initialDepth = unref(injectedDepth);\n const { matched } = routeToDisplay.value;\n let matchedRoute;\n while ((matchedRoute = matched[initialDepth]) &&\n !matchedRoute.components) {\n initialDepth++;\n }\n return initialDepth;\n });\n const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n provide(viewDepthKey, computed(() => depth.value + 1));\n provide(matchedRouteKey, matchedRouteRef);\n provide(routerViewLocationKey, routeToDisplay);\n const viewRef = ref();\n // watch at the same time the component instance, the route record we are\n // rendering, and the name\n watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {\n // copy reused instances\n if (to) {\n // this will update the instance for new instances as well as reused\n // instances when navigating to a new route\n to.instances[name] = instance;\n // the component instance is reused for a different route or name, so\n // we copy any saved update or leave guards. With async setup, the\n // mounting component will mount before the matchedRoute changes,\n // making instance === oldInstance, so we check if guards have been\n // added before. This works because we remove guards when\n // unmounting/deactivating components\n if (from && from !== to && instance && instance === oldInstance) {\n if (!to.leaveGuards.size) {\n to.leaveGuards = from.leaveGuards;\n }\n if (!to.updateGuards.size) {\n to.updateGuards = from.updateGuards;\n }\n }\n }\n // trigger beforeRouteEnter next callbacks\n if (instance &&\n to &&\n // if there is no instance but to and from are the same this might be\n // the first visit\n (!from || !isSameRouteRecord(to, from) || !oldInstance)) {\n (to.enterCallbacks[name] || []).forEach(callback => callback(instance));\n }\n }, { flush: 'post' });\n return () => {\n const route = routeToDisplay.value;\n // we need the value at the time we render because when we unmount, we\n // navigated to a different location so the value is different\n const currentName = props.name;\n const matchedRoute = matchedRouteRef.value;\n const ViewComponent = matchedRoute && matchedRoute.components[currentName];\n if (!ViewComponent) {\n return normalizeSlot(slots.default, { Component: ViewComponent, route });\n }\n // props from route configuration\n const routePropsOption = matchedRoute.props[currentName];\n const routeProps = routePropsOption\n ? routePropsOption === true\n ? route.params\n : typeof routePropsOption === 'function'\n ? routePropsOption(route)\n : routePropsOption\n : null;\n const onVnodeUnmounted = vnode => {\n // remove the instance reference to prevent leak\n if (vnode.component.isUnmounted) {\n matchedRoute.instances[currentName] = null;\n }\n };\n const component = h(ViewComponent, assign({}, routeProps, attrs, {\n onVnodeUnmounted,\n ref: viewRef,\n }));\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\n isBrowser &&\n component.ref) {\n // TODO: can display if it's an alias, its props\n const info = {\n depth: depth.value,\n name: matchedRoute.name,\n path: matchedRoute.path,\n meta: matchedRoute.meta,\n };\n const internalInstances = isArray(component.ref)\n ? component.ref.map(r => r.i)\n : [component.ref.i];\n internalInstances.forEach(instance => {\n // @ts-expect-error\n instance.__vrv_devtools = info;\n });\n }\n return (\n // pass the vnode to the slot as a prop.\n // h and <component :is=\"...\"> both accept vnodes\n normalizeSlot(slots.default, { Component: component, route }) ||\n component);\n };\n },\n});\nfunction normalizeSlot(slot, data) {\n if (!slot)\n return null;\n const slotContent = slot(data);\n return slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n// export the public type for h/tsx inference\n// also to avoid inline import() in generated d.ts files\n/**\n * Component to display the current route the user is at.\n */\nconst RouterView = RouterViewImpl;\n// warn against deprecated usage with <transition> & <keep-alive>\n// due to functional component being no longer eager in Vue 3\nfunction warnDeprecatedUsage() {\n const instance = getCurrentInstance();\n const parentName = instance.parent && instance.parent.type.name;\n const parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n if (parentName &&\n (parentName === 'KeepAlive' || parentName.includes('Transition')) &&\n typeof parentSubTreeType === 'object' &&\n parentSubTreeType.name === 'RouterView') {\n const comp = parentName === 'KeepAlive' ? 'keep-alive' : 'transition';\n warn(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\n `Use slot props instead:\\n\\n` +\n `<router-view v-slot=\"{ Component }\">\\n` +\n ` <${comp}>\\n` +\n ` <component :is=\"Component\" />\\n` +\n ` </${comp}>\\n` +\n `</router-view>`);\n }\n}\n\n/**\n * Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n *\n * @param routeLocation - routeLocation to format\n * @param tooltip - optional tooltip\n * @returns a copy of the routeLocation\n */\nfunction formatRouteLocation(routeLocation, tooltip) {\n const copy = assign({}, routeLocation, {\n // remove variables that can contain vue instances\n matched: routeLocation.matched.map(matched => omit(matched, ['instances', 'children', 'aliasOf'])),\n });\n return {\n _custom: {\n type: null,\n readOnly: true,\n display: routeLocation.fullPath,\n tooltip,\n value: copy,\n },\n };\n}\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\n// to support multiple router instances\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n // Take over router.beforeEach and afterEach\n // make sure we are not registering the devtool twice\n if (router.__hasDevtools)\n return;\n router.__hasDevtools = true;\n // increment to support multiple router instances\n const id = routerId++;\n setupDevtoolsPlugin({\n id: 'org.vuejs.router' + (id ? '.' + id : ''),\n label: 'Vue Router',\n packageName: 'vue-router',\n homepage: 'https://router.vuejs.org',\n logo: 'https://router.vuejs.org/logo.png',\n componentStateTypes: ['Routing'],\n app,\n }, api => {\n if (typeof api.now !== 'function') {\n console.warn('[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n // display state added by the router\n api.on.inspectComponent((payload, ctx) => {\n if (payload.instanceData) {\n payload.instanceData.state.push({\n type: 'Routing',\n key: '$route',\n editable: false,\n value: formatRouteLocation(router.currentRoute.value, 'Current Route'),\n });\n }\n });\n // mark router-link as active and display tags on router views\n api.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n if (componentInstance.__vrv_devtools) {\n const info = componentInstance.__vrv_devtools;\n node.tags.push({\n label: (info.name ? `${info.name.toString()}: ` : '') + info.path,\n textColor: 0,\n tooltip: 'This component is rendered by <router-view>',\n backgroundColor: PINK_500,\n });\n }\n // if multiple useLink are used\n if (isArray(componentInstance.__vrl_devtools)) {\n componentInstance.__devtoolsApi = api;\n componentInstance.__vrl_devtools.forEach(devtoolsData => {\n let label = devtoolsData.route.path;\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n let textColor = 0;\n if (devtoolsData.error) {\n label = devtoolsData.error;\n backgroundColor = RED_100;\n textColor = RED_700;\n }\n else if (devtoolsData.isExactActive) {\n backgroundColor = LIME_500;\n tooltip = 'This is exactly active';\n }\n else if (devtoolsData.isActive) {\n backgroundColor = BLUE_600;\n tooltip = 'This link is active';\n }\n node.tags.push({\n label,\n textColor,\n tooltip,\n backgroundColor,\n });\n });\n }\n });\n watch(router.currentRoute, () => {\n // refresh active state\n refreshRoutesView();\n api.notifyComponentUpdate();\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n const navigationsLayerId = 'router:navigations:' + id;\n api.addTimelineLayer({\n id: navigationsLayerId,\n label: `Router${id ? ' ' + id : ''} Navigations`,\n color: 0x40a8c4,\n });\n // const errorsLayerId = 'router:errors'\n // api.addTimelineLayer({\n // id: errorsLayerId,\n // label: 'Router Errors',\n // color: 0xea5455,\n // })\n router.onError((error, to) => {\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'Error during Navigation',\n subtitle: to.fullPath,\n logType: 'error',\n time: api.now(),\n data: { error },\n groupId: to.meta.__navigationId,\n },\n });\n });\n // attached to `meta` and used to group events\n let navigationId = 0;\n router.beforeEach((to, from) => {\n const data = {\n guard: formatDisplay('beforeEach'),\n from: formatRouteLocation(from, 'Current Location during this navigation'),\n to: formatRouteLocation(to, 'Target location'),\n };\n // Used to group navigations together, hide from devtools\n Object.defineProperty(to.meta, '__navigationId', {\n value: navigationId++,\n });\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n time: api.now(),\n title: 'Start of navigation',\n subtitle: to.fullPath,\n data,\n groupId: to.meta.__navigationId,\n },\n });\n });\n router.afterEach((to, from, failure) => {\n const data = {\n guard: formatDisplay('afterEach'),\n };\n if (failure) {\n data.failure = {\n _custom: {\n type: Error,\n readOnly: true,\n display: failure ? failure.message : '',\n tooltip: 'Navigation Failure',\n value: failure,\n },\n };\n data.status = formatDisplay('âŒ');\n }\n else {\n data.status = formatDisplay('✅');\n }\n // we set here to have the right order\n data.from = formatRouteLocation(from, 'Current Location during this navigation');\n data.to = formatRouteLocation(to, 'Target location');\n api.addTimelineEvent({\n layerId: navigationsLayerId,\n event: {\n title: 'End of navigation',\n subtitle: to.fullPath,\n time: api.now(),\n data,\n logType: failure ? 'warning' : 'default',\n groupId: to.meta.__navigationId,\n },\n });\n });\n /**\n * Inspector of Existing routes\n */\n const routerInspectorId = 'router-inspector:' + id;\n api.addInspector({\n id: routerInspectorId,\n label: 'Routes' + (id ? ' ' + id : ''),\n icon: 'book',\n treeFilterPlaceholder: 'Search routes',\n });\n function refreshRoutesView() {\n // the routes view isn't active\n if (!activeRoutesPayload)\n return;\n const payload = activeRoutesPayload;\n // children routes will appear as nested\n let routes = matcher.getRoutes().filter(route => !route.parent ||\n // these routes have a parent with no component which will not appear in the view\n // therefore we still need to include them\n !route.parent.record.components);\n // reset match state to false\n routes.forEach(resetMatchStateOnRouteRecord);\n // apply a match state if there is a payload\n if (payload.filter) {\n routes = routes.filter(route => \n // save matches state based on the payload\n isRouteMatching(route, payload.filter.toLowerCase()));\n }\n // mark active routes\n routes.forEach(route => markRouteRecordActive(route, router.currentRoute.value));\n payload.rootNodes = routes.map(formatRouteRecordForInspector);\n }\n let activeRoutesPayload;\n api.on.getInspectorTree(payload => {\n activeRoutesPayload = payload;\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n refreshRoutesView();\n }\n });\n /**\n * Display information about the currently selected route record\n */\n api.on.getInspectorState(payload => {\n if (payload.app === app && payload.inspectorId === routerInspectorId) {\n const routes = matcher.getRoutes();\n const route = routes.find(route => route.record.__vd_id === payload.nodeId);\n if (route) {\n payload.state = {\n options: formatRouteRecordMatcherForStateInspector(route),\n };\n }\n }\n });\n api.sendInspectorTree(routerInspectorId);\n api.sendInspectorState(routerInspectorId);\n });\n}\nfunction modifierForKey(key) {\n if (key.optional) {\n return key.repeatable ? '*' : '?';\n }\n else {\n return key.repeatable ? '+' : '';\n }\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n const { record } = route;\n const fields = [\n { editable: false, key: 'path', value: record.path },\n ];\n if (record.name != null) {\n fields.push({\n editable: false,\n key: 'name',\n value: record.name,\n });\n }\n fields.push({ editable: false, key: 'regexp', value: route.re });\n if (route.keys.length) {\n fields.push({\n editable: false,\n key: 'keys',\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.keys\n .map(key => `${key.name}${modifierForKey(key)}`)\n .join(' '),\n tooltip: 'Param keys',\n value: route.keys,\n },\n },\n });\n }\n if (record.redirect != null) {\n fields.push({\n editable: false,\n key: 'redirect',\n value: record.redirect,\n });\n }\n if (route.alias.length) {\n fields.push({\n editable: false,\n key: 'aliases',\n value: route.alias.map(alias => alias.record.path),\n });\n }\n if (Object.keys(route.record.meta).length) {\n fields.push({\n editable: false,\n key: 'meta',\n value: route.record.meta,\n });\n }\n fields.push({\n key: 'score',\n editable: false,\n value: {\n _custom: {\n type: null,\n readOnly: true,\n display: route.score.map(score => score.join(', ')).join(' | '),\n tooltip: 'Score used to sort routes',\n value: route.score,\n },\n },\n });\n return fields;\n}\n/**\n * Extracted from tailwind palette\n */\nconst PINK_500 = 0xec4899;\nconst BLUE_600 = 0x2563eb;\nconst LIME_500 = 0x84cc16;\nconst CYAN_400 = 0x22d3ee;\nconst ORANGE_400 = 0xfb923c;\n// const GRAY_100 = 0xf4f4f5\nconst DARK = 0x666666;\nconst RED_100 = 0xfee2e2;\nconst RED_700 = 0xb91c1c;\nfunction formatRouteRecordForInspector(route) {\n const tags = [];\n const { record } = route;\n if (record.name != null) {\n tags.push({\n label: String(record.name),\n textColor: 0,\n backgroundColor: CYAN_400,\n });\n }\n if (record.aliasOf) {\n tags.push({\n label: 'alias',\n textColor: 0,\n backgroundColor: ORANGE_400,\n });\n }\n if (route.__vd_match) {\n tags.push({\n label: 'matches',\n textColor: 0,\n backgroundColor: PINK_500,\n });\n }\n if (route.__vd_exactActive) {\n tags.push({\n label: 'exact',\n textColor: 0,\n backgroundColor: LIME_500,\n });\n }\n if (route.__vd_active) {\n tags.push({\n label: 'active',\n textColor: 0,\n backgroundColor: BLUE_600,\n });\n }\n if (record.redirect) {\n tags.push({\n label: typeof record.redirect === 'string'\n ? `redirect: ${record.redirect}`\n : 'redirects',\n textColor: 0xffffff,\n backgroundColor: DARK,\n });\n }\n // add an id to be able to select it. Using the `path` is not possible because\n // empty path children would collide with their parents\n let id = record.__vd_id;\n if (id == null) {\n id = String(routeRecordId++);\n record.__vd_id = id;\n }\n return {\n id,\n label: record.path,\n tags,\n children: route.children.map(formatRouteRecordForInspector),\n };\n}\n// incremental id for route records and inspector state\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n // no route will be active if matched is empty\n // reset the matching state\n const isExactActive = currentRoute.matched.length &&\n isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n route.__vd_exactActive = route.__vd_active = isExactActive;\n if (!isExactActive) {\n route.__vd_active = currentRoute.matched.some(match => isSameRouteRecord(match, route.record));\n }\n route.children.forEach(childRoute => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n route.__vd_match = false;\n route.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n const found = String(route.re).match(EXTRACT_REGEXP_RE);\n route.__vd_match = false;\n if (!found || found.length < 3) {\n return false;\n }\n // use a regexp without $ at the end to match nested routes better\n const nonEndingRE = new RegExp(found[1].replace(/\\$$/, ''), found[2]);\n if (nonEndingRE.test(filter)) {\n // mark children as matches\n route.children.forEach(child => isRouteMatching(child, filter));\n // exception case: `/`\n if (route.record.path !== '/' || filter === '/') {\n route.__vd_match = route.re.test(filter);\n return true;\n }\n // hide the / route\n return false;\n }\n const path = route.record.path.toLowerCase();\n const decodedPath = decode(path);\n // also allow partial matching on the path\n if (!filter.startsWith('/') &&\n (decodedPath.includes(filter) || path.includes(filter)))\n return true;\n if (decodedPath.startsWith(filter) || path.startsWith(filter))\n return true;\n if (route.record.name && String(route.record.name).includes(filter))\n return true;\n return route.children.some(child => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n const ret = {};\n for (const key in obj) {\n if (!keys.includes(key)) {\n // @ts-expect-error\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n\n/**\n * Creates a Router instance that can be used by a Vue app.\n *\n * @param options - {@link RouterOptions}\n */\nfunction createRouter(options) {\n const matcher = createRouterMatcher(options.routes, options);\n const parseQuery$1 = options.parseQuery || parseQuery;\n const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n const routerHistory = options.history;\n if ((process.env.NODE_ENV !== 'production') && !routerHistory)\n throw new Error('Provide the \"history\" option when calling \"createRouter()\":' +\n ' https://router.vuejs.org/api/interfaces/RouterOptions.html#history');\n const beforeGuards = useCallbacks();\n const beforeResolveGuards = useCallbacks();\n const afterGuards = useCallbacks();\n const currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n let pendingLocation = START_LOCATION_NORMALIZED;\n // leave the scrollRestoration if no scrollBehavior is provided\n if (isBrowser && options.scrollBehavior && 'scrollRestoration' in history) {\n history.scrollRestoration = 'manual';\n }\n const normalizeParams = applyToParams.bind(null, paramValue => '' + paramValue);\n const encodeParams = applyToParams.bind(null, encodeParam);\n const decodeParams = \n // @ts-expect-error: intentionally avoid the type check\n applyToParams.bind(null, decode);\n function addRoute(parentOrRoute, route) {\n let parent;\n let record;\n if (isRouteName(parentOrRoute)) {\n parent = matcher.getRecordMatcher(parentOrRoute);\n if ((process.env.NODE_ENV !== 'production') && !parent) {\n warn(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n }\n record = route;\n }\n else {\n record = parentOrRoute;\n }\n return matcher.addRoute(record, parent);\n }\n function removeRoute(name) {\n const recordMatcher = matcher.getRecordMatcher(name);\n if (recordMatcher) {\n matcher.removeRoute(recordMatcher);\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n warn(`Cannot remove non-existent route \"${String(name)}\"`);\n }\n }\n function getRoutes() {\n return matcher.getRoutes().map(routeMatcher => routeMatcher.record);\n }\n function hasRoute(name) {\n return !!matcher.getRecordMatcher(name);\n }\n function resolve(rawLocation, currentLocation) {\n // const resolve: Router['resolve'] = (rawLocation: RouteLocationRaw, currentLocation) => {\n // const objectLocation = routerLocationAsObject(rawLocation)\n // we create a copy to modify it later\n currentLocation = assign({}, currentLocation || currentRoute.value);\n if (typeof rawLocation === 'string') {\n const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n const matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n const href = routerHistory.createHref(locationNormalized.fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//'))\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation}\"`);\n }\n }\n // locationNormalized is always a new object\n return assign(locationNormalized, matchedRoute, {\n params: decodeParams(matchedRoute.params),\n hash: decode(locationNormalized.hash),\n redirectedFrom: undefined,\n href,\n });\n }\n if ((process.env.NODE_ENV !== 'production') && !isRouteLocation(rawLocation)) {\n warn(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n return resolve({});\n }\n let matcherLocation;\n // path could be relative in object as well\n if (rawLocation.path != null) {\n if ((process.env.NODE_ENV !== 'production') &&\n 'params' in rawLocation &&\n !('name' in rawLocation) &&\n // @ts-expect-error: the type is never\n Object.keys(rawLocation.params).length) {\n warn(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n }\n matcherLocation = assign({}, rawLocation, {\n path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path,\n });\n }\n else {\n // remove any nullish param\n const targetParams = assign({}, rawLocation.params);\n for (const key in targetParams) {\n if (targetParams[key] == null) {\n delete targetParams[key];\n }\n }\n // pass encoded values to the matcher, so it can produce encoded path and fullPath\n matcherLocation = assign({}, rawLocation, {\n params: encodeParams(targetParams),\n });\n // current location params are decoded, we need to encode them in case the\n // matcher merges the params\n currentLocation.params = encodeParams(currentLocation.params);\n }\n const matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n const hash = rawLocation.hash || '';\n if ((process.env.NODE_ENV !== 'production') && hash && !hash.startsWith('#')) {\n warn(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n }\n // the matcher might have merged current location params, so\n // we need to run the decoding again\n matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n hash: encodeHash(hash),\n path: matchedRoute.path,\n }));\n const href = routerHistory.createHref(fullPath);\n if ((process.env.NODE_ENV !== 'production')) {\n if (href.startsWith('//')) {\n warn(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n }\n else if (!matchedRoute.matched.length) {\n warn(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n }\n }\n return assign({\n fullPath,\n // keep the hash encoded so fullPath is effectively path + encodedQuery +\n // hash\n hash,\n query: \n // if the user is using a custom query lib like qs, we might have\n // nested objects, so we keep the query as is, meaning it can contain\n // numbers at `$route.query`, but at the point, the user will have to\n // use their own type anyway.\n // https://github.com/vuejs/router/issues/328#issuecomment-649481567\n stringifyQuery$1 === stringifyQuery\n ? normalizeQuery(rawLocation.query)\n : (rawLocation.query || {}),\n }, matchedRoute, {\n redirectedFrom: undefined,\n href,\n });\n }\n function locationAsObject(to) {\n return typeof to === 'string'\n ? parseURL(parseQuery$1, to, currentRoute.value.path)\n : assign({}, to);\n }\n function checkCanceledNavigation(to, from) {\n if (pendingLocation !== to) {\n return createRouterError(8 /* ErrorTypes.NAVIGATION_CANCELLED */, {\n from,\n to,\n });\n }\n }\n function push(to) {\n return pushWithRedirect(to);\n }\n function replace(to) {\n return push(assign(locationAsObject(to), { replace: true }));\n }\n function handleRedirectRecord(to) {\n const lastMatched = to.matched[to.matched.length - 1];\n if (lastMatched && lastMatched.redirect) {\n const { redirect } = lastMatched;\n let newTargetLocation = typeof redirect === 'function' ? redirect(to) : redirect;\n if (typeof newTargetLocation === 'string') {\n newTargetLocation =\n newTargetLocation.includes('?') || newTargetLocation.includes('#')\n ? (newTargetLocation = locationAsObject(newTargetLocation))\n : // force empty params\n { path: newTargetLocation };\n // @ts-expect-error: force empty params when a string is passed to let\n // the router parse them again\n newTargetLocation.params = {};\n }\n if ((process.env.NODE_ENV !== 'production') &&\n newTargetLocation.path == null &&\n !('name' in newTargetLocation)) {\n warn(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n throw new Error('Invalid redirect');\n }\n return assign({\n query: to.query,\n hash: to.hash,\n // avoid transferring params if the redirect has a path\n params: newTargetLocation.path != null ? {} : to.params,\n }, newTargetLocation);\n }\n }\n function pushWithRedirect(to, redirectedFrom) {\n const targetLocation = (pendingLocation = resolve(to));\n const from = currentRoute.value;\n const data = to.state;\n const force = to.force;\n // to could be a string where `replace` is a function\n const replace = to.replace === true;\n const shouldRedirect = handleRedirectRecord(targetLocation);\n if (shouldRedirect)\n return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n state: typeof shouldRedirect === 'object'\n ? assign({}, data, shouldRedirect.state)\n : data,\n force,\n replace,\n }), \n // keep original redirectedFrom if it exists\n redirectedFrom || targetLocation);\n // if it was a redirect we already called `pushWithRedirect` above\n const toLocation = targetLocation;\n toLocation.redirectedFrom = redirectedFrom;\n let failure;\n if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n failure = createRouterError(16 /* ErrorTypes.NAVIGATION_DUPLICATED */, { to: toLocation, from });\n // trigger scroll to allow scrolling to the same anchor\n handleScroll(from, from, \n // this is a push, the only way for it to be triggered from a\n // history.listen is with a redirect, which makes it become a push\n true, \n // This cannot be the first navigation because the initial location\n // cannot be manually navigated to\n false);\n }\n return (failure ? Promise.resolve(failure) : navigate(toLocation, from))\n .catch((error) => isNavigationFailure(error)\n ? // navigation redirects still mark the router as ready\n isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)\n ? error\n : markAsReady(error) // also returns the error\n : // reject any unknown error\n triggerError(error, toLocation, from))\n .then((failure) => {\n if (failure) {\n if (isNavigationFailure(failure, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n if ((process.env.NODE_ENV !== 'production') &&\n // we are redirecting to the same location we were already at\n isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) &&\n // and we have done it a couple of times\n redirectedFrom &&\n // @ts-expect-error: added only in dev\n (redirectedFrom._count = redirectedFrom._count\n ? // @ts-expect-error\n redirectedFrom._count + 1\n : 1) > 30) {\n warn(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n return Promise.reject(new Error('Infinite redirect in navigation guard'));\n }\n return pushWithRedirect(\n // keep options\n assign({\n // preserve an existing replacement but allow the redirect to override it\n replace,\n }, locationAsObject(failure.to), {\n state: typeof failure.to === 'object'\n ? assign({}, data, failure.to.state)\n : data,\n force,\n }), \n // preserve the original redirectedFrom if any\n redirectedFrom || toLocation);\n }\n }\n else {\n // if we fail we don't finalize the navigation\n failure = finalizeNavigation(toLocation, from, true, replace, data);\n }\n triggerAfterEach(toLocation, from, failure);\n return failure;\n });\n }\n /**\n * Helper to reject and skip all navigation guards if a new navigation happened\n * @param to\n * @param from\n */\n function checkCanceledNavigationAndReject(to, from) {\n const error = checkCanceledNavigation(to, from);\n return error ? Promise.reject(error) : Promise.resolve();\n }\n function runWithContext(fn) {\n const app = installedApps.values().next().value;\n // support Vue < 3.3\n return app && typeof app.runWithContext === 'function'\n ? app.runWithContext(fn)\n : fn();\n }\n // TODO: refactor the whole before guards by internally using router.beforeEach\n function navigate(to, from) {\n let guards;\n const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n // all components here have been resolved once because we are leaving\n guards = extractComponentsGuards(leavingRecords.reverse(), 'beforeRouteLeave', to, from);\n // leavingRecords is already reversed\n for (const record of leavingRecords) {\n record.leaveGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeRouteLeave guards\n return (runGuardQueue(guards)\n .then(() => {\n // check global guards beforeEach\n guards = [];\n for (const guard of beforeGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n .then(() => {\n // check in components beforeRouteUpdate\n guards = extractComponentsGuards(updatingRecords, 'beforeRouteUpdate', to, from);\n for (const record of updatingRecords) {\n record.updateGuards.forEach(guard => {\n guards.push(guardToPromiseFn(guard, to, from));\n });\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check the route beforeEnter\n guards = [];\n for (const record of enteringRecords) {\n // do not trigger beforeEnter on reused views\n if (record.beforeEnter) {\n if (isArray(record.beforeEnter)) {\n for (const beforeEnter of record.beforeEnter)\n guards.push(guardToPromiseFn(beforeEnter, to, from));\n }\n else {\n guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n }\n }\n }\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // NOTE: at this point to.matched is normalized and does not contain any () => Promise<Component>\n // clear existing enterCallbacks, these are added by extractComponentsGuards\n to.matched.forEach(record => (record.enterCallbacks = {}));\n // check in-component beforeRouteEnter\n guards = extractComponentsGuards(enteringRecords, 'beforeRouteEnter', to, from, runWithContext);\n guards.push(canceledNavigationCheck);\n // run the queue of per route beforeEnter guards\n return runGuardQueue(guards);\n })\n .then(() => {\n // check global guards beforeResolve\n guards = [];\n for (const guard of beforeResolveGuards.list()) {\n guards.push(guardToPromiseFn(guard, to, from));\n }\n guards.push(canceledNavigationCheck);\n return runGuardQueue(guards);\n })\n // catch any navigation canceled\n .catch(err => isNavigationFailure(err, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)\n ? err\n : Promise.reject(err)));\n }\n function triggerAfterEach(to, from, failure) {\n // navigation is confirmed, call afterGuards\n // TODO: wrap with error handlers\n afterGuards\n .list()\n .forEach(guard => runWithContext(() => guard(to, from, failure)));\n }\n /**\n * - Cleans up any navigation guards\n * - Changes the url if necessary\n * - Calls the scrollBehavior\n */\n function finalizeNavigation(toLocation, from, isPush, replace, data) {\n // a more recent navigation took place\n const error = checkCanceledNavigation(toLocation, from);\n if (error)\n return error;\n // only consider as push if it's not the first navigation\n const isFirstNavigation = from === START_LOCATION_NORMALIZED;\n const state = !isBrowser ? {} : history.state;\n // change URL only if the user did a push/replace and if it's not the initial navigation because\n // it's just reflecting the url\n if (isPush) {\n // on the initial navigation, we want to reuse the scroll position from\n // history state if it exists\n if (replace || isFirstNavigation)\n routerHistory.replace(toLocation.fullPath, assign({\n scroll: isFirstNavigation && state && state.scroll,\n }, data));\n else\n routerHistory.push(toLocation.fullPath, data);\n }\n // accept current navigation\n currentRoute.value = toLocation;\n handleScroll(toLocation, from, isPush, isFirstNavigation);\n markAsReady();\n }\n let removeHistoryListener;\n // attach listener to history to trigger navigations\n function setupListeners() {\n // avoid setting up listeners twice due to an invalid first navigation\n if (removeHistoryListener)\n return;\n removeHistoryListener = routerHistory.listen((to, _from, info) => {\n if (!router.listening)\n return;\n // cannot be a redirect route because it was in history\n const toLocation = resolve(to);\n // due to dynamic routing, and to hash history with manual navigation\n // (manually changing the url or calling history.hash = '#/somewhere'),\n // there could be a redirect record in history\n const shouldRedirect = handleRedirectRecord(toLocation);\n if (shouldRedirect) {\n pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);\n return;\n }\n pendingLocation = toLocation;\n const from = currentRoute.value;\n // TODO: should be moved to web history?\n if (isBrowser) {\n saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n }\n navigate(toLocation, from)\n .catch((error) => {\n if (isNavigationFailure(error, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n return error;\n }\n if (isNavigationFailure(error, 2 /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */)) {\n // Here we could call if (info.delta) routerHistory.go(-info.delta,\n // false) but this is bug prone as we have no way to wait the\n // navigation to be finished before calling pushWithRedirect. Using\n // a setTimeout of 16ms seems to work but there is no guarantee for\n // it to work on every browser. So instead we do not restore the\n // history entry and trigger a new navigation as requested by the\n // navigation guard.\n // the error is already handled by router.push we just want to avoid\n // logging the error\n pushWithRedirect(error.to, toLocation\n // avoid an uncaught rejection, let push call triggerError\n )\n .then(failure => {\n // manual change in hash history #916 ending up in the URL not\n // changing, but it was changed by the manual url change, so we\n // need to manually change it ourselves\n if (isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ |\n 16 /* ErrorTypes.NAVIGATION_DUPLICATED */) &&\n !info.delta &&\n info.type === NavigationType.pop) {\n routerHistory.go(-1, false);\n }\n })\n .catch(noop);\n // avoid the then branch\n return Promise.reject();\n }\n // do not restore history on unknown direction\n if (info.delta) {\n routerHistory.go(-info.delta, false);\n }\n // unrecognized error, transfer to the global handler\n return triggerError(error, toLocation, from);\n })\n .then((failure) => {\n failure =\n failure ||\n finalizeNavigation(\n // after navigation, all matched components are resolved\n toLocation, from, false);\n // revert the navigation\n if (failure) {\n if (info.delta &&\n // a new navigation has been triggered, so we do not want to revert, that will change the current history\n // entry while a different route is displayed\n !isNavigationFailure(failure, 8 /* ErrorTypes.NAVIGATION_CANCELLED */)) {\n routerHistory.go(-info.delta, false);\n }\n else if (info.type === NavigationType.pop &&\n isNavigationFailure(failure, 4 /* ErrorTypes.NAVIGATION_ABORTED */ | 16 /* ErrorTypes.NAVIGATION_DUPLICATED */)) {\n // manual change in hash history #916\n // it's like a push but lacks the information of the direction\n routerHistory.go(-1, false);\n }\n }\n triggerAfterEach(toLocation, from, failure);\n })\n // avoid warnings in the console about uncaught rejections, they are logged by triggerErrors\n .catch(noop);\n });\n }\n // Initialization and Errors\n let readyHandlers = useCallbacks();\n let errorListeners = useCallbacks();\n let ready;\n /**\n * Trigger errorListeners added via onError and throws the error as well\n *\n * @param error - error to throw\n * @param to - location we were navigating to when the error happened\n * @param from - location we were navigating from when the error happened\n * @returns the error as a rejected promise\n */\n function triggerError(error, to, from) {\n markAsReady(error);\n const list = errorListeners.list();\n if (list.length) {\n list.forEach(handler => handler(error, to, from));\n }\n else {\n if ((process.env.NODE_ENV !== 'production')) {\n warn('uncaught error during route navigation:');\n }\n console.error(error);\n }\n // reject the error no matter there were error listeners or not\n return Promise.reject(error);\n }\n function isReady() {\n if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)\n return Promise.resolve();\n return new Promise((resolve, reject) => {\n readyHandlers.add([resolve, reject]);\n });\n }\n function markAsReady(err) {\n if (!ready) {\n // still not ready if an error happened\n ready = !err;\n setupListeners();\n readyHandlers\n .list()\n .forEach(([resolve, reject]) => (err ? reject(err) : resolve()));\n readyHandlers.reset();\n }\n return err;\n }\n // Scroll behavior\n function handleScroll(to, from, isPush, isFirstNavigation) {\n const { scrollBehavior } = options;\n if (!isBrowser || !scrollBehavior)\n return Promise.resolve();\n const scrollPosition = (!isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0))) ||\n ((isFirstNavigation || !isPush) &&\n history.state &&\n history.state.scroll) ||\n null;\n return nextTick()\n .then(() => scrollBehavior(to, from, scrollPosition))\n .then(position => position && scrollToPosition(position))\n .catch(err => triggerError(err, to, from));\n }\n const go = (delta) => routerHistory.go(delta);\n let started;\n const installedApps = new Set();\n const router = {\n currentRoute,\n listening: true,\n addRoute,\n removeRoute,\n clearRoutes: matcher.clearRoutes,\n hasRoute,\n getRoutes,\n resolve,\n options,\n push,\n replace,\n go,\n back: () => go(-1),\n forward: () => go(1),\n beforeEach: beforeGuards.add,\n beforeResolve: beforeResolveGuards.add,\n afterEach: afterGuards.add,\n onError: errorListeners.add,\n isReady,\n install(app) {\n const router = this;\n app.component('RouterLink', RouterLink);\n app.component('RouterView', RouterView);\n app.config.globalProperties.$router = router;\n Object.defineProperty(app.config.globalProperties, '$route', {\n enumerable: true,\n get: () => unref(currentRoute),\n });\n // this initial navigation is only necessary on client, on server it doesn't\n // make sense because it will create an extra unnecessary navigation and could\n // lead to problems\n if (isBrowser &&\n // used for the initial navigation client side to avoid pushing\n // multiple times when the router is used in multiple apps\n !started &&\n currentRoute.value === START_LOCATION_NORMALIZED) {\n // see above\n started = true;\n push(routerHistory.location).catch(err => {\n if ((process.env.NODE_ENV !== 'production'))\n warn('Unexpected error when starting the router:', err);\n });\n }\n const reactiveRoute = {};\n for (const key in START_LOCATION_NORMALIZED) {\n Object.defineProperty(reactiveRoute, key, {\n get: () => currentRoute.value[key],\n enumerable: true,\n });\n }\n app.provide(routerKey, router);\n app.provide(routeLocationKey, shallowReactive(reactiveRoute));\n app.provide(routerViewLocationKey, currentRoute);\n const unmountApp = app.unmount;\n installedApps.add(app);\n app.unmount = function () {\n installedApps.delete(app);\n // the router is not attached to an app anymore\n if (installedApps.size < 1) {\n // invalidate the current navigation\n pendingLocation = START_LOCATION_NORMALIZED;\n removeHistoryListener && removeHistoryListener();\n removeHistoryListener = null;\n currentRoute.value = START_LOCATION_NORMALIZED;\n started = false;\n ready = false;\n }\n unmountApp();\n };\n // TODO: this probably needs to be updated so it can be used by vue-termui\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n addDevtools(app, router, matcher);\n }\n },\n };\n // TODO: type this as NavigationGuardReturn or similar instead of any\n function runGuardQueue(guards) {\n return guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n }\n return router;\n}\nfunction extractChangingRecords(to, from) {\n const leavingRecords = [];\n const updatingRecords = [];\n const enteringRecords = [];\n const len = Math.max(from.matched.length, to.matched.length);\n for (let i = 0; i < len; i++) {\n const recordFrom = from.matched[i];\n if (recordFrom) {\n if (to.matched.find(record => isSameRouteRecord(record, recordFrom)))\n updatingRecords.push(recordFrom);\n else\n leavingRecords.push(recordFrom);\n }\n const recordTo = to.matched[i];\n if (recordTo) {\n // the type doesn't matter because we are comparing per reference\n if (!from.matched.find(record => isSameRouteRecord(record, recordTo))) {\n enteringRecords.push(recordTo);\n }\n }\n }\n return [leavingRecords, updatingRecords, enteringRecords];\n}\n\n/**\n * Returns the router instance. Equivalent to using `$router` inside\n * templates.\n */\nfunction useRouter() {\n return inject(routerKey);\n}\n/**\n * Returns the current route location. Equivalent to using `$route` inside\n * templates.\n */\nfunction useRoute(_name) {\n return inject(routeLocationKey);\n}\n\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","/* -----------------------------\n ---------- GENERAL ----------\n -----------------------------\n*/\nimport { markRaw } from \"vue\";\n/** Flags representing the 3 different behaviors in Coalesce - Create, Edit, and Delete. */\nexport var BehaviorFlags;\n(function (BehaviorFlags) {\n BehaviorFlags[BehaviorFlags[\"Create\"] = 1] = \"Create\";\n BehaviorFlags[BehaviorFlags[\"Edit\"] = 2] = \"Edit\";\n BehaviorFlags[BehaviorFlags[\"Delete\"] = 4] = \"Delete\";\n})(BehaviorFlags || (BehaviorFlags = {}));\n/** Utility function for creating the required properties of `EnumType<>` from an array of `EnumValue` */\nexport function getEnumMeta(values) {\n return {\n valueLookup: values.reduce((obj, v) => {\n return {\n ...obj,\n [v.strValue]: v,\n [v.value]: v,\n };\n }, {}),\n values: values,\n };\n}\n/* -----------------------------\n ----- PROPERTY METADATA -----\n -----------------------------\n*/\nexport var HiddenAreas;\n(function (HiddenAreas) {\n HiddenAreas[HiddenAreas[\"List\"] = 1] = \"List\";\n HiddenAreas[HiddenAreas[\"Edit\"] = 2] = \"Edit\";\n})(HiddenAreas || (HiddenAreas = {}));\nexport function resolvePropMeta(metadata, propOrString, silent = false) {\n const propMeta = typeof propOrString == \"string\"\n ? metadata.props[propOrString]\n : propOrString;\n if (!propMeta) {\n if (silent)\n return undefined;\n throw `Unknown property ${propOrString}`;\n }\n else if (metadata.props[propMeta.name] !== propMeta) {\n if (silent)\n return undefined;\n throw `Property ${propMeta.name} does not belong to object of type ${metadata.name}`;\n }\n return propMeta;\n}\n/** Recursively freeze the object, and convert any getter props into props\n * that hold the current value of the getter.\n */\nexport function solidify(root) {\n const map = new Map();\n function walk(o) {\n if (o == null) {\n return o;\n }\n if (Object.isFrozen(o))\n return o;\n if (map.has(o))\n return map.get(o);\n // Store that we've visited the object.\n // This lets us avoid infinite recursion.\n // We can't use the frozen status to check for recursion\n // because we can't freeze the object until we're done changing its props.\n map.set(o, o);\n for (const prop of Object.getOwnPropertyNames(o)) {\n const value = o[prop];\n if (value != null && typeof value === \"object\") {\n if (Object.getOwnPropertyDescriptor(o, prop).get) {\n // The prop is defined as a getter; eval it and store the static value.\n // The whole point of the getters is to make the metadata easier to generate,\n // since we can reference other types before those types are declared,\n // but they're not needed at runtime.\n Object.defineProperty(o, prop, { value: walk(value) });\n }\n else {\n o[prop] = walk(value);\n }\n }\n }\n return Object.freeze(markRaw(o));\n }\n return walk(root);\n}\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date(date: DateType): DateType {\n * return constructFrom(\n * date, // Use contrustor from the given date\n * date.getTime() // Use the date value to create a new date\n * )\n * }\n */\nexport function constructFrom(date, value) {\n if (date instanceof Date) {\n return new date.constructor(value);\n } else {\n return new Date(value);\n }\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nexport function addYears(date, amount) {\n return addMonths(date, amount * 12);\n}\n\n// Fallback for modularized imports:\nexport default addYears;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateType | number | string,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n","import { isDate } from \"./isDate.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n if (!isDate(date) && typeof date !== \"number\") {\n return false;\n }\n const _date = toDate(date);\n return !isNaN(Number(_date));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { endOfDay } from \"./endOfDay.mjs\";\nimport { endOfMonth } from \"./endOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date) {\n const _date = toDate(date);\n return +endOfDay(_date) === +endOfMonth(_date);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { compareAsc } from \"./compareAsc.mjs\";\nimport { differenceInCalendarMonths } from \"./differenceInCalendarMonths.mjs\";\nimport { isLastDayOfMonth } from \"./isLastDayOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nexport function differenceInMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const sign = compareAsc(_dateLeft, _dateRight);\n const difference = Math.abs(\n differenceInCalendarMonths(_dateLeft, _dateRight),\n );\n let result;\n\n // Check for the difference of less than month\n if (difference < 1) {\n result = 0;\n } else {\n if (_dateLeft.getMonth() === 1 && _dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n _dateLeft.setDate(30);\n }\n\n _dateLeft.setMonth(_dateLeft.getMonth() - sign * difference);\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n let isLastMonthNotFull = compareAsc(_dateLeft, _dateRight) === -sign;\n\n // Check for cases of one full calendar month\n if (\n isLastDayOfMonth(toDate(dateLeft)) &&\n difference === 1 &&\n compareAsc(dateLeft, _dateRight) === 1\n ) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInMonths;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date) {\n const cleanDate = toDate(date);\n const _date = constructFrom(date, 0);\n _date.setFullYear(cleanDate.getFullYear(), 0, 1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.mjs\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","/* eslint-disable no-unused-vars */\n\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.mjs\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.mjs\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.mjs\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.mjs\";\nimport { formatLong } from \"./en-US/_lib/formatLong.mjs\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.mjs\";\nimport { localize } from \"./en-US/_lib/localize.mjs\";\nimport { match } from \"./en-US/_lib/match.mjs\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { startOfYear } from \"./startOfYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date) {\n const _date = toDate(date);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getWeekYear } from \"./getWeekYear.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfWeek } from \"./startOfWeek.mjs\";\nimport { startOfWeekYear } from \"./startOfWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport function getWeek(date, options) {\n const _date = toDate(date);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n","export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n","import { addLeadingZeros } from \"../addLeadingZeros.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n","import { getDayOfYear } from \"../../getDayOfYear.mjs\";\nimport { getISOWeek } from \"../../getISOWeek.mjs\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.mjs\";\nimport { getWeek } from \"../../getWeek.mjs\";\nimport { getWeekYear } from \"../../getWeekYear.mjs\";\nimport { addLeadingZeros } from \"../addLeadingZeros.mjs\";\nimport { lightFormatters } from \"./lightFormatters.mjs\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(date.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n const timestamp = date.getTime();\n return addLeadingZeros(timestamp, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n","const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n","const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n","import { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { formatters } from \"./_lib/format/formatters.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n","import { compareAsc } from \"./compareAsc.mjs\";\nimport { minutesInDay, minutesInMonth } from \"./constants.mjs\";\nimport { differenceInMonths } from \"./differenceInMonths.mjs\";\nimport { differenceInSeconds } from \"./differenceInSeconds.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * The {@link formatDistance} function options.\n */\n\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport function formatDistance(date, baseDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n const minutesInAlmostTwoDays = 2520;\n\n const comparison = compareAsc(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = toDate(baseDate);\n dateRight = toDate(date);\n } else {\n dateLeft = toDate(date);\n dateRight = toDate(baseDate);\n }\n\n const seconds = differenceInSeconds(dateRight, dateLeft);\n const offsetInSeconds =\n (getTimezoneOffsetInMilliseconds(dateRight) -\n getTimezoneOffsetInMilliseconds(dateLeft)) /\n 1000;\n const minutes = Math.round((seconds - offsetInSeconds) / 60);\n let months;\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options?.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance(\"lessThanXSeconds\", 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance(\"lessThanXSeconds\", 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance(\"lessThanXSeconds\", 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance(\"halfAMinute\", 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance(\"aboutXHours\", 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < minutesInDay) {\n const hours = Math.round(minutes / 60);\n return locale.formatDistance(\"aboutXHours\", hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < minutesInAlmostTwoDays) {\n return locale.formatDistance(\"xDays\", 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < minutesInMonth) {\n const days = Math.round(minutes / minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < minutesInMonth * 2) {\n months = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"aboutXMonths\", months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft);\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"xMonths\", nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.trunc(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance(\"aboutXYears\", years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance(\"overXYears\", years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance(\"almostXYears\", years + 1, localizeOptions);\n }\n }\n}\n\n// Fallback for modularized imports:\nexport default formatDistance;\n","import { constructNow } from \"./constructNow.mjs\";\nimport { formatDistance } from \"./formatDistance.mjs\";\n\n/**\n * The {@link formatDistanceToNow} function options.\n */\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - The object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nexport function formatDistanceToNow(date, options) {\n return formatDistance(date, constructNow(date), options);\n}\n\n// Fallback for modularized imports:\nexport default formatDistanceToNow;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { isValid } from \"./isValid.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { lightFormatters } from \"./_lib/format/lightFormatters.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { lightFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @private\n */\n\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > âš ï¸ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM | a..aaa | AM, PM |\n * | | aaaa | a.m., p.m. |\n * | | aaaaa | a, p |\n * | Calendar year | y | 44, 1, 1900, 2017 |\n * | | yy | 44, 01, 00, 17 |\n * | | yyy | 044, 001, 000, 017 |\n * | | yyyy | 0044, 0001, 1900, 2017 |\n * | Month (formatting) | M | 1, 2, ..., 12 |\n * | | MM | 01, 02, ..., 12 |\n * | Day of month | d | 1, 2, ..., 31 |\n * | | dd | 01, 02, ..., 31 |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 |\n * | | hh | 01, 02, ..., 11, 12 |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 |\n * | | HH | 00, 01, 02, ..., 23 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | Fraction of second | S | 0, 1, ..., 9 |\n * | | SS | 00, 01, ..., 99 |\n * | | SSS | 000, 001, ..., 999 |\n * | | SSSS | ... |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param format - The string of tokens\n *\n * @returns The formatted date string\n *\n * @throws `Invalid time value` if the date is invalid\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '2014-02-11'\n */\nexport function lightFormat(date, formatStr) {\n const _date = toDate(date);\n\n if (!isValid(_date)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const tokens = formatStr.match(formattingTokensRegExp);\n\n // The only case when formattingTokensRegExp doesn't match the string is when it's empty\n if (!tokens) return \"\";\n\n const result = tokens\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n const formatter = lightFormatters[firstCharacter];\n if (formatter) {\n return formatter(_date, substring);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return substring;\n })\n .join(\"\");\n\n return result;\n}\n\nfunction cleanEscapedString(input) {\n const matches = input.match(escapedStringRegExp);\n\n if (!matches) {\n return input;\n }\n\n return matches[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default lightFormat;\n","import { getDefaultOptions } from 'date-fns';\n/**\n * Returns the formatted time zone name of the provided `timeZone` or the current\n * system time zone if omitted, accounting for DST according to the UTC value of\n * the date.\n */\nexport function tzIntlTimeZoneName(length, date, options) {\n const defaultOptions = getDefaultOptions();\n const dtf = getDTF(length, options.timeZone, options.locale ?? defaultOptions.locale);\n return 'formatToParts' in dtf ? partsTimeZone(dtf, date) : hackyTimeZone(dtf, date);\n}\nfunction partsTimeZone(dtf, date) {\n const formatted = dtf.formatToParts(date);\n for (let i = formatted.length - 1; i >= 0; --i) {\n if (formatted[i].type === 'timeZoneName') {\n return formatted[i].value;\n }\n }\n return undefined;\n}\nfunction hackyTimeZone(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, '');\n const tzNameMatch = / [\\w-+ ]+$/.exec(formatted);\n return tzNameMatch ? tzNameMatch[0].substr(1) : '';\n}\n// If a locale has been provided `en-US` is used as a fallback in case it is an\n// invalid locale, otherwise the locale is left undefined to use the system locale.\nfunction getDTF(length, timeZone, locale) {\n return new Intl.DateTimeFormat(locale ? [locale.code, 'en-US'] : undefined, {\n timeZone: timeZone,\n timeZoneName: length,\n });\n}\n","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport function tzTokenizeDate(date, timeZone) {\n const dtf = getDateTimeFormat(timeZone);\n return 'formatToParts' in dtf ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5,\n};\nfunction partsOffset(dtf, date) {\n try {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const pos = typeToPos[formatted[i].type];\n if (pos !== undefined) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n }\n catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n // const [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [\n parseInt(parsed[3], 10),\n parseInt(parsed[1], 10),\n parseInt(parsed[2], 10),\n parseInt(parsed[4], 10),\n parseInt(parsed[5], 10),\n parseInt(parsed[6], 10),\n ];\n}\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nconst dtfCache = {};\n// New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\nconst testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n}).format(new Date('2014-06-25T04:00:00.123Z'));\nconst hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' ||\n testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00';\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n dtfCache[timeZone] = hourCycleSupported\n ? new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n })\n : new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n });\n }\n return dtfCache[timeZone];\n}\n","/**\n * Use instead of `new Date(Date.UTC(...))` to support years below 100 which doesn't work\n * otherwise due to the nature of the\n * [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years.\n *\n * For `Date.UTC(...)`, use `newDateUTC(...).getTime()`.\n */\nexport function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n const utcDate = new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}\n","import { tzTokenizeDate } from '../tzTokenizeDate/index.js';\nimport { newDateUTC } from '../newDateUTC/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n};\n// Parse constious time zone offset formats to an offset in milliseconds\nexport function tzParseTimezone(timezoneString, date, isUtcDate) {\n // Empty string\n if (!timezoneString) {\n return 0;\n }\n // Z\n let token = patterns.timezoneZ.exec(timezoneString);\n if (token) {\n return 0;\n }\n let hours;\n let absoluteOffset;\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[1], 10);\n if (!validateTimezone(hours)) {\n return NaN;\n }\n return -(hours * MILLISECONDS_IN_HOUR);\n }\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n const minutes = parseInt(token[3], 10);\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n return token[1] === '+' ? -absoluteOffset : absoluteOffset;\n }\n // IANA time zone\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n const utcDate = isUtcDate ? date : toUtcDate(date);\n const offset = calcOffset(utcDate, timezoneString);\n const fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\nfunction calcOffset(date, timezoneString) {\n const tokens = tzTokenizeDate(date, timezoneString);\n // ms dropped because it's not provided by tzTokenizeDate\n const asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();\n let asTS = date.getTime();\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n const localTS = date.getTime();\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - offset;\n // Test whether the zone matches the offset for this ts\n const o2 = calcOffset(new Date(utcGuess), timezoneString);\n // If so, offset didn't change, and we're done\n if (offset === o2) {\n return offset;\n }\n // If not, change the ts by the difference in the offset\n utcGuess -= o2 - offset;\n // If that gives us the local time we want, we're done\n const o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours, minutes) {\n return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59));\n}\nconst validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString])\n return true;\n try {\n new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n }\n catch (error) {\n return false;\n }\n}\n","import { tzIntlTimeZoneName } from '../../_lib/tzIntlTimeZoneName/index.js';\nimport { tzParseTimezone } from '../../_lib/tzParseTimezone/index.js';\nconst MILLISECONDS_IN_MINUTE = 60 * 1000;\nexport const formatters = {\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx': // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, options) {\n const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, options) {\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return tzIntlTimeZoneName('short', date, options);\n // Long\n case 'zzzz':\n default:\n return tzIntlTimeZoneName('long', date, options);\n }\n },\n};\nfunction getTimeZoneOffset(timeZone, originalDate) {\n const timeZoneOffset = timeZone\n ? tzParseTimezone(timeZone, originalDate, true) / MILLISECONDS_IN_MINUTE\n : originalDate?.getTimezoneOffset() ?? 0;\n if (Number.isNaN(timeZoneOffset)) {\n throw new RangeError('Invalid time zone specified: ' + timeZone);\n }\n return timeZoneOffset;\n}\nfunction addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? '-' : '';\n let output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}\nfunction formatTimezone(offset, delimiter = '') {\n const sign = offset > 0 ? '-' : '+';\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n const minutes = addLeadingZeros(Math.floor(absOffset % 60), 2);\n return sign + hours + delimiter + minutes;\n}\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\nfunction formatTimezoneShort(offset, delimiter = '') {\n const sign = offset > 0 ? '-' : '+';\n const absOffset = Math.abs(offset);\n const hours = Math.floor(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return +date - +utcDate;\n}\n","/** Regex to identify the presence of a time zone specifier in a date string */\nexport const tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\n","import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { tzPattern } from '../_lib/tzPattern/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst DEFAULT_ADDITIONAL_DIGITS = 2;\nconst patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/, // 0 additional digits\n /^([+-]\\d{3})$/, // 1 additional digit\n /^([+-]\\d{4})$/, // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/, // 0 additional digits\n /^([+-]\\d{5})/, // 1 additional digit\n /^([+-]\\d{6})/, // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern,\n};\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param argument the value to convert\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {string} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n *\n * @returns the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function toDate(argument, options = {}) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n if (argument === null) {\n return new Date(NaN);\n }\n const additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : Number(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n // Clone the date\n if (argument instanceof Date ||\n (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n }\n else if (typeof argument === 'number' ||\n Object.prototype.toString.call(argument) === '[object Number]') {\n return new Date(argument);\n }\n else if (!(Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n const dateStrings = splitDateString(argument);\n const { year, restDateString } = parseYear(dateStrings.date, additionalDigits);\n const date = parseDate(restDateString, year);\n if (date === null || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n if (date) {\n const timestamp = date.getTime();\n let time = 0;\n let offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (time === null || isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n }\n else {\n // get offset accurate to hour in time zones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n }\n else {\n return new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n const dateStrings = {};\n let parts = patterns.dateTimePattern.exec(dateString);\n let timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n }\n else {\n dateStrings.date = null;\n timeString = dateString;\n }\n }\n else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n const token = patterns.timeZone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timeZone = token[1].trim();\n }\n else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n if (dateString) {\n const patternYYY = patterns.YYY[additionalDigits];\n const patternYYYYY = patterns.YYYYY[additionalDigits];\n // YYYY or ±YYYYY\n let token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n const yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length),\n };\n }\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n const centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length),\n };\n }\n }\n // Invalid ISO-formatted year\n return {\n year: null,\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null;\n }\n let date;\n let month;\n let week;\n // YYYY\n if (!dateString || !dateString.length) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n // YYYY-MM\n let token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n if (!validateDate(year, month)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n const dayOfYear = parseInt(token[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n const day = parseInt(token[2], 10);\n if (!validateDate(year, month, day)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n if (!validateWeekDate(week)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n const dayOfWeek = parseInt(token[2], 10) - 1;\n if (!validateWeekDate(week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n // Invalid ISO-formatted date\n return null;\n}\nfunction parseTime(timeString) {\n let hours;\n let minutes;\n // hh\n let token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n if (!validateTime(hours)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR;\n }\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n if (!validateTime(hours, minutes)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n const seconds = parseFloat(token[3].replace(',', '.'));\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n }\n // Invalid ISO-formatted time\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n// Validation functions\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours < 0 || hours >= 25) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}\n","import { format as dateFnsFormat } from 'date-fns/format';\nimport { formatters } from './formatters/index.js';\nimport { toDate } from '../toDate/index.js';\nconst tzFormattingTokensRegExp = /([xXOz]+)|''|'(''|[^'])+('|$)/g;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may consty by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | PDT, EST, CEST | 6 |\n * | | zzzz | Pacific Daylight Time | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are created using the Intl browser API. The output is determined by the\n * preferred standard of the current locale (en-US by default) which may not always give the expected result.\n * For this reason it is recommended to supply a `locale` in the format options when formatting a time zone name.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole\n * library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard\n * #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). See [this\n * post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param date the original date\n * @param formatStr the string of tokens\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n * https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n * [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n * (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @param {Date|Number} [options.originalDate] - can be used to pass the original unmodified date to `format` to\n * improve correctness of the replaced timezone token close to the DST threshold.\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see:\n * https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options = {}) {\n formatStr = String(formatStr);\n const matches = formatStr.match(tzFormattingTokensRegExp);\n if (matches) {\n const d = toDate(options.originalDate || date, options);\n // Work through each match and replace the tz token in the format string with the quoted\n // formatted time zone so the remaining tokens can be filled in by date-fns#format.\n formatStr = matches.reduce(function (result, token) {\n if (token[0] === \"'\") {\n return result; // This is a quoted portion, matched only to ensure we don't match inside it\n }\n const pos = result.indexOf(token);\n const precededByQuotedSection = result[pos - 1] === \"'\";\n const replaced = result.replace(token, \"'\" + formatters[token[0]](d, token, options) + \"'\");\n // If the replacement results in two adjoining quoted strings, the back to back quotes\n // are removed, so it doesn't look like an escaped quote.\n return precededByQuotedSection\n ? replaced.substring(0, pos - 1) + replaced.substring(pos + 1)\n : replaced;\n }, formatStr);\n }\n return dateFnsFormat(date, formatStr, options);\n}\n","import { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { toDate } from '../toDate/index.js';\n/**\n * @name toZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param date the date with the relevant UTC time\n * @param timeZone the time zone to get local time for, can be an offset or IANA time zone\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n *\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = toZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport function toZonedTime(date, timeZone, options) {\n date = toDate(date, options);\n const offsetMilliseconds = tzParseTimezone(timeZone, date, true);\n const d = new Date(date.getTime() - offsetMilliseconds);\n const resultDate = new Date(0);\n resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n return resultDate;\n}\n","import { format } from '../format/index.js';\nimport { toZonedTime } from '../toZonedTime/index.js';\n/**\n * @name formatInTimeZone\n * @category Time Zone Helpers\n * @summary Gets the offset in milliseconds between the time zone and Universal Coordinated Time (UTC)\n *\n * @param date the date representing the local time / real UTC time\n * @param timeZone the time zone this date should be formatted for; can be an offset or IANA time zone\n * @param formatStr the string of tokens\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n * https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n * [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n * (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n */\nexport function formatInTimeZone(date, timeZone, formatStr, options) {\n options = {\n ...options,\n timeZone,\n originalDate: date,\n };\n return format(toZonedTime(date, timeZone, { timeZone: options.timeZone }), formatStr, options);\n}\n","import { addYears, parse } from \"date-fns\";\nimport { version } from \"vue\";\nexport function isNullOrWhitespace(value) {\n // Manually looping here is leagues faster than using a regex or .trim().\n if (value == null || value === \"\") {\n return true;\n }\n for (let i = 0; i < value.length; i++) {\n switch (value[i]) {\n case \" \":\n case \"\\t\":\n case \"\\r\":\n case \"\\n\":\n continue;\n default:\n return false;\n }\n }\n return true;\n}\nconst iso8601DateRegex = /^(\\d{4})-(\\d{2})-(\\d{2})(?:[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:(Z)|(.)(\\d{2}):?(\\d{2})?)?)?/;\nconst iso8601TimeRegex = /^(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:Z|(.)(\\d{2}):?(\\d{2})?)?$/;\nexport function parseJSONDate(argument, kind = \"datetime\") {\n // DO NOT USE `new Date()` here.\n // Safari incorrectly interprets times without a timezone offset\n // (i.e. DateTime objects in c#) as UTC instead of local time.\n // Safari is the only browser that does that. IE,Chrome,Firefox,Edge\n // all do this correctly.\n // The reason we originally used `new Date()` here was for sheer performance.\n // This idea came from the Knockout stack where `moment(...)` is 20x slower than\n // `new Date()` and it seemed at the time that the date ctor did behave the same\n // across all browsers. However, this has proven not to be the case in practice.\n // `date-fns` `parseJSON` function is susceptible to the same issue,\n // which is why this function is a adaptation of that function.\n // This method is only slightly slower than parseJSON,\n // but is still 3-4x faster than parseISO while also having much, much less code.\n if (kind == \"time\") {\n // Time-only formats might come from the server as truly only a time (C# TimeOnly type).\n // \"ISO 8601: Time without UTC offset information\" https://github.com/dotnet/runtime/issues/53539\n var timeParts = argument.match(iso8601TimeRegex) || [];\n if (timeParts.length >= 3) {\n // If ES Temporal was actually implemented in browsers we could maybe switch Coalesce to use it,\n // but for now we just settle for using a Date and ignoring the time part.\n // NOTE: We set the date to Jan 1 in to avoid Daylight Savings switch days,\n // which if such a date were to be the date component of the `Date`, would fail\n // to represent the time correctly for the hour that never occurs on leap-forward days.\n return new Date(new Date().getFullYear(), 0, 1, +timeParts[1], // h\n +timeParts[2], // m\n +timeParts[3], // s\n +((timeParts[4] || \"0\") + \"00\").substring(0, 3) // ms (maybe never used?)\n );\n }\n }\n var parts = argument.match(iso8601DateRegex) || [];\n const partTzOffset = parts[8] == \"Z\" ? 0 : parts[10]; // TZ offset\n if (partTzOffset !== undefined) {\n // Date+Time, with offset specifier\n return new Date(Date.UTC(+parts[1], +parts[2] - 1, +parts[3], +parts[4] - (+partTzOffset || 0) * (parts[9] == \"-\" ? -1 : 1), +parts[5] - (+parts[11] || 0) * (parts[9] == \"-\" ? -1 : 1), +parts[6], +((parts[7] || \"0\") + \"00\").substring(0, 3)));\n }\n else if (parts[4] !== undefined) {\n // Date+Time, without offset specifier\n return new Date(+parts[1], +parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +((parts[7] || \"0\") + \"00\").substring(0, 3));\n }\n else {\n // Date only, without a time portion:\n return new Date(+parts[1], +parts[2] - 1, +parts[3]);\n }\n}\nexport function parseDateUserInput(input, defaultDate, dateKind) {\n // DO NOT do this if the input doesn't have a date part.\n // Behavior of new Date() is generally always Invalid Date if you just give it a time,\n // except if you're on Chrome and give it an invalid time like \"8:98 AM\" - it'll give you \"Thu Jan 01 1998 08:00:00\".\n // Since the user wouldn't ever see the date part when only entering a time, there's no chance to detect this error.\n input = input.trim();\n if (dateKind !== \"time\") {\n // Space is treated as a valid separator here because new Date() treats it like a separator.\n const mmddyy = /^(\\d+)([\\-\\/\\\\\\. ])(\\d+)(?:\\2(\\d+))?/.exec(input);\n if (mmddyy) {\n // Parse formats like \"month/day\" (without a year)\n const month = parseInt(mmddyy[1]) - 1;\n const sep = mmddyy[2];\n const day = parseInt(mmddyy[3]);\n const year = parseInt(mmddyy[4]);\n if (!year) {\n // If the year is missing, add the best match to the current year\n const parsed = new Date(defaultDate.getFullYear(), month, day, defaultDate.getHours(), defaultDate.getMinutes(), defaultDate.getSeconds(), defaultDate.getMilliseconds());\n // Find the closest occurrence of the given mm/dd to the defaultDate.\n // For e.g., if the current date is Jan 1 2020 and a user enters 12/20,\n // they most likely meant Dec 20 2019, not Dec 20 2020.\n // Likewise, If the current date is Dec 20 2019 and the user enters 1/1,\n // they most likely meant Jan 1 2020, not Jan 1 2019.\n const bestGuessMaxDiffMs = 120 * 24 * 60 * 60 * 1000;\n let bestMatch = parsed;\n let bestMatchDiff = Math.pow(2, 52);\n for (const candidate of [\n addYears(parsed, 1),\n parsed,\n addYears(parsed, -1),\n ]) {\n const diff = Math.abs(defaultDate.valueOf() - candidate.valueOf());\n if (diff < bestMatchDiff && diff <= bestGuessMaxDiffMs) {\n bestMatch = candidate;\n bestMatchDiff = diff;\n }\n }\n input = input\n .replace(mmddyy[0], mmddyy[0].trim().replace(sep, \"/\") +\n \"/\" +\n bestMatch.getFullYear() +\n \" \")\n .trim();\n }\n else {\n // just normalize the separators:\n input = input\n .replace(mmddyy[0], mmddyy[0]\n .trim()\n .replace(new RegExp(sep.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\"), \"g\"), \"/\"))\n .trim();\n }\n }\n }\n if (dateKind != \"date\") {\n // If the AM/PM doesn't have a space before it, new Date() can't parse it. Try to correct:\n input = input.replace(/(\\d)(a|p)/i, \"$1 $2\");\n // If the AM/PM lacks the \"M\", add it (new Date() won't parse without it)\n input = input.replace(/\\b(a|p)\\b/i, \"$1m\");\n // If the time is all mashed together without a separator, fix it\n input = input.replace(/((?:^|\\s+)\\d{1,2})(\\d{2})((?:\\s+am|\\s+pm)|$)/i, \"$1:$2$3\");\n // If it looks like there's hours but no minutes, fix it:\n input = input.replace(/((?:^|\\s)\\d{1,2})(\\s+(?:am|pm))\\b/i, \"$1:00$2\");\n }\n const segments = [...input.matchAll(/\\w+\\b/g)].length;\n if (dateKind == \"time\") {\n // The date ctor can't parse time-only values.\n if (segments == 1) {\n // Single contiguous number - parse as 24h\n return parse(input, \"HHmm\", defaultDate);\n }\n else if (segments == 2) {\n // Time with two parts number - parse as 24h\n return parse(input, \"HH:mm\", defaultDate);\n }\n else {\n return parse(input, \"hh:mm aa\", defaultDate);\n }\n }\n if (segments <= 1) {\n // Prevent an input like \"7\" or \"1 7\" from parsing as \"1/1/2007\"\n return undefined;\n }\n return new Date(input);\n}\n/**\n * Converts deep Javascript objects to URL encoded query strings.\n * @license MIT\n */\n/*\n * Code extracted from jQuery.param() and boiled down to bare metal js.\n * Should handle deep/nested objects and arrays in the same manner as jQuery's ajax functionality.\n * Origin: https://gist.github.com/dgs700/4677933\n * Replaces NPM module \"qs\" after it became bloated with dependencies in a commit dated 3/18/2021.\n * license: MIT\n */\nexport function objectToQueryString(a, includeNull = true) {\n var items = [];\n const add = function (key, value) {\n if (!includeNull && value == null)\n return;\n value = value == null ? \"\" : value;\n items[items.length] =\n encodeURIComponent(key) +\n \"=\" +\n encodeURIComponent(value == null ? \"\" : value);\n };\n buildParams(\"\", a, add);\n return items.join(\"&\");\n}\nexport function objectToFormData(a) {\n var items = new FormData();\n const add = function (key, value) {\n if (value instanceof Uint8Array) {\n // Add raw binary as blobs\n value = new Blob([value]);\n }\n items.append(key, value == null ? \"\" : value);\n };\n buildParams(\"\", a, add);\n return items;\n}\nconst rbracket = /\\[\\]$/;\nfunction isScalarFormValue(obj) {\n return (obj instanceof Blob || obj instanceof Uint8Array || typeof obj !== \"object\");\n}\nfunction buildParams(prefix, obj, add) {\n var name;\n if (obj instanceof Array) {\n var isScalarArray = obj.every(isScalarFormValue);\n if (obj.length == 0) {\n // The \"count=0\" doesn't /really/ do anything in the aspnetcore model binder.\n // \"count\" and \"0\" can both be any sequence of characters.\n // However, it does *just enough* to trigger the setter on the generated C# DTO class\n // and therefore trigger the property as being changed.\n // Other forms that don't work (these throw model validation errors):\n // - `collectionName=`\n // - `collectionName=[]`\n // - `collectionName=null`\n add(prefix + \".count\", \"0\");\n }\n for (let i = 0, l = obj.length; i < l; i++) {\n const v = obj[i];\n if (isScalarArray || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n }\n else {\n // Item is non-scalar (array or object), encode its numeric index.\n const k = typeof v === \"object\" && v != null ? i.toString() : \"\";\n buildParams(prefix ? prefix + \"[\" + k + \"]\" : k, v, add);\n }\n }\n }\n else if (obj === null) {\n // Handle null before typeof obj == \"object\", which will be the case for null.\n // Serialize scalar item.\n add(prefix, obj);\n }\n else if (typeof obj == \"object\" && !isScalarFormValue(obj)) {\n // Serialize object item.\n for (name in obj) {\n if (obj.hasOwnProperty(name)) {\n buildParams(prefix ? prefix + \"[\" + name + \"]\" : name, obj[name], add);\n }\n }\n }\n else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n}\n/** This is the property added by `markRaw`.\n * We use it directly so we can declare it on the proto of ViewModel/ListViewModel\n * rather than calling markRaw on each instance.\n *\n * We make these classes nonreactive with Vue, preventing ViewModel instance from being wrapped with a Proxy.\n * To achieve reactivity, we instead make individual members reactive with `reactive`/`ref`.\n *\n * We have to do this because `reactive` doesn't play nice with prototyped objects.\n * Any sets to a setter on the ViewModel class will trigger the reactive proxy,\n * and since the setter is defined on the prototype and Vue checks hasOwnProperty\n * when determining if a field is new on an object, all setters trigger reactivity\n * even if the value didn't change.\n *\n * We cant use the export of ReactiveFlags from vue because of https://github.com/vuejs/core/issues/1228\n */\nexport const ReactiveFlags_SKIP = \"__v_skip\";\nexport function getInternalInstance(vue) {\n // This returns `any` because its just kind of impossible to type correctly.\n // @ts-ignore vue2/vue3 compat shim.\n if (\"$\" in vue)\n return vue.$;\n // Vue2.7 doesn't have a notion of InternalInstance,\n // so places that use it in Vue3 use the public instance instead.\n return vue;\n}\nexport const IsVue2 = version.charAt(0) == \"2\";\nexport const IsVue3 = version.charAt(0) == \"3\";\n","import { formatDistanceToNow, lightFormat } from \"date-fns\";\nimport { format, formatInTimeZone } from \"date-fns-tz\";\nimport { getCurrentInstance, isRef, nextTick, onActivated, onDeactivated, reactive, } from \"vue\";\nimport { resolvePropMeta } from \"./metadata.js\";\nimport { isNullOrWhitespace, parseJSONDate, IsVue3, getInternalInstance, } from \"./util.js\";\nclass Visitor {\n visitValue(value, meta) {\n switch (meta.type) {\n case undefined:\n throw \"Missing type on value metadata\";\n case \"model\":\n case \"object\":\n return this.visitObject(value, meta.typeDef);\n case \"collection\":\n return this.visitCollection(value, meta);\n case \"enum\":\n return this.visitEnumValue(value, meta);\n case \"date\":\n return this.visitDateValue(value, meta);\n case \"file\":\n return this.visitFileValue(value, meta);\n case \"binary\":\n return this.visitBinaryValue(value, meta);\n case \"unknown\":\n return this.visitUnknownValue(value, meta);\n default:\n return this.visitPrimitiveValue(value, meta);\n }\n }\n}\nfunction parseError(value, meta, details) {\n return new Error(`Encountered unparsable ${typeof value} \\`${value}\\` for ${meta.type} '${meta.name}'. ${details || \"\"}`);\n}\nexport function parseValue(value, meta) {\n if (value == null) {\n return null;\n }\n const type = typeof value;\n switch (meta.type) {\n case \"number\":\n case \"enum\":\n if (type === \"number\")\n return value;\n if (type !== \"string\") {\n // We don't want to parse things like booleans into numbers.\n // Strings are all we should be handling.\n throw parseError(value, meta);\n }\n // Parse empty/blank as null, not zero.\n // If we parsed it as zero, clearing out an number input field\n // would default numbers to zero, even if that number is nullable.\n if (isNullOrWhitespace(value)) {\n return null;\n }\n const parsed = Number(value);\n if (isNaN(parsed)) {\n throw parseError(value, meta);\n }\n return parsed;\n case \"string\":\n if (type === \"string\")\n return value;\n if (type === \"object\")\n throw parseError(value, meta);\n return String(value);\n case \"boolean\":\n if (type === \"boolean\")\n return value;\n if (value === \"true\")\n return true;\n if (value === \"false\")\n return false;\n throw parseError(value, meta);\n case \"collection\":\n if (type !== \"object\" || !Array.isArray(value))\n throw parseError(value, meta);\n return value;\n case \"model\":\n case \"object\":\n if (type !== \"object\" || Array.isArray(value))\n throw parseError(value, meta);\n return value;\n case \"date\":\n let date = undefined;\n if (value instanceof Date) {\n date = value;\n }\n else if (type === \"string\") {\n date = parseJSONDate(value, meta.dateKind);\n }\n // isNaN is what date-fn's `isValid` calls internally,\n // but we can perform better if we just do it directly.\n if (date === undefined || isNaN(date)) {\n throw parseError(value, meta);\n }\n return date;\n case \"file\":\n if (value instanceof Blob)\n return value;\n throw parseError(value, meta);\n case \"binary\":\n if (typeof value == \"string\" || value instanceof Uint8Array)\n return value;\n if (meta.base64 && typeof value !== \"string\") {\n throw parseError(value, meta, \"Value only allows base64 string representations.\");\n }\n if (value instanceof ArrayBuffer)\n return new Uint8Array(value);\n throw parseError(value, meta);\n }\n}\nclass ModelConversionVisitor extends Visitor {\n mode;\n objects = new Map();\n visitValue(value, meta) {\n // Models shouldn't contain undefined - only nulls where a value isn't present.\n if (value === undefined)\n return null;\n return super.visitValue(value, meta);\n }\n visitObject(value, meta) {\n if (value == null)\n return null;\n if (typeof value !== \"object\" || Array.isArray(value))\n throw parseError(value, meta);\n // Prevent infinite recursion on circular object graphs.\n if (this.objects.has(value))\n return this.objects.get(value);\n const props = meta.props;\n let target;\n if (this.mode == \"convert\") {\n this.objects.set(value, value);\n // If there already is metadata but it doesn't match,\n // this is bad - someone passed mismatched parameters.\n if (\"$metadata\" in value) {\n if (value.$metadata !== meta) {\n throw Error(`While trying to convert object, found metadata for ${value.$metadata.name} where metadata for ${meta.name} was expected.`);\n }\n else {\n // Performance optimization: If the object already looks like a model,\n // and we're converting, don't descend into its child props,\n // because they should already be correct.\n // If they *aren't* correct, something is messed up somewhere else\n // and is assigining non-models to props that should only be accepting models.\n // If we don't do this optimization, we can end up with horrible call stacks\n // when creating a new model with initial data that includes references\n // to existing models that have an extensive amount of interconnected data.\n return value;\n }\n }\n else {\n value.$metadata = meta;\n target = value;\n }\n }\n else if (this.mode == \"map\") {\n target = { $metadata: meta };\n this.objects.set(value, target);\n }\n else {\n throw `Unhandled mode ${this.mode}`;\n }\n this.objects.set(value, target);\n for (const propName in props) {\n const propVal = value[propName];\n if (!(propName in value) || propVal === undefined) {\n // All properties that are not defined need to be declared\n // so that Vue's reactivity system can discover them.\n // Null is a valid type for all model properties (or at least generated models). Undefined is not.\n target[propName] = null;\n }\n else {\n target[propName] = this.visitValue(propVal, props[propName]);\n }\n }\n return target;\n }\n visitCollection(value, meta) {\n if (value == null)\n return null;\n const parsed = parseValue(value, meta);\n const ret = this.mode == \"map\" ? [] : parsed;\n let j = 0;\n for (let i = 0; i < parsed.length; i++, j++) {\n const value = parsed[i];\n if (value === null &&\n (meta.itemType.type === \"object\" || meta.itemType.type === \"model\")) {\n // Skip nulls in collections, a workaround for\n // https://github.com/dotnet/runtime/issues/66187\n // https://github.com/dotnet/runtime/issues/76211\n j--;\n continue;\n }\n ret[j] = this.visitValue(value, meta.itemType);\n }\n if (ret.length != j) {\n // If we skipped one or more values above, shorten the array\n // to the correct length in case we were in \"convert\" mode.\n for (let i = j; i < ret.length; i++) {\n delete ret[i];\n }\n ret.length = j;\n }\n return ret;\n }\n visitDateValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n if (this.mode == \"convert\") {\n // Preserve object ref when converting.\n return parsed;\n }\n else if (this.mode == \"map\") {\n // If the parsed result is the same ref as the incoming value when mapping,\n // get a new object ref. Otherwise, return `parsed` since it must be a new Date\n // that was constructed by parseValue.\n return value === parsed ? new Date(parsed) : parsed;\n }\n }\n visitEnumValue(value, meta) {\n return parseValue(value, meta);\n }\n visitPrimitiveValue(value, meta) {\n return parseValue(value, meta);\n }\n visitFileValue(value, meta) {\n return parseValue(value, meta);\n }\n visitBinaryValue(value, meta) {\n return parseValue(value, meta);\n }\n visitUnknownValue(value, meta) {\n return value;\n }\n constructor(mode) {\n super();\n this.mode = mode;\n }\n}\nexport function convertToModel(value, metadata) {\n if (\"props\" in metadata) {\n return new ModelConversionVisitor(\"convert\").visitObject(value, metadata);\n }\n else {\n return new ModelConversionVisitor(\"convert\").visitValue(value, metadata);\n }\n}\nexport { convertToModel as convertValueToModel };\nexport function mapToModel(value, metadata) {\n if (\"props\" in metadata) {\n return new ModelConversionVisitor(\"map\").visitObject(value, metadata);\n }\n else {\n return new ModelConversionVisitor(\"map\").visitValue(value, metadata);\n }\n}\nexport { mapToModel as mapValueToModel };\n/** Visitor that maps a model to a DTO.\n * A DTO in this case is a POJO that is suitable for JSON stringification\n * for purposes of transport via an HTTP API.\n */\nclass MapToDtoVisitor extends Visitor {\n maxObjectDepth;\n depth = 0;\n visitObject(value, meta) {\n // If we've exceeded max depth, return undefined to prevent the\n // creation of an entry in the parent object for this object.\n if (this.depth > this.maxObjectDepth)\n return undefined;\n this.depth++;\n if (value == null)\n return null;\n const props = meta.props;\n const output = {};\n for (const propName in props) {\n const propMeta = props[propName];\n if (propMeta.dontSerialize)\n continue;\n if (propName in value) {\n const newValue = this.visitValue(value[propName], propMeta);\n if (newValue !== undefined) {\n // Only store values that aren't undefined.\n // We don't support any properties with undefined as their value - we shouldn't define these in the first place.\n output[propName] = newValue;\n }\n }\n // This prop is a foreign key, and it has no value.\n // Lets check and see if the corresponding referenceNavigation prop has an object in it.\n // If it does, try and use that object's primary key as the value of our FK.\n if (output[propName] == null &&\n propMeta.role == \"foreignKey\" &&\n propMeta.navigationProp) {\n const objectValue = value[propMeta.navigationProp.name];\n if (objectValue) {\n const objectValuePkValue = objectValue[propMeta.navigationProp.typeDef.keyProp.name];\n if (objectValuePkValue != null) {\n output[propName] = objectValuePkValue;\n }\n }\n propMeta.principalType.keyProp.name;\n }\n }\n this.depth--;\n return output;\n }\n visitCollection(value, meta) {\n if (this.depth > this.maxObjectDepth) {\n // If we've exceeded max depth, return undefined to prevent the\n // creation of an entry in the parent object for this collection.\n return undefined;\n }\n if (value == null)\n return null;\n const parsed = parseValue(value, meta);\n const ret = [];\n for (let i = 0; i < parsed.length; i++) {\n ret[i] = this.visitValue(parsed[i], meta.itemType);\n }\n return ret;\n }\n visitDateValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n // We must exclude timezone (XXX) for DateTime, but keep it for DateTimeOffset.\n // This is needed to keep a timezone-agnostic DateTime from being translated\n // into a different timezone when we serialize it.\n if (meta.noOffset) {\n const serializeAs = meta.serializeAs || meta.dateKind;\n if (serializeAs == \"date\") {\n // System.Text.Json cannot deserialize into a System.DateOnly if the string contains a time part.\n return lightFormat(parsed, \"yyyy-MM-dd\");\n }\n if (serializeAs == \"time\") {\n // System.Text.Json cannot deserialize into a System.TimeOnly if the string contains a date part.\n return lightFormat(parsed, \"HH:mm:ss.SSS\");\n }\n return lightFormat(parsed, \"yyyy-MM-dd'T'HH:mm:ss.SSS\");\n }\n else {\n if (defaultTimeZone) {\n return formatInTimeZone(parsed, defaultTimeZone, \"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\");\n }\n return format(parsed, \"yyyy-MM-dd'T'HH:mm:ss.SSSXXX\");\n }\n }\n visitFileValue(value, meta) {\n throw new Error(\"Files cannot be serialized to JSON.\");\n }\n visitBinaryValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n if (typeof parsed == \"string\") {\n // Assume strings in the position of a binary are base64.\n return parsed;\n }\n throw new Error(\"Unexpected raw binary value in JSON context\");\n }\n visitPrimitiveValue(value, meta) {\n return parseValue(value, meta);\n }\n visitEnumValue(value, meta) {\n return parseValue(value, meta);\n }\n visitUnknownValue(value, meta) {\n return value;\n }\n /**\n * Create a new DTO mapper, allowing recursive mapping up to the specified depth.\n * @param maxObjectDepth The maximum depth to serialize objects and collections at.\n * Any property with `propMeta.dontSerialize == true` will always be ignored, regardless of depth.\n */\n constructor(maxObjectDepth = 1e9) {\n // Default depth used to be 3, but this was arbitrarily limiting and would break app functionality\n // in a very mysterious way for deep hierarchies of external types.\n // An arbitrary depth limit at all is just masking application bugs caused by\n // developers creating circular dependencies in their external types.\n // Its better to let this stack overflow to make the issue apparent than it is to silently truncate\n // object graphs at arbitrary depths.\n super();\n this.maxObjectDepth = maxObjectDepth;\n }\n}\nexport function mapToDto(value, metadata) {\n if (value == null) {\n // Values (non-objects) (which require metadata) should return the original value - either null or undefined.\n // I'm not sure how strictly necessary this is, but I didn't want to break the tests with this refactor.\n if (metadata)\n return value;\n // Objects always return null.\n return null;\n }\n if (metadata === undefined) {\n if (\"$metadata\" in value) {\n metadata = value.$metadata;\n }\n }\n if (!metadata) {\n throw \"mapToDto requires metadata.\";\n }\n if (\"props\" in metadata) {\n return new MapToDtoVisitor().visitObject(value, metadata);\n }\n else {\n return new MapToDtoVisitor().visitValue(value, metadata);\n }\n}\nexport { mapToDto as mapValueToDto };\n/**\n * Maps the given object to a POJO suitable for JSON serialization.\n * Will not serialize child objects or collections whose metadata includes `dontSerialize`.\n * @param object The object to map.\n * @param props A whitelisted set of props to include from the mapped object.\n * Unspecified props will be ignored. If null or undefined, all props will be included.\n */\nexport function mapToDtoFiltered(object, props) {\n var dto = mapToDto(object);\n if (props && dto) {\n const filteredDto = {};\n for (const field of props) {\n if (field in dto) {\n filteredDto[field] = dto[field];\n }\n }\n return filteredDto;\n }\n return dto;\n}\nlet defaultTimeZone = null;\n/** Set the timezone that will be used to display dates\n * via the `modelDisplay`/`propDisplay`/`valueDisplay` functions\n * if no other timezone is provided as a parameter,\n * and for c-datetime-picker in coalesce-vue-vuetify.\n * @param tzName An IANA tzdb timezone name, or null to clear this setting.\n */\nexport function setDefaultTimeZone(tzName) {\n defaultTimeZone = tzName;\n}\n/** Returns the current default timezone as provided to `setDefaultTimeZone`. */\nexport function getDefaultTimeZone() {\n return defaultTimeZone;\n}\n/** Visitor that maps its input to a string representation of its value, suitable for display. */\nclass DisplayVisitor extends Visitor {\n options;\n constructor(options) {\n super();\n this.options = options;\n }\n visitObject(value, meta) {\n if (value == null)\n return value;\n if (\"displayProp\" in meta && meta.displayProp) {\n return this.visitValue(value[meta.displayProp.name], meta.displayProp);\n }\n else {\n // https://stackoverflow.com/a/46908358 - stringify only first-level properties.\n // With a tweak to also not serialize the $metadata prop.\n try {\n return JSON.stringify(value, (k, v) => k === \"$metadata\" ? undefined : k ? \"\" + v : v);\n }\n catch {\n return value.toLocaleString();\n }\n }\n }\n visitCollection(value, meta) {\n if (value == null)\n return null;\n value = parseValue(value, meta);\n // Is this what we want? I think so - its the cleanest option.\n // Perhaps an prop that controls this would be best.\n if (value.length == 0)\n return \"\";\n const { enumeratedItemsMax = 5, enumeratedItemsSeparator = \", \" } = this.options?.collection ?? {};\n if (value.length <= enumeratedItemsMax) {\n let itemMeta = meta.itemType;\n if (\"manyToMany\" in meta) {\n itemMeta = meta.manyToMany.farNavigationProp;\n value = value.map((i) => i[meta.manyToMany.farNavigationProp.name]);\n }\n return value\n .map((childItem) => this.visitValue(childItem, itemMeta) || \"???\" // TODO: what should this be for un-displayable members of a collection?\n )\n .join(enumeratedItemsSeparator);\n }\n return (value.length.toLocaleString() + \" item\" + (value.length == 1 ? \"\" : \"s\")); // TODO: i18n\n }\n visitEnumValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n const enumData = meta.typeDef.valueLookup[value];\n // If we can't find the enum value exactly,\n // just show the numeric value.\n // TODO: support flags enums (see metadata.ts@EnumType)\n if (!enumData)\n return parsed.toLocaleString();\n return enumData.displayName;\n }\n visitDateValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n let formatString;\n let formatOptions;\n let isLightFormatString = false;\n if (this.options) {\n let { format: formatOptionInput } = this.options;\n if (formatOptionInput) {\n if (typeof formatOptionInput == \"string\") {\n formatString = formatOptionInput;\n }\n else if (\"distance\" in formatOptionInput) {\n const { addSuffix = true, // Default addSuffix to true - most likely, it is desired.\n includeSeconds = false, } = formatOptionInput;\n return formatDistanceToNow(parsed, { addSuffix, includeSeconds });\n }\n else {\n formatString = formatOptionInput.format;\n formatOptions = formatOptionInput;\n }\n }\n }\n if (!formatString) {\n isLightFormatString = true;\n switch (meta.dateKind) {\n case \"date\":\n formatString = \"M/d/yyyy\";\n break;\n case \"time\":\n formatString = \"h:mm:ss aa\";\n break;\n default:\n formatString = \"M/d/yyyy h:mm:ss aa\";\n break;\n }\n }\n if (defaultTimeZone && !formatOptions?.timeZone && !meta.noOffset) {\n formatOptions = { ...formatOptions, timeZone: defaultTimeZone };\n }\n if (isLightFormatString && !formatOptions) {\n return lightFormat(parsed, formatString);\n }\n if (formatOptions?.timeZone) {\n return formatInTimeZone(parsed, formatOptions.timeZone, formatString, formatOptions);\n }\n return format(parsed, formatString, formatOptions);\n }\n visitFileValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n if (parsed instanceof File) {\n return parsed.name;\n }\n if (parsed instanceof Blob) {\n return `${parsed.type}, ${parsed.size} bytes`;\n }\n return null;\n }\n visitBinaryValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n if (typeof parsed == \"string\") {\n let padding = 0;\n while (parsed[parsed.length - 1 - padding] == \"=\")\n padding++;\n const bytes = 3 * (parsed.length / 4) - padding;\n return `${bytes.toLocaleString()} bytes`;\n }\n return `${parsed.byteLength.toLocaleString()} bytes`;\n }\n visitPrimitiveValue(value, meta) {\n const parsed = parseValue(value, meta);\n if (parsed == null)\n return null;\n if (typeof parsed == \"number\") {\n // Don't locale-string numbers - it puts in thousands separators.\n // This may seem like a neat idea, until you start displaying things\n // like PKs, FKs, or numbers like order numbers, invoice numbers.\n // That is to say, numbers without any useful meaning to their magnitude.\n return parsed.toString();\n }\n return parsed.toLocaleString();\n }\n visitUnknownValue(value, meta) {\n if (typeof value == \"string\")\n return value;\n if (typeof value == \"number\")\n return value.toString();\n if (typeof value == \"object\" && value)\n return value.toString();\n return null;\n }\n}\n/** Singleton instance of `GetDisplayVisitor` to be used when no options are provided. */\nconst defaultDisplayVisitor = new DisplayVisitor();\n/**\n * Given a model instance, return a string representation of the instance suitable for display.\n * @param item The model instance to return a string representation of\n */\nexport function modelDisplay(item, options) {\n const modelMeta = item.$metadata;\n if (!modelMeta) {\n throw `Object has no $metadata property`;\n }\n return (options ? new DisplayVisitor(options) : defaultDisplayVisitor).visitObject(item, modelMeta);\n}\n/**\n * Given a model instance and a descriptor of a property on the instance,\n * return a string representation of the property suitable for display.\n * @param item An instance of the model that holds the property to be displayed\n * @param prop The property to be displayed - either the name of a property or a property metadata object.\n */\nexport function propDisplay(item, prop, options) {\n const propMeta = resolvePropMeta(item.$metadata, prop);\n var value = item[propMeta.name];\n return (options ? new DisplayVisitor(options) : defaultDisplayVisitor).visitValue(value, propMeta);\n}\n/**\n * Given a value and metadata which describes that value,\n * return a string representation of the value suitable for display.\n * @param value Any value which is valid for the metadata provided.\n * @param metadata The metadata which describes the value given.\n */\nexport function valueDisplay(value, metadata, options) {\n return (options ? new DisplayVisitor(options) : defaultDisplayVisitor).visitValue(value, metadata);\n}\nconst coalescePendingQuery = Symbol();\nexport function bindToQueryString(vue, obj, key, { queryKey = key, mode = \"replace\", parse, stringify, } = {}) {\n if (isRef(obj) && typeof key == \"string\" && key !== \"value\") {\n return bindToQueryString(vue, obj, \"value\", { queryKey: key });\n }\n if (typeof key == \"object\") {\n // Handle the overload that accepts a ref directly\n //@ts-expect-error\n return bindToQueryString(vue, obj, \"value\", key);\n }\n let paused = false;\n onDeactivated(() => {\n paused = true;\n }, getInternalInstance(vue));\n onActivated(() => {\n paused = false;\n updateObject(vue.$route?.query[queryKey]);\n }, getInternalInstance(vue));\n const defaultValue = obj[key];\n const metadata = obj?.$metadata;\n // When the value changes, persist it to the query.\n vue.$watch(() => obj[key], (v) => {\n if (paused) {\n return;\n }\n if (!vue.$router || !vue.$route) {\n throw new Error(\"Could not find $router or $route on the component instance. Is vue-router installed?\");\n }\n const newQuery = {\n ... //@ts-expect-error\n (vue.$router[coalescePendingQuery] || vue.$route.query),\n [queryKey]: v == null || v === \"\"\n ? undefined\n : stringify\n ? stringify(v)\n : // Use metadata to format the value if the obj has any.\n metadata?.params?.[key]\n ? mapToDto(v, metadata.params[key])?.toString()\n : metadata?.props?.[key]\n ? mapToDto(v, metadata.props[key])?.toString()\n : // TODO: Add $metadata to DataSourceParameters/FilterParameters/ListParameters, and then support that as well.\n // Fallback to .tostring()\n String(v) ?? undefined,\n };\n // Fix https://github.com/IntelliTect/Coalesce/issues/310:\n // Vue router processes route changes delayed by a tick,\n // so if multiple querystring-bound values change in the same tick,\n // changes subsequent to the first will be reading a stale copy of `vue.$route.query`.\n // So, we store the pending new query value so that subsequent updates\n // during the same tick can read the previous update's desired end state,\n // rather than every update reading the beginning state.\n //@ts-expect-error\n vue.$router[coalescePendingQuery] = newQuery;\n //@ts-expect-error\n nextTick(() => delete vue.$router[coalescePendingQuery]);\n vue.$router[mode]({\n query: newQuery,\n }).catch((err) => { });\n });\n const updateObject = (v) => {\n // If an array somehow, grab the first value\n // (bindToQueryString doesn't support multiple same-named binds).\n v = Array.isArray(v) ? v[0] : v;\n obj[key] =\n // Use the default value if null or undefined\n v == null\n ? defaultValue\n : // Use provided parse function, if provided.\n parse\n ? parse(v)\n : // Use metadata to parse the value if the obj is a DataSource.\n metadata?.params?.[key]\n ? mapToModel(v, metadata.params[key])\n : metadata?.props?.[key]\n ? mapToModel(v, metadata.props[key])\n : // TODO: Add $metadata to DataSourceParameters/FilterParameters/ListParameters, and then support that as well.\n // Fallback to the raw value\n v;\n };\n // When the query changes, grab the new value.\n vue.$watch(() => vue.$route?.query[queryKey], async (v) => {\n if (IsVue3) {\n // In Vue3/VueRouter4, the component doesn't start tearing down immediately\n // upon route navigation - it takes an extra tick for that to happen.\n // If we don't guard here, then this watcher will pick up the query values of the new route\n // (which are probably all undefined for the keys we're watching for),\n // and start setting those (or `defaultValue`) onto the component instance, which will then trigger\n // the other watcher above which will put those new values back into the querystring of the new route.\n // Vue2 has a similar issue where this watcher still runs when leaving the route,\n // but by the time the other watcher above has a chance to run, the component is torn down\n // and so the bad values never make it back to the query string.\n await vue.$nextTick();\n if (paused || getInternalInstance(vue).isUnmounted) {\n return;\n }\n }\n updateObject(v);\n });\n // Fix #332: circumvent the `await nextTick` above on the initial call\"\n updateObject(vue.$route?.query[queryKey]);\n}\nexport function useBindToQueryString(obj, key, options) {\n const vue = getCurrentInstance()?.proxy;\n if (!vue)\n throw new Error(\"useBindToQueryString can only be used inside setup(). Consider using bindToQueryString if you're not using Vue composition API.\");\n return bindToQueryString(vue, obj, key, options);\n}\nexport function bindKeyToRouteOnCreate(vue, model, routeParamName = \"id\", keepQuery = false, routeName) {\n if (!vue.$router || !vue.$route) {\n throw new Error(\"Could not find $router or $route on the component instance. Is vue-router installed?\");\n }\n routeName = routeName ?? vue.$route.name;\n vue.$watch(() => model[model.$metadata.keyProp.name], (pk, o) => {\n if (!routeName) {\n throw Error(\"Cannot use bindKeyToRouteOnCreate with unnamed routes.\");\n }\n if (pk && !o) {\n const { href } = vue.$router.resolve({\n name: routeName ?? vue.$route.name,\n query: keepQuery ? vue.$route.query : {},\n params: {\n ...vue.$route.params,\n [routeParamName]: pk,\n },\n });\n // Manually replace state with the HTML5 history API\n // so that vue-router doesn't notice the route change\n // and therefore won't trigger any route transitions\n // or router-view component reconstitutions.\n window.history.replaceState(history.state, \"\", href);\n }\n });\n}\nexport function useBindKeyToRouteOnCreate(model, routeParamName = \"id\", keepQuery = false, routeName) {\n const vue = getCurrentInstance()?.proxy;\n if (!vue)\n throw new Error(\"useBindToQueryString can only be used inside setup(). Consider using bindToQueryString if you're not using Vue composition API.\");\n return bindKeyToRouteOnCreate(vue, model, routeParamName, keepQuery, routeName);\n}\nexport function reactiveDataSource(source) {\n // Simple wrapper function around `reactive`. This exists because:\n // - None of the generated code imports directly from `vue`. Adding such\n // an import for this one-off case feels weird, and also requires a lot\n // of extra project config to get the tests to import from the right place.\n // - We don't want to just re-export `reactive` under its own name because then\n // IDEs will get confused about where to import `reactive` from.\n return reactive(source);\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn.apply(null, args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = \"credentials\" in Request.prototype;\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import { onBeforeUnmount, ref, markRaw, getCurrentInstance, shallowRef, } from \"vue\";\nimport { convertToModel, mapToDto, mapToModel, mapToDtoFiltered, parseValue, } from \"./model.js\";\nimport { objectToQueryString, objectToFormData, ReactiveFlags_SKIP, getInternalInstance, } from \"./util.js\";\nimport axios, { AxiosError, } from \"axios\";\nexport class DataSourceParameters {\n constructor() {\n this.includes = null;\n this.dataSource = null;\n }\n}\nexport class SaveParameters extends DataSourceParameters {\n constructor() {\n super();\n this.fields = null;\n }\n}\nexport class FilterParameters extends DataSourceParameters {\n constructor() {\n super();\n this.search = null;\n this.filter = {};\n }\n}\nexport class ListParameters extends FilterParameters {\n constructor() {\n super();\n this.page = 1;\n this.pageSize = 10;\n this.noCount = null;\n this.orderBy = null;\n this.orderByDescending = null;\n this.fields = null;\n }\n}\n/**\n * Maps the given API standard parameters object into an flat object of key-value pairs\n * that is suitable for use as a URL querystring.\n * @param parameters The parameters to map.\n */\nexport function mapParamsToDto(parameters) {\n if (!parameters)\n return {};\n // Assume the widest type, which is ListParameters.\n var wideParams = parameters;\n // The list of 'simple' params where we just pass along the exact value.\n var simpleParams = [\n \"includes\",\n \"search\",\n \"page\",\n \"pageSize\",\n \"noCount\",\n \"orderBy\",\n \"orderByDescending\",\n ];\n // Map all the simple params to `paramsObject`\n var paramsObject = simpleParams.reduce((obj, key) => {\n if (key in wideParams && wideParams[key] != null) {\n obj[key] = String(wideParams[key]);\n }\n return obj;\n }, {});\n // Map the 'filter' object, ensuring all values are strings.\n const filter = wideParams.filter;\n if (typeof filter == \"object\" && filter) {\n for (var key in filter) {\n let value = filter[key];\n if (value !== undefined) {\n paramsObject[\"filter.\" + key] = String(value);\n }\n }\n }\n if (Array.isArray(wideParams.fields)) {\n paramsObject.fields = wideParams.fields.join(\",\");\n }\n // Map the data source and its params\n const dataSource = wideParams.dataSource;\n if (dataSource) {\n // Add the data source name\n paramsObject[\"dataSource\"] = dataSource.$metadata.name;\n var paramsMeta = dataSource.$metadata.props;\n // Add the data source parameters.\n // Note that we use \"dataSource.{paramName}\", not a nested object.\n // This is what the model binder expects.\n for (var paramName in paramsMeta) {\n const paramMeta = paramsMeta[paramName];\n if (paramName in dataSource) {\n const paramValue = dataSource[paramName];\n paramsObject[\"dataSource.\" + paramMeta.name] = mapToDto(paramValue, paramMeta);\n }\n }\n }\n return paramsObject;\n}\nconst dummyValue = {\n role: \"value\",\n displayName: \"\",\n};\n/**\n * Maps the given flat object of key-value pairs into an API parameters object.\n * @param dto The flat object to map.\n * @param parametersType The constructor of the parameters object to create.\n * @param modelClass The generated model class (containing a `DataSources` namespace) 1\n */\nexport function mapQueryToParams(flatQuery, parametersType, modelMeta) {\n const dto = flatQuery; // alias for brevity\n const parameters = new parametersType();\n if (parameters instanceof ListParameters) {\n if (\"page\" in dto)\n parameters.page = parseValue(dto.page, {\n type: \"number\",\n name: \"page\",\n ...dummyValue,\n });\n if (\"pageSize\" in dto)\n parameters.pageSize = parseValue(dto.pageSize, {\n type: \"number\",\n name: \"pageSize\",\n ...dummyValue,\n });\n if (\"noCount\" in dto)\n parameters.noCount = parseValue(dto.noCount, {\n type: \"boolean\",\n name: \"noCount\",\n ...dummyValue,\n });\n if (\"orderBy\" in dto)\n parameters.orderBy = dto.orderBy;\n if (\"orderByDescending\" in dto)\n parameters.orderByDescending = dto.orderByDescending;\n if (\"fields\" in dto)\n parameters.fields = String(dto.fields).split(\",\");\n }\n if (parameters instanceof FilterParameters) {\n if (\"search\" in dto)\n parameters.search = dto.search;\n for (const key in dto) {\n if (key.startsWith(\"filter.\") && dto[key] !== undefined) {\n parameters.filter ??= {};\n parameters.filter[key.replace(\"filter.\", \"\")] = dto[key];\n }\n }\n }\n if (parameters instanceof DataSourceParameters) {\n if (\"includes\" in dto)\n parameters.includes = dto.includes;\n if (\"dataSource\" in dto) {\n var dataSourceMeta = Object.values(modelMeta.dataSources).find(\n // Match case insensitively on the DS name,\n // because sometimes it'll be camelCase (keys of `modelMeta.dataSources`)\n // and sometimes it'll be PascalCase (values of `modelMeta.dataSources[x].name`).\n (d) => d.name.toLowerCase() == dto.dataSource.toLowerCase());\n if (dataSourceMeta) {\n const dataSource = mapToModel({}, dataSourceMeta);\n parameters.dataSource = dataSource;\n for (const key in dto) {\n if (key.startsWith(\"dataSource.\")) {\n var paramName = key.replace(\"dataSource.\", \"\");\n if (paramName in dataSource.$metadata.props) {\n dataSource[paramName] = mapToModel(dto[key], dataSource.$metadata.props[paramName]);\n }\n }\n }\n }\n }\n }\n return parameters;\n}\nasync function parseApiResult(data) {\n if (data instanceof Blob &&\n data.size > 0 &&\n data.type == \"application/json\") {\n // For file-returning endpoints, we ask axios to return us a Blob.\n // However, this means that if the endpoint fails and returns JSON,\n // it will return the ApiResult's JSON inside a blob. This extracts it back out.\n data = await new Promise((resolve, reject) => {\n let reader = new FileReader();\n reader.onload = () => {\n try {\n resolve(JSON.parse(reader.result));\n }\n catch (e) {\n reject(e);\n }\n };\n reader.readAsText(data);\n });\n }\n if (typeof data !== \"object\" || !(\"wasSuccessful\" in data)) {\n return null;\n }\n return data;\n}\nexport function getMessageForError(error) {\n const e = error;\n if (typeof e === \"string\") {\n return e;\n }\n else if (typeof e === \"object\" && e != null) {\n if (\"isAxiosError\" in e) {\n const result = e.response;\n if (result &&\n typeof result.data === \"object\" &&\n \"message\" in result.data) {\n return result.data.message || \"Unknown Error\";\n }\n // Axios normally returns a message like \"Request failed with status code 403\".\n // We can get the status text out of the response to make this a little nicer.\n // (appending \"(Forbidden)\", etc. to the end of the message.)\n const statusText = e.response?.statusText;\n if (statusText && e.message && !e.message.includes(statusText)) {\n return `${e.message} (${statusText})`;\n }\n }\n return \"message\" in e && typeof e.message === \"string\"\n ? e.message\n : \"A network error occurred\"; // TODO: i18n\n }\n else {\n return \"An unknown error occurred\";\n }\n}\n/** Axios instance to be used by all Coalesce API requests. Can be configured as needed. */\nexport const AxiosClient = axios.create();\nAxiosClient.defaults.baseURL = \"/api\";\nAxiosClient.defaults.paramsSerializer = (p) => objectToQueryString(p, false);\n// Set X-Requested-With: XmlHttpRequest to prevent aspnetcore from serving HTML and redirects to API requests.\n// https://github.com/dotnet/aspnetcore/blob/c440ebcf49badd49f0e2cdde1b0a74992af04158/src/Security/Authentication/Cookies/src/CookieAuthenticationEvents.cs#L107-L111\nAxiosClient.interceptors.request.use((config) => {\n const url = (config.baseURL ?? \"\") + (config.url ?? \"\");\n if (url && !url.startsWith(\"/\")) {\n // Url is not relative. We want to parse it and determine what its origin is.\n if (!URL || new URL(url).origin !== window?.location?.origin) {\n // The origin check is because we don't want to trigger CORS preflights for this.\n // If this IS important for someone on the very unlikely scenario of CORS w/ Coalesce,\n // they can just configure this behavior on the server by overriding the CookieAuthenticationEvents.\n return config;\n }\n }\n if (typeof config?.headers?.set == \"function\") {\n // Axios 1.x\n config.headers.set(\"X-Requested-With\", \"XMLHttpRequest\");\n return config;\n }\n else {\n // Axios 0.x\n return {\n ...config,\n headers: {\n ...config.headers,\n [\"X-Requested-With\"]: \"XMLHttpRequest\",\n },\n };\n }\n});\nconst simultaneousGetCache = new Map();\nexport class ApiClient {\n $metadata;\n /** See comments on ReactiveFlags_SKIP for explanation.\n * @internal\n */\n [ReactiveFlags_SKIP] = true;\n constructor($metadata) {\n this.$metadata = $metadata;\n }\n /** Flag to enable global caching of identical GET requests\n * that have been made simultaneously.\n */\n _simultaneousGetCaching = false;\n /** Enable simultaneous request caching, causing identical GET requests made\n * at the same time across all ApiClient instances to be handled with the same AJAX request.\n * @deprecated Renamed to `$useSimultaneousRequestCaching`.\n */\n $withSimultaneousRequestCaching() {\n return this.$useSimultaneousRequestCaching();\n }\n /** Enable simultaneous request caching, causing identical GET requests made\n * at the same time across all ApiClient instances to be handled with the same AJAX request.\n */\n $useSimultaneousRequestCaching() {\n this._simultaneousGetCaching = true;\n return this;\n }\n /** @internal */\n _cancelToken;\n /** Clones the API client and its config.\n * @internal\n */\n $clone() {\n const clone = Object.create(Object.getPrototypeOf(this));\n Object.assign(clone, this);\n return clone;\n }\n $makeCaller(resultType, invoker, argsFactory, argsInvoker) {\n let localResultType = resultType;\n let meta = undefined;\n if (typeof localResultType === \"function\") {\n meta = localResultType(this.$metadata.methods);\n localResultType = meta.transportType;\n }\n else if (typeof localResultType === \"object\") {\n meta = localResultType;\n localResultType = localResultType.transportType;\n }\n // This is basically all just about resolving the overloads.\n // We use `any` because the types get really messy if you try to handle both types at once.\n var instance;\n if (argsFactory && argsInvoker) {\n switch (localResultType) {\n case \"item\":\n instance = new ItemApiStateWithArgs(this, invoker, argsFactory, argsInvoker);\n break;\n case \"list\":\n instance = new ListApiStateWithArgs(this, invoker, argsFactory, argsInvoker);\n break;\n default:\n throw `Unknown result type ${localResultType}`;\n }\n }\n else {\n switch (localResultType) {\n case \"item\":\n instance = new ItemApiState(this, invoker);\n break;\n case \"list\":\n instance = new ListApiState(this, invoker);\n break;\n default:\n throw `Unknown result type ${localResultType}`;\n }\n }\n // Set this on the instance if we have it.\n instance.$metadata = meta;\n return instance;\n }\n /**\n * Invoke the specified method using the provided set of parameters.\n * @param method The metadata of the API method to invoke\n * @param params The parameters to provide to the API method.\n * @param config A full `AxiosRequestConfig` to merge in.\n */\n $invoke(method, params, config, standardParameters) {\n const mappedParams = this.$mapParams(method, params);\n const url = `/${this.$metadata.controllerRoute}/${method.name}`;\n let body;\n let query;\n if (method.httpMethod != \"GET\" && method.httpMethod != \"DELETE\") {\n // The HTTP method has a body.\n query = undefined;\n const formData = objectToFormData(mappedParams);\n let hasFile = false;\n formData.forEach((v) => (hasFile ||= v instanceof File));\n if (hasFile) {\n // If the endpoint has any files or raw binary, we need to use a FormData.\n // (Blobs become Files when put into FormData, and we serialize UInt8Array into a Blob)\n // This will form a multipart/form-data response.\n body = formData;\n }\n else if (method.json) {\n // The server expects json for this method. Pass the object directly,\n // which axios will serialize as json.\n body = mappedParams;\n }\n else {\n // No top-level special values - just handle the params normally.\n // This will form a application/x-www-form-urlencoded response.\n body = objectToQueryString(mappedParams);\n }\n }\n else {\n // The HTTP method has no body.\n body = undefined;\n query = mappedParams;\n }\n const axiosRequest = {\n method: method.httpMethod,\n url: url,\n data: body,\n responseType: method.return.type == \"file\" ? \"blob\" : \"json\",\n cancelToken: this._cancelToken,\n ...config,\n params: {\n ...query,\n ...(config && config.params ? config.params : null),\n ...mapParamsToDto(standardParameters),\n },\n __coalesce_method_meta() {\n return method;\n },\n };\n if (this._observedRequests) {\n this._observedRequests.push({ request: axiosRequest, method: method });\n if (!this._observedRequests.doRequest) {\n return new Promise(() => {\n /* never resolve */\n });\n }\n }\n let doCache = false;\n let cacheKey;\n if (method.httpMethod === \"GET\" &&\n this._simultaneousGetCaching &&\n !config) {\n cacheKey = AxiosClient.getUri(axiosRequest);\n if (simultaneousGetCache.has(cacheKey)) {\n return simultaneousGetCache.get(cacheKey);\n }\n else {\n doCache = true;\n }\n }\n let promise = AxiosClient.request(axiosRequest).then((r) => {\n if (typeof r.data !== \"object\") {\n // This case usually only happens if the endpoint doesn't exist on the server,\n // causing the server to return a SPA fallback route (as HTML) with a 200 status.\n throw new Error(`Unexpected ${r.headers?.[\"content-type\"] || r.headers?.[\"Content-Type\"]} ${typeof r.data} response from server.`);\n }\n switch (method.return.type) {\n case \"file\":\n // Determine the name of the downloaded file.\n // https://stackoverflow.com/a/40940790\n let disposition = r.headers[\"content-disposition\"];\n let fileName = \"\";\n if (disposition) {\n const utf8FilenameRegex = /filename\\*=UTF-8''([\\w%\\-\\.]+)(?:; ?|$)/i;\n const asciiFilenameRegex = /^filename=([\"']?)(.*?[^\\\\])\\1(?:; ?|$)/i;\n if (utf8FilenameRegex.test(disposition)) {\n fileName = decodeURIComponent(utf8FilenameRegex.exec(disposition)[1]);\n }\n else {\n // prevent ReDos attacks by anchoring the ascii regex to string start and\n // slicing off everything before 'filename='\n const filenameStart = disposition\n .toLowerCase()\n .indexOf(\"filename=\");\n if (filenameStart >= 0) {\n const partialDisposition = disposition.slice(filenameStart);\n const matches = asciiFilenameRegex.exec(partialDisposition);\n if (matches != null && matches[2]) {\n fileName = matches[2];\n }\n }\n }\n }\n // Wrap the blob obtained from Axios into a Coalesce ItemResult.\n const blob = r.data;\n r.data = {\n wasSuccessful: true,\n object: new File([blob], fileName, { type: blob.type }),\n };\n return r;\n case \"void\":\n return r;\n default:\n switch (method.transportType) {\n case \"item\":\n r.data.object = convertToModel(r.data.object, method.return);\n return r;\n case \"list\":\n r.data.list = convertToModel(r.data.list, method.return);\n return r;\n }\n }\n });\n if (doCache) {\n // Add the promise to the cache.\n simultaneousGetCache.set(cacheKey, promise);\n // Remove the promise from the cache when it completes.\n promise = promise.then((x) => {\n // Remove the request from the cache, because its done now.\n simultaneousGetCache.delete(cacheKey);\n return x;\n }, (e) => {\n simultaneousGetCache.delete(cacheKey);\n // Re-throw the error so callers down the line can handle it.\n throw e;\n });\n }\n return promise;\n }\n // NOTE: DO NOT init _observedRequests to null. This _should_ be nonreactive.\n _observedRequests;\n /** Invokes `func`, capturing the parameter of any API calls within $invoke() invocations.,\n * If `capture` is true, no HTTP request will be made, being replaced by a never-resolving promise.\n * @internal\n */\n _observeRequests(func, capture = false) {\n const old = this._observedRequests;\n try {\n const capturedRequests = (this._observedRequests = Object.defineProperty([], \"doRequest\", {\n enumerable: false,\n value: capture,\n }));\n const result = func();\n return [result, capturedRequests];\n }\n finally {\n this._observedRequests = old;\n }\n }\n /**\n * Maps the given method parameters to values suitable for transport.\n * @param method The method whose parameters need mapping\n * @param params The values of the parameter to map\n */\n $mapParams(method, params) {\n const formatted = {};\n for (var paramName in method.params) {\n const paramMeta = method.params[paramName];\n const paramValue = params[paramName];\n if (paramValue === undefined)\n continue;\n if (paramValue === null &&\n method.name != \"save\" &&\n (paramMeta.type == \"number\" ||\n paramMeta.type == \"date\" ||\n paramMeta.type == \"enum\" ||\n paramMeta.type == \"boolean\")) {\n // FormData idiosyncrasy workaround:\n // Skip nulls for root value type params - https://github.com/IntelliTect/Coalesce/issues/464\n // Only for custom methods, though, which pass individual top-level parameters.\n // `/save` works differently by binding the entire form to the DTO, and all\n // props on DTOs are nullable, which interpret \"\" as null just fine.\n continue;\n }\n const pureType = paramMeta.type == \"collection\" ? paramMeta.itemType : paramMeta;\n if (pureType.type == \"file\" || pureType.type == \"binary\") {\n // Preserve top-level files and binary (and arrays of such) as their original format\n formatted[paramName] = parseValue(paramValue, paramMeta);\n }\n else {\n formatted[paramName] = mapToDto(paramValue, paramMeta);\n }\n }\n return formatted;\n }\n}\nexport class ModelApiClient extends ApiClient {\n get(id, parameters, config) {\n return this.$invoke({\n name: `get/${id}`,\n displayName: \"get\",\n transportType: \"item\",\n httpMethod: \"GET\",\n params: {},\n return: this.$itemValueMeta,\n }, {}, config, parameters);\n }\n list(parameters, config) {\n return this.$invoke({\n name: \"list\",\n displayName: \"list\",\n transportType: \"list\",\n httpMethod: \"GET\",\n params: {},\n return: this.$collectionValueMeta,\n }, {}, config, parameters);\n }\n count(parameters, config) {\n return this.$invoke({\n name: \"count\",\n displayName: \"count\",\n transportType: \"item\",\n httpMethod: \"GET\",\n params: {},\n return: {\n name: \"$return\",\n displayName: \"Result\",\n type: \"number\",\n role: \"value\",\n },\n }, {}, config, parameters);\n }\n save(item, parameters, config) {\n const { fields, ...params } = parameters ?? new SaveParameters();\n return this.$invoke({\n name: \"save\",\n displayName: \"save\",\n transportType: \"item\",\n httpMethod: \"POST\",\n params: Object.fromEntries(Object.entries(this.$metadata.props).filter((p) => !p[1].dontSerialize)),\n return: this.$itemValueMeta,\n }, mapToDtoFiltered(item, fields), config, params);\n }\n bulkSave(data, parameters, config) {\n return this.$invoke({\n name: \"bulkSave\",\n displayName: \"bulkSave\",\n transportType: \"item\",\n httpMethod: \"POST\",\n params: {\n items: {\n name: \"items\",\n displayName: \"items\",\n role: \"value\",\n type: \"unknown\",\n },\n },\n json: true,\n return: this.$itemValueMeta,\n }, data, config, parameters);\n }\n delete(id, parameters, config) {\n return this.$invoke({\n name: `delete/${id}`,\n displayName: \"delete\",\n transportType: \"item\",\n httpMethod: \"POST\",\n params: {},\n return: this.$itemValueMeta,\n }, {}, config, parameters);\n }\n /** Value metadata for handling ItemResult returns from the standard API endpoints. */\n get $itemValueMeta() {\n return {\n name: \"object\",\n displayName: \"\",\n type: \"model\",\n role: \"value\",\n typeDef: this.$metadata,\n };\n }\n /** Value metadata for handling ListResult returns from the standard API endpoints. */\n get $collectionValueMeta() {\n return {\n name: \"list\",\n displayName: \"\",\n type: \"collection\",\n role: \"value\",\n itemType: this.$itemValueMeta,\n };\n }\n}\nexport class ServiceApiClient extends ApiClient {\n}\n// Base class for ApiState that contains nothing but the logic for\n// subclassing Function. Specifically, we do this to avoid a need to call\n// `super()`, which triggers CSP unsafe-eval.\nclass ApiStateBase {\n /** Invokes a call to this API endpoint. */\n invoke;\n apiClient;\n invoker;\n constructor(apiClient, invoker) {\n // Create our invoker function that will ultimately be our instance object.\n const invokeFunc = function invokeFunc(...args) {\n return invoke._invokeInternal(this, invoker, [...args]);\n };\n const invoke = invokeFunc;\n // Manually assign ctor props\n // @ts-expect-error\n invoke.invoke = invoke;\n // @ts-expect-error\n invoke.invoker = invoker;\n // @ts-expect-error\n invoke.apiClient = apiClient;\n Object.setPrototypeOf(invoke, new.target.prototype);\n return invoke;\n }\n}\n// @ts-ignore Workaround for https://github.com/evanw/esbuild/issues/1918,\n// an error that happens when esbuild transforms the class fields\n// into incorrectly using `this` even though our actual constructor does not use `this`.\n// Using `this` before a call to `super` (which we don't have or need either of these)\n// when the class has a base class is invalid in JS. But we can prevent this by\n// assigning the base class prototype directly, hiding the existence of a base class from JS.\n// The reason we can't inherit from Function and just call `super()` is because doing so\n// will create an empty function which won't be used, and doing so triggers CSP unsafe-eval.\nApiStateBase.prototype.__proto__ = Function;\nexport class ApiState extends ApiStateBase {\n /** See comments on ReactiveFlags_SKIP for explanation.\n * @internal\n */\n [ReactiveFlags_SKIP] = true;\n __isLoading = ref(false);\n /** True if a request is currently pending. */\n get isLoading() {\n return this.__isLoading.value;\n }\n set isLoading(v) {\n this.__isLoading.value = v;\n }\n __wasSuccessful = ref(null);\n /** True if the previous request was successful. */\n get wasSuccessful() {\n return this.__wasSuccessful.value;\n }\n set wasSuccessful(v) {\n this.__wasSuccessful.value = v;\n }\n __message = ref(null);\n /** Error message returned by the previous request. */\n get message() {\n return this.__message.value;\n }\n set message(v) {\n this.__message.value = v;\n }\n __hasResult = ref(false);\n /** Whether `.result` is null or not.\n * Using this prop to check for a result avoids a subscription\n * against the whole result object, which will change each time the method is called.\n */\n get hasResult() {\n return this.__hasResult.value;\n }\n set hasResult(v) {\n this.__hasResult.value = v;\n }\n __rawResponse = shallowRef();\n /** The raw axios response returned by the previous request.\n * Can be used to read headers and other HTTP data from the response.\n */\n get rawResponse() {\n return this.__rawResponse.value;\n }\n /** Reset all state fields of the instance.\n * Does not reset configuration like response caching and concurrency mode.\n */\n reset() {\n if (this.isLoading)\n throw new Error(\"Cannot reset while a request is pending.\");\n this.hasResult = false;\n this.result = null;\n this.wasSuccessful = null;\n this.message = null;\n this.isLoading = false;\n this.__rawResponse.value = undefined;\n }\n __responseCacheConfig;\n /**\n * Enable response caching for the API caller,\n * saving previous responses to persistent storage (default: `sessionStorage`) so they can later\n * be used to populate `result` when an identical request is made but before any initial network response is received.\n *\n * Response caching does not prevent any HTTP requests from being made, but instead\n * will temporarily load an old response while the fresh response is being fetched.\n *\n * Do not use for any endpoint that could contain sensitive data.\n */\n useResponseCaching(configuration) {\n if (this.$metadata && this.$metadata.httpMethod != \"GET\") {\n // Preemptively guard against this since it'll likely be a common mistake.\n throw new Error(\"Response caching can only be used on HTTP GET methods.\");\n }\n this.__responseCacheConfig =\n configuration === false\n ? undefined\n : configuration === undefined\n ? {}\n : markRaw(configuration);\n return this;\n }\n _simultaneousGetCaching = false;\n /** Enable simultaneous request caching for the API caller,\n * causing all identical GET requests made with this setting enabled\n * to be handled with the same AJAX request.\n */\n useSimultaneousRequestCaching() {\n this._simultaneousGetCaching = true;\n return this;\n }\n _concurrencyMode = \"disallow\";\n /**\n * Set the concurrency mode for this API caller. Default is \"disallow\".\n * @param mode Behavior for when a request is made while there is already an outstanding request.\n *\n * \"cancel\" - Cancel the outstanding request first.\n *\n * \"debounce\" - if a request is made while one is outstanding, enqueue it to start after the outstanding\n * request is done. If another request is made while one is already enqueued, the enqueued request is abandoned\n * and replaced by the last request that was made.\n *\n * \"disallow\" - Throw an error.\n *\n * \"allow\" - Permit the second request to be made. The ultimate values of the state fields may not be representative of the last request made.\n */\n setConcurrency(mode) {\n // This method exists as a way to configure this in a chainable way when instantiating API callers.\n this._concurrencyMode = mode;\n return this;\n }\n /**\n * Get or set the concurrency mode for this API caller. Default is \"disallow\".\n * @param mode Behavior for when a request is made while there is already an outstanding request.\n *\n * \"cancel\" - cancel the outstanding request first.\n *\n * \"debounce\" - if a request is made while one is outstanding, enqueue it to start after the outstanding\n * request is done. If another request is made while one is already enqueued, the enqueued request is abandoned\n * and replaced by the last request that was made.\n *\n * \"disallow\" - throw an error.\n *\n * \"allow\" - permit the second request to be made. The ultimate state of the state fields may not be representative of the last request made.\n */\n get concurrencyMode() {\n return this._concurrencyMode;\n }\n set concurrencyMode(val) {\n this.setConcurrency(val);\n }\n _cancelToken;\n /**\n * Function that can be called to cancel a pending request.\n */\n cancel() {\n if (this._cancelToken) {\n this._cancelToken.cancel();\n this.isLoading = false;\n }\n }\n /** Invoke a call to the API endpoint after an affirmative confirmation from the user. */\n confirmInvoke(message, ...args) {\n if (!confirm(message))\n return;\n return this._invokeInternal(this, this.invoker, [...args]);\n }\n _callbacks = { onFulfilled: [], onRejected: [] };\n /**\n * Attach a callback to be invoked when the request to this endpoint succeeds.\n * @param callback A callback to be called when a request to this endpoint succeeds.\n */\n onFulfilled(callback) {\n if (!this._callbacks.onFulfilled.includes(callback)) {\n this._callbacks.onFulfilled.push(callback);\n }\n return this;\n }\n /**\n * Attach a callback to be invoked when the request to this endpoint fails.\n * @param callback A callback to be called when a request to this endpoint fails.\n */\n onRejected(callback) {\n if (!this._callbacks.onRejected.includes(callback)) {\n this._callbacks.onRejected.push(callback);\n }\n return this;\n }\n _debounceSignal = null;\n async _invokeInternal(thisArg, invoker, args) {\n let apiClient = this.apiClient;\n if (this.isLoading) {\n switch (this._concurrencyMode) {\n case \"disallow\":\n throw Error(`Request is already pending for invoker ${this.invoker.toString()}`);\n case \"cancel\":\n this.cancel();\n break;\n case \"debounce\":\n // If there's already a pending debounced request,\n // reject it, and then create a new promise and await a successful signal.\n if (this._debounceSignal) {\n this._debounceSignal.reject();\n }\n const signal = {};\n signal.promise = new Promise((resolve, reject) => {\n signal.resolve = resolve;\n signal.reject = reject;\n });\n this._debounceSignal = signal;\n // Await completion of the current outstanding request,\n // or until another call is made while we're still pending.\n try {\n await signal.promise;\n }\n catch {\n // Similar to the \"cancel\" mode,\n // aborted requests are not thrown as rejected promises,\n // but instead as a fulfilled promise with a void resolved value.\n return undefined;\n }\n }\n }\n // Change no state except `isLoading` until after the promise is resolved.\n // this.wasSuccessful = null\n // this.message = null\n this.isLoading = true;\n try {\n const token = axios.CancelToken.source();\n apiClient = apiClient.$clone();\n apiClient._cancelToken = token.token;\n if (this._simultaneousGetCaching) {\n apiClient.$useSimultaneousRequestCaching();\n }\n const responseCacheConfig = this.__responseCacheConfig;\n if (responseCacheConfig) {\n const originalInvoker = invoker;\n invoker = async () => {\n const [promise, requests] = apiClient._observeRequests(() => originalInvoker.apply(thisArg, [apiClient, ...args]), true);\n const { request, method } = requests[0];\n if (!request || !promise)\n return promise;\n const { key: keyFunc, storage = sessionStorage, maxAgeSeconds: configuredMaxAge = 3600, } = responseCacheConfig;\n if (request.method?.toUpperCase() != \"GET\") {\n // We don't strictly NEED to limit this to GET,\n // however, determining the cache key gets much harder when it isn't a GET,\n // and in general you just probably shouldn't be caching the results of non-GETs.\n console.warn(\"useResponseCaching cannot be used on ApiCallers that invoke a non-GET endpoint.\");\n return promise;\n }\n if (method.return.type == \"file\" || method.return.type == \"void\") {\n // Can't store files, and obviously caching void is meaningless.\n console.warn(`useResponseCaching cannot be used on ApiCallers that invoke a ${method.return.type}-returning endpoint.`);\n return promise;\n }\n const defaultKey = AxiosClient.getUri(request);\n const userKey = keyFunc ? keyFunc(request, defaultKey) : defaultKey;\n if (!userKey)\n return promise;\n const key = `coalesce:${userKey}`;\n const cachedValue = storage.getItem(key);\n if (cachedValue && this.wasSuccessful === null && !this.hasResult) {\n const { time, maxAge: storedMaxAge, result, } = JSON.parse(cachedValue);\n // Use the shortest of the two max ages (stored, and current config)\n // to be sure that stale entries are never taken, even when the configured maxAge\n // may have increased or decreased since the cache entry was saved.\n const effectiveMaxAge = Math.min(storedMaxAge || Number.MAX_VALUE, configuredMaxAge || Number.MAX_VALUE);\n if (time >= Date.now() / 1000 - effectiveMaxAge) {\n // Cache entries are stripped of their metadata when saved, so they need to be re-converted to a model.\n // We also need to perform this conversion in case the properties\n // of the models have changed since this cache entry was created.\n switch (method.transportType) {\n case \"item\":\n convertToModel(result.object, method.return);\n case \"list\":\n convertToModel(result.list, method.return);\n }\n this.setResponseProps(result);\n // Invoke the fulfilled callbacks so that ViewModel.$load and ListViewModel.$load\n // will work normally, populating the ViewModel with the results.\n const onFulfilled = this._callbacks.onFulfilled;\n for (let i = 0; i < onFulfilled.length; i++) {\n const cb = onFulfilled[i];\n const cbResult = cb.apply(thisArg, [this]);\n if (cbResult instanceof Promise) {\n await cbResult;\n }\n }\n }\n }\n const resp = await promise;\n // We didn't throw, so store the successful response in the cache\n const data = resp.data;\n try {\n purgeStaleCacheEntries(storage);\n storage.setItem(key, JSON.stringify({\n time: Date.now() / 1000,\n maxAge: configuredMaxAge,\n result: data,\n }, (key, value) => key == \"$metadata\" || value === null ? undefined : value));\n }\n catch (e) {\n console.warn(\"coalesce: useResponseCaching: Unable to store response\", e);\n }\n return resp;\n };\n }\n this._cancelToken = token;\n let promise = invoker.apply(thisArg, [apiClient, ...args]);\n if (!promise) {\n this.isLoading = false;\n return undefined;\n }\n const resp = await promise;\n if (!resp) {\n this.isLoading = false;\n return undefined;\n }\n const data = resp.data;\n delete this._cancelToken;\n this.__rawResponse.value = resp;\n this.setResponseProps(data);\n const onFulfilled = this._callbacks.onFulfilled;\n for (let i = 0; i < onFulfilled.length; i++) {\n const cb = onFulfilled[i];\n const cbResult = cb.apply(thisArg, [this]);\n if (cbResult instanceof Promise) {\n await cbResult;\n }\n }\n this.isLoading = false;\n return data?.object ?? data?.list;\n }\n catch (thrown) {\n if (axios.isCancel(thrown)) {\n // No handling of anything for cancellations.\n // A cancellation is deliberate and shouldn't be treated as an error state. Callbacks should not be called either - pretend the request never happened.\n // If a compelling case for invoking callbacks on cancel is found,\n // it should probably be implemented as a separate set of callbacks.\n // We don't set isLoading to false here - we set it in the cancel() method to ensure that we don't set isLoading=false for a subsequent call,\n // since the promise won't reject immediately after requesting cancellation. There could already be another request pending when this code is being executed.\n return;\n }\n else if (windowUnloading &&\n thrown &&\n typeof thrown == \"object\" &&\n \"code\" in thrown &&\n thrown.code == \"ECONNABORTED\") {\n // Ignore aborted requests when the window is unloading.\n // This seems to only happen on Firefox - Chrome doesn't abort requests\n // on unload in a way that ever propagates up to user code.\n // https://github.com/IntelliTect/Coalesce/issues/296\n return;\n }\n else {\n var error = thrown;\n }\n try {\n delete this._cancelToken;\n this.wasSuccessful = false;\n const result = typeof error === \"object\" && \"response\" in error\n ? error.response\n : undefined;\n let resultJson;\n this.__rawResponse.value = result;\n if (result && (resultJson = await parseApiResult(result.data))) {\n this.setResponseProps(resultJson);\n }\n else {\n this.message = getMessageForError(error);\n }\n const onRejected = this._callbacks.onRejected;\n for (let i = 0; i < onRejected.length; i++) {\n const cb = onRejected[i];\n const cbResult = cb.apply(thisArg, [this]);\n if (cbResult instanceof Promise) {\n await cbResult;\n }\n }\n }\n finally {\n this.isLoading = false;\n }\n throw error;\n }\n finally {\n if (this._debounceSignal) {\n this._debounceSignal.resolve();\n this._debounceSignal = null;\n }\n }\n }\n constructor(apiClient, invoker) {\n super(apiClient, invoker);\n }\n}\n// Detect unloads to suppress \"request aborted\" failures (https://github.com/IntelliTect/Coalesce/issues/296).\nlet windowUnloading = false;\nwindow.addEventListener(\"beforeunload\", (e) => {\n windowUnloading = true;\n // unflag the unload after a moment in case it gets user-canceled\n setTimeout(() => (windowUnloading = false), 1000);\n});\nfunction purgeStaleCacheEntries(storage) {\n for (var i = 0; i < storage.length; i++) {\n const key = storage.key(i);\n if (!key.startsWith(\"coalesce:\"))\n continue;\n const item = storage.getItem(key);\n try {\n const { time, maxAge } = JSON.parse(item);\n if (typeof time != \"number\" || typeof maxAge != \"number\")\n continue;\n if (time < Date.now() / 1000 - maxAge) {\n storage.removeItem(key);\n i--;\n }\n }\n catch {\n // Do nothing - entry probably wasn't valid json and isn't a valid coalesce api response cache entry.\n }\n }\n}\npurgeStaleCacheEntries(localStorage);\npurgeStaleCacheEntries(sessionStorage);\nexport class ItemApiState extends ApiState {\n /** The metadata of the method being called, if it was provided. */\n $metadata;\n __validationIssues = ref(null);\n /** Validation issues returned by the previous request. */\n get validationIssues() {\n return this.__validationIssues.value;\n }\n set validationIssues(v) {\n this.__validationIssues.value = v;\n }\n __result = ref(null);\n /** Principal data returned by the previous request. */\n get result() {\n return this.__result.value;\n }\n set result(v) {\n this.__result.value = v;\n this.hasResult = v != null;\n }\n get rawResponse() {\n return super.rawResponse;\n }\n constructor(apiClient, invoker) {\n super(apiClient, invoker);\n }\n reset() {\n super.reset();\n this.result = null;\n this.validationIssues = null;\n if (this._objectUrl?.url) {\n URL.revokeObjectURL(this._objectUrl.url);\n this._objectUrl.url = undefined;\n this._objectUrl.target = undefined;\n this._objectUrl = undefined;\n }\n }\n _objectUrl;\n /** If the result is a blob or file, returns an Object URL representing that result.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n * @param vue A Vue instance through which the lifecycle of the object URL will be managed.\n */\n getResultObjectUrl(vue = getCurrentInstance()?.proxy) {\n const result = this.result;\n if (result == this._objectUrl?.target) {\n // We have a stored URL, and the current result is what that URL was made for.\n // OR, we have no stored URL, and the current result is also null-ish.\n // Return that stored URL.\n // @ts-expect-error TS can't infer that this is correct.\n return this._objectUrl?.url;\n }\n if (this._objectUrl?.url) {\n // If we got this far and we have a stored URL, it doesn't match the current result.\n // Destroy that URL and then we'll make a new one.\n URL.revokeObjectURL(this._objectUrl?.url);\n }\n if (!(result instanceof Blob))\n return undefined;\n // Result is useful as an object url. Make one!\n this._objectUrl ??= {\n hooked: new WeakSet(),\n active: 0,\n };\n const objUrl = this._objectUrl;\n objUrl.url = URL.createObjectURL(result);\n objUrl.target = result;\n if (vue && !objUrl.hooked.has(vue)) {\n objUrl.active++;\n objUrl.hooked.add(vue);\n onBeforeUnmount(() => {\n objUrl.active--;\n if (objUrl.url && objUrl.active == 0) {\n URL.revokeObjectURL(objUrl.url);\n objUrl.url = undefined;\n objUrl.target = undefined;\n }\n }, getInternalInstance(vue));\n }\n // @ts-expect-error TS can't figure out that we correctly narrowed on TResult here.\n return this._objectUrl.url;\n }\n setResponseProps(data) {\n this.wasSuccessful = data.wasSuccessful;\n this.message = data.message || null;\n if (\"validationIssues\" in data) {\n this.validationIssues = data.validationIssues || null;\n }\n else {\n this.validationIssues = null;\n }\n if (\"object\" in data) {\n this.result = data.object ?? null;\n }\n else {\n this.result = null;\n }\n this.hasResult = this.result != null;\n }\n}\nexport class ItemApiStateWithArgs extends ItemApiState {\n argsFactory;\n argsInvoker;\n __args = ref();\n /** Values that will be used as arguments if the method is invoked with `this.invokeWithArgs()`. */\n get args() {\n return this.__args.value;\n }\n set args(v) {\n this.__args.value = v;\n }\n reset(resetArgs = true) {\n super.reset();\n if (resetArgs) {\n this.resetArgs();\n }\n }\n /** Invokes a call to this API endpoint.\n * If `args` is not provided, the values in `this.args` will be used for the method's parameters. */\n invokeWithArgs(args = this.args) {\n // Copy args so that if we're debouncing,\n // the args at the point in time at which invokeWithArgs() was\n // called will be used, rather than the state at the time when the actual API call gets made.\n args = { ...args };\n return this._invokeInternal(this, this.argsInvoker, [args]);\n }\n /** Replace `this.args` with a new, blank object containing default values (typically nulls) */\n resetArgs() {\n this.args = this.argsFactory();\n }\n /** Invoke a call to the API endpoint after an affirmative confirmation from the user.\n * If `args` is not provided, the values in `this.args` will be used for the method's parameters. */\n confirmInvokeWithArgs(message, args = this.args) {\n if (!confirm(message))\n return;\n return this.invokeWithArgs(args);\n }\n /** Returns the URL for the endpoint, including querystring parameters, if invoked using `this.args`. */\n get url() {\n const request = this.apiClient._observeRequests(() => {\n this.argsInvoker.apply(this, [this.apiClient, this.args]);\n }, false)[1][0].request;\n if (!request)\n return null;\n let url = AxiosClient.getUri(request);\n // Workaround for https://github.com/axios/axios/issues/2468.\n // Prepend the baseURL if not already present\n // (It might be present e.g. if the above issue gets fixed).\n let baseURL = AxiosClient.defaults.baseURL;\n if (baseURL && !url.startsWith(baseURL)) {\n url = baseURL.replace(/\\/+$/, \"\") + url;\n }\n return url;\n }\n constructor(apiClient, invoker, argsFactory, argsInvoker) {\n super(apiClient, invoker);\n this.argsFactory = argsFactory;\n this.argsInvoker = argsInvoker;\n this.resetArgs();\n }\n}\nexport class ListApiState extends ApiState {\n /** The metadata of the method being called, if it was provided. */\n $metadata;\n __page = ref(null);\n /** Page number returned by the previous request. */\n get page() {\n return this.__page.value;\n }\n set page(v) {\n this.__page.value = v;\n }\n __pageSize = ref(null);\n /** Page size returned by the previous request. */\n get pageSize() {\n return this.__pageSize.value;\n }\n set pageSize(v) {\n this.__pageSize.value = v;\n }\n __pageCount = ref(null);\n /** Page count returned by the previous request. */\n get pageCount() {\n return this.__pageCount.value;\n }\n set pageCount(v) {\n this.__pageCount.value = v;\n }\n __totalCount = ref(null);\n /** Total Count returned by the previous request. */\n get totalCount() {\n return this.__totalCount.value;\n }\n set totalCount(v) {\n this.__totalCount.value = v;\n }\n __result = ref(null);\n /** Principal data returned by the previous request. */\n get result() {\n return this.__result.value;\n }\n set result(v) {\n this.__result.value = v;\n }\n get rawResponse() {\n return super.rawResponse;\n }\n constructor(apiClient, invoker) {\n super(apiClient, invoker);\n }\n reset() {\n super.reset();\n this.result = null;\n this.totalCount = null;\n this.pageCount = null;\n this.pageSize = null;\n this.page = null;\n }\n setResponseProps(data) {\n this.wasSuccessful = data.wasSuccessful;\n this.message = data.message || null;\n this.page = data.page ?? null;\n this.pageSize = data.pageSize ?? null;\n this.pageCount = data.pageCount ?? null;\n this.totalCount = data.totalCount ?? null;\n if (\"list\" in data) {\n this.result = data.list || [];\n }\n else {\n this.result = null;\n }\n this.hasResult = this.result != null;\n }\n}\nexport class ListApiStateWithArgs extends ListApiState {\n argsFactory;\n argsInvoker;\n __args = ref();\n /** Values that will be used as arguments if the method is invoked with `this.invokeWithArgs()`. */\n get args() {\n return this.__args.value;\n }\n set args(v) {\n this.__args.value = v;\n }\n reset(resetArgs = true) {\n super.reset();\n if (resetArgs) {\n this.resetArgs();\n }\n }\n /** Invokes a call to this API endpoint.\n * If `args` is not provided, the values in `this.args` will be used for the method's parameters. */\n invokeWithArgs(args = this.args) {\n args = { ...args }; // Copy args so that if we're debouncing,\n // the args at the point in time at which invokeWithArgs() was\n // called will be used, rather than the state at the time when the actual API call gets made.\n return this._invokeInternal(this, this.argsInvoker, [args]);\n }\n /** Replace `this.args` with a new, blank object containing default values (typically nulls) */\n resetArgs() {\n this.args = this.argsFactory();\n }\n /** Invoke a call to the API endpoint after an affirmative confirmation from the user.\n * If `args` is not provided, the values in `this.args` will be used for the method's parameters. */\n confirmInvokeWithArgs(message, args = this.args) {\n if (!confirm(message))\n return;\n return this.invokeWithArgs(args);\n }\n constructor(apiClient, invoker, argsFactory, argsInvoker) {\n super(apiClient, invoker);\n this.argsFactory = argsFactory;\n this.argsInvoker = argsInvoker;\n this.resetArgs();\n }\n}\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nexport default stringToArray;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nexport default baseIsRegExp;\n","import baseIsRegExp from './_baseIsRegExp.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nexport default isRegExp;\n","import baseProperty from './_baseProperty.js';\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nexport default asciiSize;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nexport default unicodeSize;\n","import asciiSize from './_asciiSize.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeSize from './_unicodeSize.js';\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nexport default stringSize;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import baseToString from './_baseToString.js';\nimport castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport isObject from './isObject.js';\nimport isRegExp from './isRegExp.js';\nimport stringSize from './_stringSize.js';\nimport stringToArray from './_stringToArray.js';\nimport toInteger from './toInteger.js';\nimport toString from './toString.js';\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nexport default truncate;\n","import { onBeforeUnmount, reactive, ref, markRaw, getCurrentInstance, toRaw, watch, } from \"vue\";\nimport { resolvePropMeta } from \"./metadata.js\";\nimport { ModelApiClient, ListParameters, DataSourceParameters, ServiceApiClient, mapParamsToDto, } from \"./api-client.js\";\nimport { modelDisplay, propDisplay, convertToModel, mapToModel, mapToDtoFiltered, mapToDto, } from \"./model.js\";\nimport { ReactiveFlags_SKIP, getInternalInstance, IsVue2, IsVue3, } from \"./util.js\";\nimport { debounce } from \"lodash-es\";\n/*\nDESIGN NOTES\n - ViewModel deliberately does not have TMeta as a type parameter.\n The type of the metadata is always accessed off of TModel as TModel[\"$metadata\"].\n This makes the intellisense in IDEs quite nice. If TMeta is a type param,\n we end up with the type of implemented classes taking several pages of the intellisense tooltip.\n With this, we can still strongly type off of known information of TMeta (like PropNames<TModel[\"$metadata\"]>),\n but without cluttering up tooltips with the entire type structure of the metadata.\n*/\nlet nextStableId = 1;\nconst emptySet = new Set();\nexport class ViewModel {\n $metadata;\n $apiClient;\n /** See comments on ReactiveFlags_SKIP for explanation.\n * @internal\n */\n [ReactiveFlags_SKIP] = true;\n /** Static lookup of all generated ViewModel types. */\n static typeLookup = null;\n // TODO: Do $parent and $parentCollection need to be Set<>s in order to handle objects being in multiple collections or parented to multiple parents? Could be useful.\n /** @internal */\n $parent = null;\n /** @internal */\n $parentCollection = null;\n /** @internal Removed items, pending deletion in a bulk save */\n $removedItems;\n /**\n Underlying object which will hold the backing values\n of the custom getters/setters. Not for external use.\n Must exist in order to for Vue to pick it up and add reactivity.\n @internal\n */\n $data;\n /**\n * A number unique among all ViewModel instances that will be unchanged for the instance's lifetime.\n * Can be used to uniquely identify objects with `:key` in Vue components.\n *\n * Especially useful with `transition-group` where some elements of iteration may be unsaved\n * and therefore not yet have a `$primaryKey`.\n */\n $stableId;\n /**\n * Gets or sets the primary key of the ViewModel's data.\n */\n get $primaryKey() {\n return this[this.$metadata.keyProp.name];\n }\n set $primaryKey(val) {\n this[this.$metadata.keyProp.name] = val;\n }\n /**\n This bool could be computed from the size of the set,\n but this wouldn't trigger reactivity because Vue 2 doesn't have reactivity\n for types like Set and Map.\n @internal\n */\n _isDirty = ref(false);\n /** @internal */\n _dirtyProps = IsVue2\n ? new Set()\n : reactive(new Set());\n // Backwards-compat with vue2 nonreactive sets.\n // Typed as any because vue ref unwrapping causes problems with a prop that is a maybe ref.\n _dirtyPropsVersion = IsVue2 ? ref(0) : undefined;\n /**\n * Returns true if the values of the savable data properties of this ViewModel\n * have changed since the last load, save, or the last time $isDirty was set to false.\n */\n get $isDirty() {\n return this._isDirty.value;\n }\n set $isDirty(val) {\n if (!val) {\n this._dirtyProps.clear();\n if (IsVue2 && this._dirtyProps.size) {\n this._dirtyPropsVersion.value++;\n }\n this._isDirty.value = false;\n }\n else {\n // When explicitly setting the whole model dirty,\n // we don't know which specific prop might be dirty,\n // so just set them all.\n for (const propName in this.$metadata.props) {\n this.$setPropDirty(propName);\n }\n }\n }\n $setPropDirty(propName, dirty = true, triggerAutosave = true) {\n const propMeta = this.$metadata.props[propName];\n if (propMeta.dontSerialize) {\n return;\n }\n if (dirty) {\n this._dirtyProps.add(propName);\n if (IsVue2)\n this._dirtyPropsVersion.value++;\n this._isDirty.value = true;\n if (triggerAutosave && this._autoSaveState?.value?.active) {\n // If dirty, and autosave is enabled, queue an evaluation of autosave.\n this._autoSaveState.value.trigger?.();\n }\n }\n else {\n this._dirtyProps.delete(propName);\n if (IsVue2)\n this._dirtyPropsVersion.value++;\n if (!this._dirtyProps.size) {\n this._isDirty.value = false;\n }\n }\n }\n $getPropDirty(propName) {\n if (IsVue2)\n this._dirtyPropsVersion?.value;\n return this._dirtyProps.has(propName);\n }\n /** @internal */\n _params = ref(new DataSourceParameters());\n /** The parameters that will be passed to `/get`, `/save`, and `/delete` calls. */\n get $params() {\n return this._params.value;\n }\n set $params(val) {\n this._params.value = val;\n }\n /** Wrapper for `$params.dataSource` */\n get $dataSource() {\n return this.$params.dataSource;\n }\n set $dataSource(val) {\n this.$params.dataSource = val;\n }\n /** Wrapper for `$params.includes` */\n get $includes() {\n return this.$params.includes;\n }\n set $includes(val) {\n this.$params.includes = val;\n }\n /** An object whose values are booleans that specify whether a given validation rule should be ignored,\n * and whose keys are one of the following formats:\n * - `\"propName.ruleName\"` - ignores the given rule on the given property.\n * - `\"propName.*\"` - ignores rules of the given propName on all properties\n * @internal\n */\n $ignoredRules = null;\n /**\n * A two-layer map, the first layer being property names and the second layer being rule identifiers,\n * of custom validation rules that should be applied to this viewmodel instance.\n * @internal\n */\n $customRules = null;\n /**\n * Cached set of the effective rules for each property on the model.\n * Will be invalidated when custom rules and/or ignores are changed.\n * @internal\n */\n _effectiveRules = null;\n /** @internal */\n get $effectiveRules() {\n let effectiveRules = this._effectiveRules;\n if (effectiveRules)\n return effectiveRules;\n effectiveRules = {};\n for (const propName in this.$metadata.props) {\n const prop = this.$metadata.props[propName];\n const custom = this.$customRules?.[propName];\n const propRules = [];\n if (\"rules\" in prop) {\n const ignored = this.$ignoredRules;\n const rules = prop.rules;\n // Process metadata-provided rules\n for (const ruleName in rules) {\n // Process ignores\n if (ignored) {\n if (ignored[`${propName}.${ruleName}`] ||\n ignored[`${propName}.*`]) {\n continue;\n }\n }\n // If the prop has custom rules, and there is a custom rule\n // with the same identifier as a metadata-provided rule,\n // do not process the metadata-provided rule.\n if (custom && custom[ruleName]) {\n continue;\n }\n const ruleFn = rules[ruleName];\n ruleFn.ruleName = ruleName;\n propRules.push(ruleFn);\n }\n }\n // Process custom rules.\n if (custom) {\n for (const ruleName in custom) {\n const ruleFn = custom[ruleName];\n ruleFn.ruleName = ruleName;\n propRules.push(ruleFn);\n }\n }\n if (propRules.length) {\n effectiveRules[propName] = propRules;\n }\n }\n return (this._effectiveRules = effectiveRules);\n }\n $addRule(prop, identifier, rule) {\n const propName = typeof prop == \"string\" ? prop : prop.name;\n // Add this as a custom rule.\n // Because rules are keyed by propName and identifier,\n // the rule will not be duplicated.\n this.$customRules = {\n ...this.$customRules,\n [propName]: {\n ...this.$customRules?.[propName],\n [identifier]: rule,\n },\n };\n // Remove any ignore for this rule, if there is one:\n const ignoreSpec = `${propName}.${identifier}`;\n if (this.$ignoredRules && ignoreSpec in this.$ignoredRules) {\n let { [ignoreSpec]: removed, ...remainder } = this.$ignoredRules;\n this.$ignoredRules = remainder;\n }\n // Force recompute of effective rules.\n this._effectiveRules = null;\n }\n $removeRule(prop, identifier) {\n const propName = typeof prop == \"string\" ? prop : prop.name;\n // Remove any custom rule that may match this spec.\n const propRules = this.$customRules?.[propName];\n if (propRules) {\n let { [identifier]: removed, ...remainder } = propRules;\n this.$customRules = {\n ...this.$customRules,\n [propName]: remainder,\n };\n }\n // Add an ignore to override any rules that are coming from metadata.\n this.$ignoredRules = {\n ...this.$ignoredRules,\n [`${propName}.${identifier}`]: true,\n };\n // Force recompute of effective rules.\n this._effectiveRules = null;\n }\n /** Returns an array of all applicable rules for the given property\n in accordance with:\n - The rules defined for the model's properties' metadata,\n - Custom rules added by calling `$addRule`\n - Any rules that where ignored by calling `this.$removeRule`,*/\n $getRules(prop) {\n return this.$effectiveRules[typeof prop == \"string\" ? prop : prop.name];\n }\n /** Returns a generator that provides all error messages for the current model\n in accordance with:\n - The rules defined for the model's properties' metadata,\n - Custom rules added by calling `$addRule`\n - Any rules that where ignored by calling `this.$removeRule`,\n */\n *$getErrors(prop) {\n if (prop) {\n const propName = typeof prop == \"string\" ? prop : prop.name;\n const effectiveRules = this.$effectiveRules[propName];\n if (!effectiveRules)\n return;\n for (const rule of effectiveRules) {\n const result = rule(this.$data[propName]);\n if (result !== true)\n yield result;\n }\n }\n else {\n for (const propName in this.$effectiveRules) {\n yield* this.$getErrors(propName);\n }\n }\n }\n /** True if `this.$getErrors()` is returning at least one error. */\n get $hasError() {\n return !!this.$getErrors().next().value;\n }\n /**\n * A function for invoking the `/get` endpoint, and a set of properties about the state of the last call.\n */\n get $load() {\n const $load = this.$apiClient.$makeCaller(\"item\", (c, id) => {\n const startTime = performance.now();\n return c\n .get(id != null ? id : this.$primaryKey, this.$params)\n .then((r) => {\n const result = r.data.object;\n if (result) {\n // We do `purgeUnsaved` (arg2) here, since $load() is always an explicit user action\n // that may be serving as a \"reset\" of local state.\n this.$loadFromModel(result, startTime, true);\n }\n return r;\n });\n });\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$load\", { value: $load });\n return $load;\n }\n /** Whether or not to reload the ViewModel's `$data` with the response received from the server after a call to .$save(). */\n $loadResponseFromSaves = true;\n /** Whether to save the whole object, or only properties which are dirty.\n * - `surgical` - save only properties that are flagged as dirty (default).\n * - `whole` - save all properties on the object.\n */\n $saveMode = \"surgical\";\n /** @internal */\n _savingProps = ref(emptySet);\n /** When `$save.isLoading == true`, contains the properties of the model currently being saved by `$save` (including autosaves).\n *\n * Does not include non-dirty properties even if `$saveMode == 'whole'`.\n */\n get $savingProps() {\n return this._savingProps.value;\n }\n set $savingProps(value) {\n this._savingProps.value = value;\n }\n /**\n * A function for invoking the `/save` endpoint, and a set of properties about the state of the last call.\n */\n get $save() {\n const $save = this.$apiClient\n .$makeCaller(\"item\", async function (c, overrideProps) {\n if (this.$hasError) {\n throw Error(joinErrors(this.$getErrors()));\n }\n // Capture the dirty props before we set $isDirty = false;\n const dirtyProps = [...this._dirtyProps];\n // Copy the dirty props into a list that we'll be mutating\n // into the list of ALL props that we would need to send\n // for surgical saves.\n const propsToSave = [...dirtyProps];\n // If we were passed any override props, send those too.\n // Use case of override props is changing some field\n // where we don't want the local UI to reflect that new value\n // until we know that value has been saved to the server.\n // A further example is saving some property that will have sever-determined effects\n // on other properties on the model where we don't want an inconsistent intermediate state.\n let data = this;\n if (overrideProps) {\n data = {\n ...this.$data,\n ...overrideProps,\n $metadata: this.$metadata,\n };\n propsToSave.push(...Object.keys(overrideProps));\n }\n // We always send the PK if it exists, regardless of dirty status or save mode.\n if (this.$primaryKey != null) {\n propsToSave.push(this.$metadata.keyProp.name);\n }\n this.$savingProps = new Set(propsToSave);\n // If doing surgical saves,\n // only save the props that are dirty and/or explicitly requested.\n const fields = this.$saveMode == \"surgical\"\n ? [...this.$savingProps]\n : null;\n // Before we make the save call, set isDirty = false.\n // This lets us detect changes that happen to the model while our save request is pending.\n // If the model is dirty when the request completes, we'll not load the response from the server.\n this.$isDirty = false;\n try {\n return await c.save(data, { ...this.$params, fields });\n }\n catch (e) {\n for (const prop of dirtyProps) {\n this.$setPropDirty(prop, true, \n // Don't re-trigger autosave on save failure.\n // Wait for next prop change to trigger it again.\n // Otherwise, if the wait timeout is zero,\n // the save will keep triggering as fast as possible.\n // Note that this could be a candidate for a user-customizable option\n // in the future.\n false);\n }\n this.$savingProps = emptySet;\n throw e;\n }\n })\n .onFulfilled(function () {\n if (!this.$save.result) {\n // Can't do anything useful if the save returned no data.\n return;\n }\n this.$savingProps = emptySet;\n if (!this.$loadResponseFromSaves) {\n // The PK *MUST* be loaded so that the PK returned by a creation save call\n // will be used by subsequent update calls.\n this.$primaryKey = this.$save.result[this.$metadata.keyProp.name];\n }\n else {\n // Do NOT purgeUnsaved here (arg2), as this save may be one of many saves\n // occurring in a large object graph where there are unsaved objects that will be imminently saved.\n this.$loadFromModel(this.$save.result, performance.now());\n this.updateRelatedForeignKeysWithCurrentPrimaryKey();\n }\n });\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$save\", { value: $save });\n return $save;\n }\n /**\n * A function for invoking the `/bulkSave` endpoint, and a set of properties about the state of the last call.\n *\n * A bulk save will save/delete this entity and all reachable relationships in a single round trip and database transaction.\n */\n get $bulkSave() {\n const $bulkSave = this.$apiClient.$makeCaller(\"item\", async function (c, options) {\n const { items: itemsToSend, rawItems: dataToSend, errors, _allItems: dataByRef, } = this.$bulkSavePreview(options);\n if (errors.length) {\n // Somewhat user-friendly error: this could be shown in a c-loader-status\n // if a developer isn't eagerly checking validation before enabling a save button:\n throw Error(joinErrors(errors));\n }\n const ret = await c.bulkSave({ items: itemsToSend }, { ...this.$params });\n if (ret.data?.wasSuccessful) {\n // Load models with their new primary key so that instances can be uniquely\n // identified when loading them with the data returned by the client,\n // allowing the original ViewModel instances to be preserved instead of being replaced.\n // `refMap` maps `ref` values to the resulting primary key produced by the server.\n const refMap = ret.data.refMap;\n for (const ref in refMap) {\n const model = dataByRef.get(+ref)?.model;\n if (model)\n model.$primaryKey = refMap[ref];\n }\n const result = ret.data.object;\n if (result) {\n const age = performance.now();\n // `purgeUnsaved = true` here (arg3) since the bulk save should have covered the entire object graph.\n // Wiping out unsaved items will help developers discover bugs where their root model's data source\n // does not correctly include the whole object graph that they're saving (which is expected for bulk saves)\n this.$loadFromModel(result, age, true);\n const unloadedTypes = new Set(dataToSend\n .filter((d) => d.action == \"save\" &&\n d.model._dataAge != age &&\n // We currently don't have a good way to reload additionalRoots items.\n !options?.additionalRoots?.includes(d.model))\n .map((d) => d.model.$metadata.name));\n if (unloadedTypes.size > 0) {\n console.warn(`One or more ${[...unloadedTypes.values()].join(\" and \")} items were saved by a bulk save, but were not returned by the response. The Data Source of the bulk save target may not be returning all entities.`);\n }\n }\n }\n return ret;\n });\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$bulkSave\", { value: $bulkSave });\n return $bulkSave;\n }\n /** Returns the payload that will be used for the `$bulkSave` operation.\n *\n * Useful for driving UI state like preemptively showing errors,\n * or determining if there are any objects with pending modifications.\n */\n $bulkSavePreview(options) {\n /** The models to traverse for relations in the next iteration of the outer loop. */\n let nextModels = [this];\n if (options?.additionalRoots) {\n nextModels.push(...options.additionalRoots);\n }\n const dataByRef = new Map();\n const getData = (model) => {\n let ret = dataByRef.get(model.$stableId);\n if (!ret)\n dataByRef.set(model.$stableId, (ret = {\n model,\n metadata: model.$metadata,\n action: \"none\",\n isRoot: false,\n isEssential: false,\n visited: false,\n refs: {\n // The model's $stableId will be referenced by other objects.\n // It is recorded as the object's primary key ref value.\n [model.$metadata.keyProp.name]: model.$stableId,\n // Other foreign key names here will be added that reference\n // the $stableId of the principal end of the relationship\n // The server will use these values to link these two objects together.\n },\n }));\n return ret;\n };\n // Traverse all models reachable from `this`,\n // collecting those that need to be saved or deleted.\n while (nextModels.length) {\n const currentModels = nextModels;\n nextModels = [];\n for (const model of currentModels) {\n if (!model)\n continue;\n const data = getData(model);\n if (data.visited)\n continue;\n data.visited = true;\n const meta = model.$metadata;\n if (model.$removedItems) {\n // `model.$removedItems` will contain items that were `.$remove()`d while having `model` as a `$parent`.\n nextModels.push(...model.$removedItems);\n }\n data.isRoot = model == this;\n for (const propName in meta.props) {\n const prop = meta.props[propName];\n if (prop.role == \"collectionNavigation\") {\n const dependents = model.$data[prop.name];\n if (dependents) {\n nextModels.push(...dependents);\n }\n }\n else if (prop.role == \"referenceNavigation\") {\n let principal = model.$data[prop.name];\n // If the prop is a reference navigation that has no foreign key,\n // then the ref will link the foreign key prop to the principal entity,\n // allowing the server to fixup the foreign key once the principal is created.\n if (\n // If the foreign key has a value then we don't need a ref.\n // Bail early.\n model.$data[prop.foreignKey.name] != null) {\n nextModels.push(principal);\n continue;\n }\n const collection = model.$parentCollection;\n if (!principal &&\n collection?.$parent instanceof ViewModel &&\n collection.$metadata == prop.inverseNavigation) {\n // The reference navigation property has no value,\n // and the foreign key has no value,\n // but the model is contained in a collection navigation property,\n // and that collection is the inverse navigation of this reference navigation,\n // so it must reference the parent of that collection.\n // This scenario enables adding a new item to a collection navigation\n // without setting either the foreign key or the nav prop on that new child.\n principal = collection.$parent;\n }\n nextModels.push(principal);\n if (principal &&\n !principal._isRemoved &&\n !model._isRemoved &&\n (model.$isDirty || !model._existsOnServer)) {\n if (\n // The principal is not yet saved, but will be saved.\n (!principal._existsOnServer &&\n options?.predicate?.(principal, \"save\") !== false) ||\n // The principal object already exists, but the FK isn't dirty.\n // This may mean the principal object was late loaded which bypasses FK fixup,\n // or it means that a blank, empty dependent object was added to the principal's collection nav.\n (principal._existsOnServer &&\n !model.$getPropDirty(prop.foreignKey.name))) {\n data.refs[prop.foreignKey.name] = principal.$stableId;\n getData(principal).isEssential = true;\n }\n }\n }\n }\n }\n }\n const dataToSend = [];\n const itemsToSend = [];\n let isDirty = false;\n const errors = [];\n for (const [_, data] of dataByRef) {\n const model = data.model;\n // Non-dirty, non-deleted items are sent as \"none\".\n // This exists so that the root item(that will be sent as the response\n // from the server) can be identified even if it isn't being modified.\n let action = \"none\";\n if (model._isRemoved) {\n action = model._existsOnServer\n ? \"delete\" // Delete items that have a PK are sent as a delete\n : \"none\"; // Do not send removed items that never had a PK.\n }\n else {\n // Save items that are dirty, or never saved, or have unresolved refs in the payload\n if (model.$isDirty ||\n !model._existsOnServer ||\n Object.entries(data.refs).some(([key, ref]) => {\n return key != model.$metadata.keyProp.name;\n })) {\n action = \"save\";\n }\n }\n // Include the root item and any items being changed.\n if (action == \"none\" && !data.isRoot && !data.isEssential) {\n continue;\n }\n // Apply the user-supplied predicate to each item.\n if (action !== \"none\" && options?.predicate?.(model, action) === false) {\n continue;\n }\n data.action = action;\n dataToSend.push(data);\n const metadata = data.metadata;\n const props = metadata.props;\n if (action == \"delete\") {\n isDirty = true;\n }\n else if (action == \"save\") {\n isDirty = true;\n for (const [propName, rules] of Object.entries(model.$effectiveRules)) {\n const propMeta = props[propName];\n for (const rule of rules || []) {\n const result = rule(model[propName]);\n if (result !== true) {\n if (rule.ruleName == \"required\" &&\n propMeta.role == \"foreignKey\" &&\n propName in data.refs) {\n // We have to allow for missing foreign keys\n // when the foreign key is missing but has a `ref`\n // that will be fixed up on the server as part of the bulk save operation.\n // Skip the failure of this rule.\n continue;\n }\n data.errors ??= [];\n data.errors.push(result);\n errors.push(result);\n }\n }\n }\n }\n itemsToSend.push({\n type: metadata.name,\n action,\n refs: data.refs,\n root: data.isRoot ? true : undefined,\n data: action == \"none\" || action == \"delete\"\n ? // \"none\" and \"delete\" items only need their PK:\n mapToDtoFiltered(model, [metadata.keyProp.name])\n : model.$saveMode == \"surgical\"\n ? mapToDtoFiltered(model, [\n ...model._dirtyProps,\n metadata.keyProp.name,\n ])\n : mapToDto(model),\n });\n }\n return {\n /** True if there are any models with a pending save or delete. */\n isDirty,\n /** The actual data to be sent in the API request. */\n items: itemsToSend,\n /** Full representation of the items that will be sent in the bulk save request. */\n rawItems: dataToSend,\n /** Aggregation of all errors contained within `rawItems`. */\n errors,\n /** @internal */\n _allItems: dataByRef,\n };\n }\n /** @internal */\n updateRelatedForeignKeysWithCurrentPrimaryKey() {\n const pkValue = this.$primaryKey;\n // Look through collection navigations.\n // Set the corresponding foreign key of all entities to the current PK value.\n for (const prop of Object.values(this.$metadata.props)) {\n if (prop.role != \"collectionNavigation\")\n continue;\n const value = this[prop.name];\n if (value?.length) {\n const fk = prop.foreignKey.name;\n for (const child of value) {\n child[fk] = pkValue;\n }\n }\n }\n if (this.$parent?.$metadata?.props) {\n const parent = this.$parent;\n for (const prop of Object.values(parent.$metadata.props)) {\n if (prop.role != \"referenceNavigation\")\n continue;\n // The prop on the parent is a reference navigation.\n // If the value of the navigation is ourself,\n // update the foreign key on the $parent with our new PK.\n //@ts-expect-error undefined indexer\n const value = parent[prop.name];\n if (value === this) {\n //@ts-expect-error undefined indexer\n parent[prop.foreignKey.name] = pkValue;\n }\n }\n }\n }\n /** @internal */\n _dataAge = 0;\n /**\n * Loads data from the provided model into the current ViewModel,\n * and then clears the $isDirty flag if `isCleanData` is not given as `false`.\n *\n * Data is loaded in a surgical fashion that will preserve existing instances\n * of objects and arrays found on navigation properties.\n */\n $loadFromModel(source, isCleanData = true, purgeUnsaved = false) {\n if (this.$isDirty && this._autoSaveState?.value?.active) {\n updateViewModelFromModel(this, source, true, isCleanData, false, true);\n }\n else {\n updateViewModelFromModel(this, source, false, isCleanData, purgeUnsaved, true);\n if (isCleanData) {\n this.$isDirty = false;\n }\n }\n }\n /**\n * Loads data from the provided model into the current ViewModel, and then clears $isDirty flags.\n *\n * Data is loaded in a surgical fashion that will preserve existing instances\n * of objects and arrays found on navigation properties.\n */\n $loadCleanData(source, purgeUnsaved = false) {\n return this.$loadFromModel(source, true, purgeUnsaved);\n }\n /**\n * Loads data from the provided model into the current ViewModel.\n * Does not clear $isDirty flags.\n *\n * Data is loaded in a surgical fashion that will preserve existing instances\n * of objects and arrays found on navigation properties.\n */\n $loadDirtyData(source) {\n return this.$loadFromModel(source, false, false);\n }\n /**\n * A function for invoking the `/delete` endpoint, and a set of properties about the state of the last call.\n */\n get $delete() {\n const $delete = this.$apiClient\n .$makeCaller(\"item\", function (c) {\n if (this._existsOnServer) {\n return c.delete(this.$primaryKey, this.$params);\n }\n else {\n this._removeFromParentCollection();\n }\n })\n .onFulfilled(function () {\n this._removeFromParentCollection();\n });\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$delete\", { value: $delete });\n return $delete;\n }\n /** @internal */\n _removeFromParentCollection() {\n if (this.$parentCollection) {\n const idx = this.$parentCollection.indexOf(this);\n if (idx > -1) {\n const item = this.$parentCollection.splice(idx, 1)[0];\n return item;\n }\n }\n }\n /** @internal */\n get _existsOnServer() {\n if (!this.$primaryKey) {\n return false;\n }\n if (this.$metadata.keyProp.createOnly &&\n this.$getPropDirty(this.$metadata.keyProp.name)) {\n // PK is client-provided (not server generated), and is dirty.\n // Therefore, this is just the local state of the PK that has not yet been saved.\n return false;\n }\n return true;\n }\n /** Whether the item has been removed via `$remove()` and is pending for deletion in the next bulk save.\n * @internal\n * */\n _isRemoved = false;\n get $isRemoved() {\n return this._isRemoved; // does this need to be reactive?\n }\n /** Mark this model for deletion in the next `$bulkSave` operation performed on an ancestor.\n *\n * If this item has a parent collection, it will be immediately removed from that collection.\n * */\n $remove() {\n if (!this.$parent) {\n throw new Error(`Unable to remove ${this.$metadata.name}: item has no parent to be removed from.`);\n }\n this._isRemoved = true;\n this._removeFromParentCollection();\n if (this.$parent instanceof ViewModel) {\n (this.$parent.$removedItems ??= []).push(this);\n }\n }\n /** @internal Internal autosave state. */\n // Deliberately uninitialized ref to avoid allocations when nothing is listening.\n _autoSaveState;\n /**\n * Starts auto-saving of the instance when changes to its savable data properties occur.\n * Only usable from Vue setup() or `script setup`. Otherwise, use $startAutoSave().\n * @param options Options to control how the auto-saving is performed.\n */\n $useAutoSave(options = {}) {\n const vue = getCurrentInstance()?.proxy;\n if (!vue)\n throw new Error(\"$useAutoSave can only be used inside setup(). Consider using $startAutoSave if you're not using Vue composition API.\");\n return this.$startAutoSave(vue, options);\n }\n /**\n * Starts auto-saving of the instance when changes to its savable data properties occur.\n * @param vue A Vue instance through which the lifecycle of the watcher will be managed.\n * @param options Options to control how the auto-saving is performed.\n */\n $startAutoSave(vue, options = {}) {\n let state = this._autoSaveState?.value;\n if (state?.active && state.options === options) {\n // If already active using the exact same options object, don't restart.\n // This prevents infinite recursion when setting up deep autosaves.\n return;\n }\n const { wait = 1000, predicate = undefined, debounce: debounceOptions, } = options;\n this.$stopAutoSave();\n state = new AutoCallState();\n state.options = options;\n if (this._autoSaveState) {\n this._autoSaveState.value = state;\n }\n else {\n this._autoSaveState = ref(state);\n }\n let ranOnce = false;\n const enqueueSave = debounce(() => {\n if (!state?.active)\n return;\n /*\n Try and save if:\n 1) The model is dirty\n 2) The model lacks a primary key, and we haven't yet tried to save it\n since autosave was enabled. We should only ever try to do this once\n in case the Behaviors on the server are for some reason not configured\n to return responses from saves. We also don't do this if $load has ever\n been attempted, because if it is has then this means there's an expectation\n that the object does already exist on the server and might mean that\n $load(somePkValue) was called (and so if we did a save, it would create an\n object with a new PK)\n */\n if (this.$isDirty ||\n (!ranOnce && !this.$primaryKey && this.$load.wasSuccessful === null)) {\n if (this.$hasError || (predicate && !predicate(this))) {\n // There are validation errors, or a user-defined predicate failed.\n // Do nothing, and don't enqueue another attempt.\n // The next attempt will be enqueued the next time a change is made to the data.\n return;\n }\n if (this.$save.isLoading || this.$load.isLoading) {\n // Save already in progress, or model is currently loading.\n // Enqueue another attempt.\n enqueueSave();\n return;\n }\n // Everything should be good to go. Go forth and save!\n ranOnce = true;\n this.$save()\n // After the save finishes, attempt another autosave.\n // If the model has become dirty since the last save,\n // we need to save again.\n // This will happen if the state of the model changes while the save\n // is in-flight.\n .then(enqueueSave)\n // We need a catch block so all of this is testable.\n // Otherwise, jest will fail tests as soon as it sees an unhandled promise rejection.\n .catch(() => { });\n }\n }, Math.max(1, wait), debounceOptions);\n let isPending = false;\n state.trigger = function () {\n if (isPending)\n return;\n isPending = true;\n // This MUST happen on next tick in case $isDirty was set to true automatically\n // and is about to be manually (or by $loadFromModel) set to false.\n vue.$nextTick(() => {\n isPending = false;\n enqueueSave();\n });\n };\n startAutoCall(state, vue, undefined, enqueueSave);\n state.trigger();\n if (options.deep) {\n for (const propName in this.$metadata.props) {\n const prop = this.$metadata.props[propName];\n if (prop.role == \"collectionNavigation\") {\n if (this[propName]) {\n for (const child of this[propName]) {\n child.$startAutoSave(vue, options);\n }\n }\n }\n else if (prop.role == \"referenceNavigation\") {\n this[propName]?.$startAutoSave(vue, options);\n }\n }\n }\n }\n /** Stops auto-saving if it is currently enabled. */\n $stopAutoSave() {\n this._autoSaveState?.value?.cleanup?.();\n }\n /** Returns true if auto-saving is currently enabled. */\n get $isAutoSaveEnabled() {\n // Initialize the ref if not already initialized so we can track future writes.\n if (!this._autoSaveState) {\n this._autoSaveState = ref();\n return false;\n }\n return this._autoSaveState?.value?.active;\n }\n /**\n * Returns a string representation of the object, or one of its properties, suitable for display.\n * @param prop If provided, specifies a property whose value will be displayed.\n * @param options Options for formatting the displayed value.\n * If omitted, the whole object will be represented.\n */\n $display(prop, options) {\n if (!prop)\n return modelDisplay(this, options);\n return propDisplay(this, prop, options);\n }\n /**\n * Creates a new instance of an item for the specified child model collection,\n * adds it to that collection, and returns the item.\n * @param prop The name of the collection property, or the metadata representing it.\n */\n $addChild(prop, initialDirtyData) {\n const propMeta = resolvePropMeta(this.$metadata, prop);\n var collection = this[propMeta.name];\n if (!Array.isArray(collection)) {\n this[propMeta.name] = [];\n collection = this[propMeta.name];\n }\n if (propMeta.role == \"collectionNavigation\") {\n // The ViewModelCollection will handle creating a new ViewModel,\n // and setting $parent, $parentCollection.\n const newViewModel = collection[collection.push(mapToModel({}, propMeta.itemType.typeDef)) - 1];\n if (initialDirtyData) {\n newViewModel.$loadDirtyData(initialDirtyData);\n }\n //@ts-expect-error untyped indexer\n newViewModel[propMeta.foreignKey.name] = this.$primaryKey;\n // Populate the navigation property on the new child as well\n // so that navigation property fixup can work with bulk saves.\n if (propMeta.foreignKey.navigationProp) {\n //@ts-expect-error untyped indexer\n newViewModel[propMeta.foreignKey.navigationProp.name] = this;\n }\n return newViewModel;\n }\n else {\n throw \"$addChild only adds to collections of model properties.\";\n }\n }\n constructor(\n // The following MUST be declared in the constructor so its value will be available to property initializers.\n /** The metadata representing the type of data that this ViewModel handles. */\n $metadata, \n /** Instance of an API client for the model through which direct, stateless API requests may be made. */\n $apiClient, initialDirtyData) {\n this.$metadata = $metadata;\n this.$apiClient = $apiClient;\n this.$data = reactive(convertToModel({}, $metadata));\n Object.defineProperty(this, \"$stableId\", {\n enumerable: true, // Enumerable so visible in vue devtools\n configurable: false,\n value: nextStableId++,\n writable: false,\n });\n const ctor = this.constructor;\n if (initialDirtyData) {\n this.$loadDirtyData(initialDirtyData);\n }\n else {\n if (ctor.collectionProps !== false) {\n if (!ViewModelFactory.isInScope) {\n // Only initialize collections if we're not in a ViewModelFactory scope.\n // If we ARE in a scope, there's a guaranteed call to $loadFromModel.\n if (ctor.collectionProps === undefined) {\n ctor.collectionProps = Object.values($metadata.props).filter((prop) => prop.type == \"collection\" && prop.itemType.type == \"model\");\n }\n for (const prop of ctor.collectionProps) {\n // Pass null directly through to the VM's setter.\n // The VM's setter will then populate the VM's data with an empty array rather than null.\n this[prop.name] = null;\n }\n if (!ctor.collectionProps) {\n ctor.collectionProps = false;\n }\n }\n }\n }\n if (ctor.hasPropDefaults !== false) {\n for (const prop of Object.values($metadata.props)) {\n if (\"defaultValue\" in prop) {\n ctor.hasPropDefaults ??= true;\n if (!initialDirtyData || !(prop.name in initialDirtyData)) {\n this[prop.name] = prop.defaultValue;\n }\n }\n }\n // Cache that this type doesn't have prop defaults so we don't\n // ever have to loop over the props looking for them on future instances.\n ctor.hasPropDefaults ??= false;\n }\n }\n}\nexport class ListViewModel {\n $metadata;\n $apiClient;\n /** Make nonreactive with Vue, preventing ViewModel instance from being wrapped with a Proxy.\n * Instead, we make individual members reactive with `reactive`/`ref`.\n *\n * We have to do this because `reactive` doesn't play nice with prototyped objects.\n * Any sets to a setter on the ViewModel class will trigger the reactive proxy,\n * and since the setter is defined on the prototype and Vue checks hasOwnProperty\n * when determining if a field is new on an object, all setters trigger reactivity\n * even if the value didn't change.\n * @internal\n */\n [ReactiveFlags_SKIP] = true;\n /** Static lookup of all generated ListViewModel types. */\n static typeLookup = null;\n /** @internal */\n _params = ref(new ListParameters());\n /** The parameters that will be passed to `/list` and `/count` calls. */\n get $params() {\n return this._params.value;\n }\n set $params(val) {\n this._params.value = val;\n }\n /** Wrapper for `$params.dataSource` */\n get $dataSource() {\n return this.$params.dataSource;\n }\n set $dataSource(val) {\n this.$params.dataSource = val;\n }\n /** Wrapper for `$params.includes` */\n get $includes() {\n return this.$params.includes;\n }\n set $includes(val) {\n this.$params.includes = val;\n }\n /**\n * @internal\n */\n _lightweight = false;\n /** The plain model items that have been loaded into this ListViewModel.\n * These instances do not reflect any changes made to the contents of `$items`.\n */\n get $modelItems() {\n return this.$load.result || [];\n }\n /** Returns true if `$modelOnlyMode` has been enabled. */\n get $modelOnlyMode() {\n return this._lightweight;\n }\n /**\n * Put the ListViewModel into a lightweight mode where `$items` is not populated with ViewModel instances.\n * Result can instead be read from `$modelItems`.\n *\n * This mode allows much better performance when loading large numbers of items, especially in read-only contexts.\n */\n set $modelOnlyMode(val) {\n if (!val) {\n throw new Error(\"Model-only mode cannot be disabled once enabled.\");\n }\n this._lightweight = true;\n this._items.value = undefined;\n }\n /**\n * The current set of items that have been loaded into this ListViewModel.\n * @internal\n */\n _items = ref();\n get $items() {\n let value = this._items.value;\n if (!value) {\n if (this._lightweight) {\n throw new Error(\"The ListViewModel instance is in model-only mode. Items may only be retrieved from `.$modelItems`, not `.$items`.\");\n }\n value = new ViewModelCollection(this.$metadata, this);\n // In order to avoid vue seeing that we mutated a `ref` in a getter,\n // replace the entire ref when doing this lazy initialization.\n // See test \"$items initializer doesn't trigger reactivity\".\n this._items = ref(value);\n if (IsVue2) {\n // bugfix: in vue2, since $items is wrapping over a `ref` and this is the getter\n // and should therefore act as a read of the ref, we need to force a read\n // of the ref to track a dependency on `_items` on behalf of whatever accessed `$items`.\n // This is only necessary in Vue2 because the ViewModelCollection instance won't be made\n // reactive until it is assigned into a reactive object (like a ref).\n // See test \"$items is reactive when first usage is a read\"\n this._items.value.length.toString();\n }\n }\n return value;\n }\n set $items(val) {\n if (this._lightweight) {\n throw new Error(\"The ListViewModel instance is in model-only mode. `.$items` must not be populated.\");\n }\n if (this._items.value === val)\n return;\n const vmc = new ViewModelCollection(this.$metadata, this);\n if (val)\n vmc.push(...val);\n this._items.value = vmc;\n }\n /** True if the page set in $params.page is greater than 1 */\n get $hasPreviousPage() {\n return (this.$params.page || 1) > 1;\n }\n /** True if the count retrieved from the last load indicates that there may be pages after the page set in $params.page */\n get $hasNextPage() {\n // -1 is used to signal an unknown number of pages.\n if (this.$load.pageCount === -1)\n return true;\n return (this.$params.page || 1) < (this.$load.pageCount || 0);\n }\n /** Decrement the page parameter by 1 if there is a previous page. */\n $previousPage() {\n if (this.$hasPreviousPage)\n this.$params.page = (this.$params.page || 1) - 1;\n }\n /** Increment the page parameter by 1 if there is a next page. */\n $nextPage() {\n if (this.$hasNextPage)\n this.$params.page = (this.$params.page || 1) + 1;\n }\n get $page() {\n return this.$params.page || 1;\n }\n set $page(val) {\n this.$params.page = Math.max(1, Number(val));\n }\n get $pageSize() {\n return this.$params.pageSize || 1;\n }\n set $pageSize(val) {\n this.$params.pageSize = Number(val);\n }\n get $pageCount() {\n return this.$load.pageCount;\n }\n /**\n * A function for invoking the `/load` endpoint, and a set of properties about the state of the last call.\n */\n get $load() {\n const $load = this.$apiClient.$makeCaller(\"list\", (c) => {\n const startTime = performance.now();\n return c.list(this.$params).then((r) => {\n if (!this._lightweight) {\n const result = r.data.list;\n if (result) {\n this.$items = rebuildModelCollectionForViewModelCollection(this.$metadata, this.$items, result, startTime, true);\n }\n }\n return r;\n });\n });\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$load\", { value: $load });\n return $load;\n }\n /**\n * A function for invoking the `/count` endpoint, and a set of properties about the state of the last call.\n */\n get $count() {\n const $count = this.$apiClient.$makeCaller(\"item\", (c) => c.count(this.$params));\n // Lazy getter technique - don't create the caller until/unless it is needed,\n // since creation of api callers is a little expensive.\n Object.defineProperty(this, \"$count\", { value: $count });\n return $count;\n }\n /** @internal Internal autoload state */\n _autoLoadState = new AutoCallState();\n /**\n * Starts auto-loading of the list as changes to its parameters occur.\n * Only usable from Vue setup() or `script setup`. Otherwise, use $startAutoLoad().\n * @param options Options that control the auto-load behavior.\n */\n $useAutoLoad(options = {}) {\n const vue = getCurrentInstance()?.proxy;\n if (!vue)\n throw new Error(\"$useAutoLoad can only be used inside setup(). Consider using $startAutoLoad if you're not using Vue composition API.\");\n return this.$startAutoLoad(vue, options);\n }\n /**\n * Starts auto-loading of the list as changes to its parameters occur.\n * @param vue A Vue instance through which the lifecycle of the watcher will be managed.\n * @param options Options that control the auto-load behavior.\n */\n $startAutoLoad(vue, options = {}) {\n const { wait = 1000, predicate = undefined, debounce: debounceOptions, } = options;\n this.$stopAutoLoad();\n const enqueueLoad = debounce(() => {\n if (!this._autoLoadState.active)\n return;\n // Check the predicate again incase its state has changed while we were waiting for the debouncing timer.\n if (predicate && !predicate(this)) {\n return;\n }\n if (this.$load.isLoading && this.$load.concurrencyMode != \"cancel\") {\n // Load already in progress. Enqueue another attempt.\n enqueueLoad();\n }\n else {\n // No loads in progress, or concurrency is set to cancel - go for it.\n this.$load();\n }\n }, wait, debounceOptions);\n const onChange = () => {\n if (predicate && !predicate(this)) {\n return;\n }\n enqueueLoad();\n };\n const watcher = vue.$watch(\n // Watch the stringified version of the params, since if we watch the object itself,\n // insignificant changes will incorrectly trigger reloads,\n // e.g. when c-admin-table remaps params from the querystring.\n () => JSON.stringify(mapParamsToDto(this.$params)), onChange);\n startAutoCall(this._autoLoadState, vue, watcher, enqueueLoad);\n if (options.immediate) {\n // Immediate load doesn't use `enqueueLoad` so that there's no delay.\n this.$load();\n }\n }\n /** Stops auto-loading if it is currently enabled. */\n $stopAutoLoad() {\n this._autoLoadState.cleanup?.();\n }\n /** @internal Internal autosave state */\n _autoSaveState = new AutoCallState();\n /**\n * Enables auto save for the items in the list.\n * Only usable from Vue setup() or `script setup`. Otherwise, use $startAutoSave().\n * @param options Options to control how the auto-saving is performed.\n */\n $useAutoSave(options = {}) {\n const vue = getCurrentInstance()?.proxy;\n if (!vue)\n throw new Error(\"$useAutoSave can only be used inside setup(). Consider using $startAutoSave if you're not using Vue composition API.\");\n return this.$startAutoSave(vue, options);\n }\n /**\n * Enables auto save for the items in the list.\n * @param vue A Vue instance through which the lifecycle of the watcher will be managed.\n * @param options Options to control how the auto-saving is performed.\n */\n $startAutoSave(vue, options = {}) {\n if (this._lightweight) {\n throw new Error(\"Autosave cannot be used with $modelOnlyMode enabled.\");\n }\n let state = this._autoSaveState;\n if (state?.active && state.options === options) {\n // If already active using the exact same options object, don't restart.\n return;\n }\n this.$stopAutoSave();\n state = this._autoSaveState ??= new AutoCallState();\n state.options = options;\n state.vue = vue;\n const watcher = vue.$watch(() => [...this.$items.map((i) => i.$stableId)], () => {\n for (const item of this.$items) {\n item.$startAutoSave(state.vue, state.options);\n }\n }, { immediate: true, deep: true });\n startAutoCall(state, vue, watcher);\n }\n /** Stops auto-saving if it is currently enabled. */\n $stopAutoSave() {\n this._autoSaveState?.cleanup?.();\n for (const item of this.$items) {\n item.$stopAutoSave();\n }\n }\n /** Returns true if auto-saving is currently enabled. */\n get $isAutoSaveEnabled() {\n return this._autoSaveState?.active;\n }\n constructor(\n // The following MUST be declared in the constructor so its value will be available to property initializers.\n /** The metadata representing the type of data that this ViewModel handles. */\n $metadata, \n /** Instance of an API client for the model through which direct, stateless API requests may be made. */\n $apiClient) {\n this.$metadata = $metadata;\n this.$apiClient = $apiClient;\n markRaw(this);\n }\n}\nexport class ServiceViewModel {\n $metadata;\n $apiClient;\n /** Make nonreactive with Vue, preventing ViewModel instance from being wrapped with a Proxy.\n * Instead, we make individual members reactive with `reactive`/`ref`.\n *\n * We have to do this because `reactive` doesn't play nice with prototyped objects.\n * Any sets to a setter on the ViewModel class will trigger the reactive proxy,\n * and since the setter is defined on the prototype and Vue checks hasOwnProperty\n * when determining if a field is new on an object, all setters trigger reactivity\n * even if the value didn't change.\n * @internal\n */\n [ReactiveFlags_SKIP] = true;\n /** Static lookup of all generated ServiceViewModel types. */\n static typeLookup = null;\n constructor(\n /** The metadata representing the type of data that this ViewModel handles. */\n $metadata, \n /** Instance of an API client for the model through which direct, stateless API requests may be made. */\n $apiClient) {\n this.$metadata = $metadata;\n this.$apiClient = $apiClient;\n markRaw(this);\n }\n}\n/** Factory for creating new ViewModels from some initial data.\n *\n * For all ViewModels created recursively as a result of creating the root ViewModel,\n * the same ViewModel instance will be returned whenever the exact same `initialData` object is encountered.\n */\nexport class ViewModelFactory {\n isCleanData;\n static current = null;\n /** @internal */\n static get isInScope() {\n return !!this.current;\n }\n map = new Map();\n /** Ask the factory for a ViewModel for the given type and initial data.\n * The instance may be a brand new one, or may be already existing\n * if the same initialData has already been seen.\n */\n get(typeName, initialData) {\n const map = this.map;\n if (map.has(initialData)) {\n return map.get(initialData);\n }\n const vmCtor = ViewModel.typeLookup[typeName];\n const vm = new vmCtor();\n map.set(initialData, vm);\n vm.$loadFromModel(initialData, this.isCleanData);\n return vm;\n }\n /** Provide a pre-existing instance to the factory. */\n set(initialData, vm) {\n this.map.set(initialData, vm);\n }\n processed = new Map();\n /** Determine if the given initialData was already mapped to `vm`. */\n shouldProcess(initialData, vm) {\n let targets = this.processed.get(initialData);\n if (!targets) {\n this.processed.set(initialData, (targets = new Set()));\n }\n if (targets.has(vm)) {\n return false;\n }\n targets.add(vm);\n return true;\n }\n static scope(action, isCleanData) {\n if (!ViewModelFactory.current) {\n // There is no current factory. Make a new one.\n ViewModelFactory.current = new ViewModelFactory(isCleanData);\n try {\n // Perform the action, and when we're done, destroy the factory.\n return action(ViewModelFactory.current);\n }\n finally {\n ViewModelFactory.current = null;\n }\n }\n else {\n // Perform the action using the already existing factory.\n return action(ViewModelFactory.current);\n }\n }\n static get(typeName, initialData, isCleanData) {\n return ViewModelFactory.scope(function (factory) {\n return factory.get(typeName, initialData);\n }, isCleanData);\n }\n constructor(isCleanData = true) {\n this.isCleanData = isCleanData;\n }\n}\n/** Gets a human-friendly description for ViewModelCollection error messages. */\nfunction viewModelCollectionName($metadata) {\n const collectedTypeMeta = $metadata.type == \"model\" ? $metadata : $metadata.itemType.typeDef;\n const str = `a collection of ${collectedTypeMeta.name}`;\n return $metadata.type == \"model\" ? str : `${$metadata.name} (${str})`;\n}\nfunction viewModelCollectionMapItems(items, vmc, isCleanData) {\n const collectedTypeMeta = vmc.$metadata.type == \"model\"\n ? vmc.$metadata\n : vmc.$metadata.itemType.typeDef;\n return items.map((val) => {\n if (val == null) {\n throw Error(`Cannot push null to a collection of ViewModels.`);\n }\n if (typeof val !== \"object\") {\n throw Error(`Cannot push a non-object to ${viewModelCollectionName(vmc.$metadata)}`);\n }\n // Sanity check. Probably not crucial if this ends up causing issues. A warning would probably suffice too.\n else if (\"$metadata\" in val && val.$metadata != collectedTypeMeta) {\n throw Error(`Type mismatch - attempted to assign a ${val.$metadata.name} to ${viewModelCollectionName(vmc.$metadata)}`);\n }\n let viewModel;\n if (val instanceof ViewModel) {\n // Already a viewmodel. Do nothing\n viewModel = val;\n }\n else {\n // Incoming is a Model. Make a ViewModel from it.\n if (ViewModel.typeLookup === null) {\n throw Error(\"Static `ViewModel.typeLookup` is not defined. It should get defined in viewmodels.g.ts.\");\n }\n viewModel = val = ViewModelFactory.get(collectedTypeMeta.name, val, isCleanData);\n }\n // $parent and $parentCollection are intentionally private -\n // they're just for internal tracking of stuff\n // and probably shouldn't be used in custom code.\n // So, we'll cast to `any` so we can set them here.\n viewModel.$parent = vmc.$parent;\n viewModel.$parentCollection = vmc;\n // If deep autosave is active, propagate it to the ViewModel instance being attached to the object graph.\n const autoSaveState = vmc.$parent._autoSaveState?.value;\n if (autoSaveState?.active && autoSaveState.options?.deep) {\n viewModel.$startAutoSave(autoSaveState.vue, autoSaveState.options);\n }\n return viewModel;\n });\n}\nfunction resolveProto(obj) {\n // Babel does some stupid nonsense where it will wrap our proto\n // in another proto. This breaks things if coalesce-vue is imported from source,\n // or if we were to at some point in the future emit a esnext version of coalesce-vue.\n const proto = Object.getPrototypeOf(obj);\n if (obj.push == proto.push) {\n // `proto` is the wrapper because it contains our own `push` (and other methods).\n // Go up one more level.\n return Object.getPrototypeOf(proto);\n }\n return proto;\n}\nexport class ViewModelCollection extends Array {\n $metadata;\n $parent;\n $hasLoaded;\n push(...items) {\n // MUST evaluate the .map() before grabbing the .push() (Vue2 only limitation)\n // method from the proto. See test \"newly loaded additional items are reactive\".\n const viewModelItems = viewModelCollectionMapItems(items, this, true);\n if (IsVue3) {\n return super.push(...viewModelItems);\n }\n return resolveProto(this).push.apply(this, viewModelItems);\n }\n splice(start, deleteCount, ...items) {\n const viewModelItems = items\n ? viewModelCollectionMapItems(items, this, true)\n : items;\n if (IsVue3) {\n return super.splice(start, deleteCount, ...viewModelItems);\n }\n return resolveProto(this).splice.call(this, start, deleteCount, ...viewModelItems);\n }\n constructor($metadata, $parent) {\n super();\n Object.defineProperties(this, {\n // These properties need to be non-enumerable to avoid them from being looped over\n // during iteration of the array if `for ... in ` is used.\n // We also don't want Vue to bother making them reactive because it won't be beneficial.\n $metadata: {\n value: $metadata,\n enumerable: false,\n writable: false,\n configurable: false,\n },\n $parent: {\n value: $parent,\n enumerable: false,\n writable: false,\n configurable: false,\n },\n $hasLoaded: {\n value: false,\n enumerable: false,\n writable: true,\n configurable: false,\n },\n });\n if (IsVue2) {\n Object.defineProperties(this, {\n push: {\n value: ViewModelCollection.prototype.push,\n enumerable: false,\n writable: false,\n configurable: false,\n },\n splice: {\n value: ViewModelCollection.prototype.splice,\n enumerable: false,\n writable: false,\n configurable: false,\n },\n });\n return this;\n }\n else {\n // Force methods like .filter, .slice to produce plain arrays,\n // not new ViewModelCollection instances.\n // See test \"$items.filter produces a plain array\".\n Object.defineProperties(this, {\n constructor: {\n value: Array.constructor,\n enumerable: false,\n writable: false,\n configurable: false,\n },\n });\n return reactive(this);\n }\n }\n}\n/**\n * Dynamically adds getter/setter properties to a class. These properties wrap the properties in its instances' $data objects.\n * @param ctor The class to add wrapper properties to\n * @param metadata The metadata describing the properties to add.\n */\nexport function defineProps(ctor, metadata) {\n const props = Object.values(metadata.props);\n const descriptors = {};\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n const propName = prop.name;\n const hasWatcherFlag = Symbol(\"watching collection for dirty \" + propName);\n descriptors[propName] = {\n enumerable: true,\n configurable: true,\n get: function () {\n return this.$data[propName];\n },\n set: prop.type == \"model\"\n ? function (incomingValue) {\n if (incomingValue != null) {\n if (typeof incomingValue !== \"object\") {\n throw Error(`Cannot assign a non-object to ${metadata.name}.${propName}`);\n }\n else if (\"$metadata\" in incomingValue) {\n if (incomingValue.$metadata.name != prop.typeDef.name) {\n throw Error(`Type mismatch - attempted to assign a ${incomingValue.$metadata.name} to ${metadata.name}.${propName}`);\n }\n }\n if (incomingValue instanceof ViewModel) {\n // Already a viewmodel. Do nothing\n }\n else {\n // Incoming is a Model. Make a ViewModel from it.\n // This is require so that input components work if a component sets the navigation prop to a model instance.\n incomingValue = ViewModelFactory.get(prop.typeDef.name, incomingValue, !!incomingValue[prop.typeDef.keyProp.name] // Assume the data is clean if it has a PK\n );\n }\n // If deep autosave is active, propagate it to the new ViewModel instance.\n const autoSaveState = this._autoSaveState?.value;\n if (autoSaveState?.active && autoSaveState.options?.deep) {\n incomingValue.$startAutoSave(autoSaveState.vue, autoSaveState.options);\n }\n incomingValue.$parent = this;\n }\n this.$data[propName] = incomingValue;\n // Set the foreign key using the PK of the incoming object.\n // This may end up being redundant if we're in the process\n // of copying the props of an object that already has the FK,\n // but it will help ensure 100% correctness.\n if (prop.role == \"referenceNavigation\") {\n // When setting an object, fix up the foreign key using the value pulled from the object\n // if it has a value.\n const incomingPk = incomingValue\n ? incomingValue[prop.principalKey.name]\n : null;\n // Set on `this`, not `$data`, in order to trigger $isDirty in the\n // setter function for the FK prop.\n this[prop.foreignKey.name] = incomingPk;\n if (incomingValue && incomingPk == null) {\n // If the incoming principal model doesn't have a PK yet, mark the FK as dirty.\n // Then, when a save is performed, `mapToDto` will discover and fixup the FK\n // if the principal's PK has received a value in the interim.\n this.$setPropDirty(prop.foreignKey.name);\n }\n }\n }\n : prop.type == \"collection\" && prop.itemType.type == \"model\"\n ? function (incomingValue) {\n let hasLoaded = false;\n if (incomingValue == null) {\n // Usability niceness - make an empty array if the incoming is null.\n // This shouldn't have any adverse effects that I can think of.\n // This will cause the viewmodel collections to always be initialized with empty arrays\n incomingValue = [];\n }\n else if (!Array.isArray(incomingValue)) {\n throw Error(`Cannot assign a non-array to ${metadata.name}.${propName}`);\n }\n else {\n hasLoaded = true;\n }\n const $data = this.$data;\n const old = $data[propName];\n if (old === incomingValue) {\n // Setting same value. Do nothing.\n return;\n }\n const vmc = new ViewModelCollection(prop, this);\n // Mark the collection so that we can determine that it has been loaded,\n // versus a collection that was never loaded because the server never populated it.\n // This lets us tell if the collection is truly empty, or empty because it isn't loaded.\n vmc.$hasLoaded = hasLoaded;\n vmc.push(...incomingValue);\n $data[propName] = vmc;\n }\n : function (incomingValue) {\n const $data = this.$data;\n // Optimization: read old data from raw,\n // because we're just using it to avoid a set if we don't need to,\n // so we don't want to be wasting time on dependency tracking.\n const $dataRaw = toRaw($data);\n const old = $dataRaw[propName];\n // First, check strict equality. This will handle the 90% most common case.\n if (old === incomingValue) {\n return;\n }\n if (prop.type == \"object\" &&\n incomingValue != null &&\n !(\"$metadata\" in incomingValue)) {\n convertToModel(incomingValue, prop.typeDef);\n }\n // If strict equality fails, try to use valueOf() to compare.\n // valueOf() helps with Date instances that represent the same time value.\n // If either side is null, it is ok to set $isDirty, since we\n // know that if we got this far, BOTH sides aren't both null.\n if (old?.valueOf() !== incomingValue?.valueOf()) {\n $data[propName] = incomingValue;\n this.$setPropDirty(propName);\n // For collections of primitives,\n // we need to setup a watcher on the prop so that direct collection\n // mutations will also trigger the dirty flag.\n // Its OK that we only set this up in the setter\n // since there's no point in watching an empty collection.\n if (prop.role == \"value\" &&\n prop.type == \"collection\" &&\n !prop.dontSerialize &&\n !this[hasWatcherFlag]) {\n this[hasWatcherFlag] = true;\n if (!watcherFinalizationRegistry) {\n //@ts-expect-error\n if (!window.__coalesce_warned_collection_watcher) {\n //@ts-expect-error\n window.__coalesce_warned_collection_watcher = true;\n console.warn(\"Unable to setup dirty watcher for collection prop mutations because FinalizationRegistry is not available.\");\n }\n }\n else {\n // NB: At the time of writing this code this does work to dispose the watcher\n // when the VM instance is GC'd. HOWEVER, vue seems to currently be bad\n // at removing refs to `script setup` data and is retaining references.\n // Must capture a weak ref to `this` so that the effect of the watcher\n // isn't preventing the viewmodel from being disposed.\n const weakThis = new WeakRef(this);\n watcherFinalizationRegistry.register(this, watch(() => $data[propName], () => weakThis.deref()?.$setPropDirty(propName), { deep: true, flush: \"sync\" }));\n }\n }\n if (prop.role == \"foreignKey\" && prop.navigationProp) {\n /*\n If there's a navigation property for this FK,\n we need to null it out if the current value of the\n navigation prop is non-null and the incoming value of the FK does not agree with the PK on the value of the navigation prop.\n */\n const currentObject = $dataRaw[prop.navigationProp.name];\n if (currentObject != null &&\n incomingValue != currentObject[prop.principalKey.name]) {\n // Set on `$data`, not `this`.\n // We don't want to trigger the \"model\" setter\n // since it basically does nothing when the value is null,\n // and it would also attempt to perform fixup of the FK prop,\n // but we're already doing just that.\n $data[prop.navigationProp.name] = null;\n }\n }\n }\n },\n };\n }\n Object.defineProperties(ctor.prototype, descriptors);\n}\n/** Do not export.\n *\n * Doesn't strictly return collections of ViewModels,\n * but instead expects the receiving setter of the array to be a ViewModelCollection.\n */\nfunction rebuildModelCollectionForViewModelCollection(type, currentValue, incomingValue, isCleanData, purgeUnsaved) {\n if (!Array.isArray(currentValue)) {\n currentValue = [];\n }\n let incomingLength = incomingValue.length;\n let currentLength = currentValue.length;\n // There are existing items. We need to surgically merge in the incoming items,\n // keeping existing ViewModels the same based on keys.\n const pkName = type.keyProp.name;\n const existingItemsMap = new Map();\n const existingItemsWithoutPk = [];\n for (let i = 0; i < currentLength; i++) {\n const item = currentValue[i];\n const itemPk = item.$primaryKey;\n if (itemPk) {\n existingItemsMap.set(itemPk, item);\n }\n else {\n existingItemsWithoutPk.push(item);\n }\n }\n // Rebuild the currentValue array, using existing items when they exist,\n // otherwise using the incoming items.\n for (let i = 0; i < incomingLength; i++) {\n const incomingItem = incomingValue[i];\n const incomingItemPk = incomingItem[pkName];\n const existingItem = existingItemsMap.get(incomingItemPk);\n if (existingItem) {\n existingItem.$loadFromModel(incomingItem, isCleanData);\n if (currentValue[i] === existingItem) {\n // The existing item is not moving position. Do nothing.\n }\n else {\n // Replace the item currently at this position with the existing item.\n currentValue.splice(i, 1, existingItem);\n }\n }\n else {\n // No need to $loadFromModel on the incoming item.\n // The setter for the collection will transform its contents into ViewModels for us.\n if (currentValue[i]) {\n // There is something else already in the array at this position. Replace it.\n currentValue.splice(i, 1, incomingItem);\n }\n else {\n // Nothing in the current array at this position. Just stick it in.\n currentValue.push(incomingItem);\n }\n }\n }\n if (existingItemsWithoutPk.length && !purgeUnsaved) {\n // Add to the end of the collection any existing items that do not have primary keys.\n // This behavior exists to prevent losing items on the client\n // that may not yet be saved in the event that the parent of the collection\n // get reloaded from a save.\n // If this behavior is undesirable in a specific circumstance,\n // it is trivial to manually remove unsaved items after a .$save() is peformed.\n const existingItemsLength = existingItemsWithoutPk.length;\n for (let i = 0; i < existingItemsLength; i++) {\n const existingItem = existingItemsWithoutPk[i];\n const currentItem = currentValue[incomingLength];\n if (existingItem === currentItem) {\n // The existing item is not moving position. Do nothing.\n }\n else {\n // Replace the item currently at this position with the existing item.\n currentValue.splice(incomingLength, 1, existingItem);\n }\n incomingLength += 1;\n }\n }\n // If the new collection is shorter than the existing length,\n // remove the extra items.\n if (currentLength > incomingLength) {\n currentValue.splice(incomingLength, currentLength - incomingLength);\n }\n // Let the receiving ViewModelCollection handle the conversion of the contents\n // into ViewModel instances.\n return currentValue;\n}\n/**\n * Updates the target model with values from the source model.\n * @param target The viewmodel to be updated.\n * @param source The model whose values will be used to perform the update.\n * @param skipDirty If true, only non-dirty props, and related objects, will be updated.\n * Basic properties on target that are dirty will be skipped.\n * @param purgeUnsaved If true, unsaved items lingering in collections that are not in `source` will be removed.\n * @param skipStale If true, only props not actively being saved, and related objects, will be updated.\n * Basic properties on target that are currently being saved will be skipped.\n */\nexport function updateViewModelFromModel(target, source, skipDirty = false, isCleanData = true, purgeUnsaved = false, skipStale = false) {\n ViewModelFactory.scope(function (factory) {\n // Skip if we already applied this source to the target.\n if (!factory.shouldProcess(source, target)) {\n return;\n }\n // Add the root ViewModel to the factory\n // so that when existing ViewModels are being updated,\n // duplicate VM instances won't be created needlessly.\n // \"Existing ViewModels\" includes user-instantiated instances\n // (i.e. those not instantiated by code in this file).\n factory.set(source, target);\n const metadata = target.$metadata;\n // Sanity check. Probably not crucial if this ends up causing issues. A warning would probably suffice too.\n if (\"$metadata\" in source && source.$metadata != metadata) {\n throw Error(`Attempted to load a ${metadata.name} ViewModel with a ${source.$metadata.name} object.`);\n }\n // Optimization: read old data from raw,\n // because we're just using it to avoid a set if we don't need to,\n // so we don't want to be wasting time on dependency tracking.\n // We also want to skip the getter from defineProps for the same reason.\n const $data = target.$data;\n const $dataRaw = toRaw($data);\n if (isCleanData) {\n // When loading clean data, remove any pending bulk deletes\n // because we should expect that any pending delete items are either:\n // 1) Already deleted and therefore no longer need to be contained in $removedItems, OR\n // 2) Not deleted and therefore present in the incoming data, which means we have two copies\n // of the entity, each in a different state. If an interface is using bulk saves\n // and performs a load of clean data (e.g. by calling `/load`),\n // we assuming they're doing so to reset local state.\n delete target.$removedItems;\n }\n let incomingIsStale = false;\n if (typeof isCleanData == \"number\") {\n if (skipStale && isCleanData < target._dataAge) {\n console.log(`Skipped loading ${metadata.name} ${target.$primaryKey}: incoming data is ${(target._dataAge - isCleanData).toFixed(3)}ms older than the last known clean data.`);\n incomingIsStale = true;\n }\n target._dataAge = isCleanData;\n }\n else if (isCleanData) {\n target._dataAge = performance.now();\n }\n for (const prop of Object.values(metadata.props)) {\n const propName = prop.name;\n let incomingValue = source[propName];\n // Sanitize incomingValue to not be undefined (to not break Vue's reactivity),\n // since `source` isn't guaranteed to be a model and thus isn't guaranteed that\n // all properties are defined.\n if (incomingValue === undefined)\n incomingValue = null;\n switch (prop.role) {\n case \"referenceNavigation\":\n if (incomingValue) {\n const currentValue = $dataRaw[propName];\n if (currentValue == null ||\n currentValue[prop.typeDef.keyProp.name] !==\n incomingValue[prop.typeDef.keyProp.name]) {\n // If the current value is null,\n // or if the current value has a different PK than the incoming value,\n // we should create a brand new object.\n if (skipStale && target.$savingProps.has(prop.foreignKey.name)) {\n // This is a pretty rare condition and might be unintuitive as to what happened, so log this.\n console.log(`Skipped loading '${propName}' on ${metadata.name} ${target.$primaryKey}: property is actively saving.`);\n }\n else if (!incomingIsStale) {\n // The setter on the viewmodel will handle the conversion to a ViewModel.\n target[propName] = incomingValue;\n }\n }\n else {\n // `currentValue` is guaranteed to be a ViewModel by virtue of the\n // implementations of the setters for referenceNavigation properties on ViewModel instances.\n currentValue.$loadFromModel(incomingValue, isCleanData, purgeUnsaved);\n }\n // Check if target.$parent is the expected value of this navigation prop,\n // and if it is, update $parent. (The KO stack did this too).\n const parent = target.$parent;\n const newValue = currentValue ?? target[propName];\n if (parent instanceof ViewModel &&\n newValue &&\n parent.$metadata === newValue.$metadata &&\n newValue.$primaryKey === parent.$primaryKey &&\n parent !== newValue) {\n parent.$loadFromModel(incomingValue, isCleanData, purgeUnsaved);\n }\n }\n else {\n // We allow the existing value of the navigation prop to stick around\n // if the server didn't send it back.\n // The setter handling for the foreign key will handle\n // clearing out the current object if it doesn't match the incoming FK.\n // This allows us to keep the existing navigation object\n // even if the server didn't respond with one.\n // However, if the FK has changed to a different value that no longer\n // agrees with the existing navigation object,\n // the FK setter will null the navigation to prevent an inconsistent data model.\n }\n break;\n case \"collectionNavigation\":\n const currentValue = $data[propName];\n if (incomingValue == null) {\n if (currentValue) {\n // No incoming collection was provided. Allow the existing collection to stick around.\n // Note that this case is different from the incoming value being an empty array,\n // which should be used to explicitly clear our the existing collection.\n }\n else {\n // Pass null directly through to the VM's setter.\n // The VM's setter will then populate the VM's data with an empty array rather than null.\n target[propName] = null;\n }\n break;\n }\n if (!Array.isArray(incomingValue)) {\n throw `Expected array for incoming value for ${metadata.name}.${prop.name}`;\n }\n const newCollection = rebuildModelCollectionForViewModelCollection(prop.itemType.typeDef, currentValue, incomingValue, isCleanData, purgeUnsaved);\n if (currentValue !== newCollection) {\n target[propName] = newCollection;\n }\n break;\n case \"primaryKey\":\n // Always update the PK, even if skipDirty is true.\n if ($dataRaw[propName] !== incomingValue) {\n target[propName] = incomingValue;\n }\n break;\n default:\n // We check against the current value here for a minor perf increase -\n // Even though this is redundant with the ViewModel's setters,\n // it avoids calling into the setter if we don't have to,\n // and handles the vast majority of cases. Using $dataRaw also avoids unnecessary reactivity.\n if ($dataRaw[propName] === incomingValue) {\n break;\n }\n if (prop.role == \"foreignKey\") {\n if (incomingValue == null &&\n prop.navigationProp &&\n source[prop.navigationProp.name]) {\n // A value for the navigation property was provided,\n // but a foreign key was not. Do not set the FK to null,\n // since depending on the order of property iteration, doing so might\n // null out the navigation property if the navigation property was already set.\n break;\n }\n }\n if (skipStale && target.$savingProps.has(propName)) {\n // This is a pretty rare condition and might be unintuitive as to what happened, so log this.\n console.log(`Skipped loading '${propName}' on ${metadata.name} ${target.$primaryKey}: property is actively saving.`);\n }\n else if (skipDirty && target.$getPropDirty(propName)) {\n // Do nothing. We've historically never logged here, so we'll continue not logging for now.\n // This scenario usually happens if the user is just rapidly inputting into one field, e.g. a text field.\n }\n else if (!incomingIsStale) {\n target[propName] = incomingValue;\n }\n break;\n }\n }\n }, isCleanData);\n}\n/* Internal members/helpers */\nclass AutoCallState {\n active = false;\n cleanup = null;\n // Note: these can't be properly typed because Vue ref unwrapping blows everything up.\n vue = null;\n hooked = new WeakSet();\n options = null;\n trigger = null;\n constructor() {\n // Seal to prevent unnecessary reactivity\n return Object.seal(this);\n }\n}\nfunction startAutoCall(state, vue, watcher, debouncer) {\n if (!state.hooked.has(vue)) {\n state.hooked.add(vue);\n onBeforeUnmount(\n // Only cleanup if the component instance on the state is the owner of the hook.\n // Since we can't cleanup hooks in vue3, this hook may be firing for a component\n // that no longer owns this autocall state, in which case it should be ignored.\n () => state.vue === vue && state.cleanup?.(), getInternalInstance(vue));\n }\n state.vue = vue;\n state.cleanup = () => {\n if (!state.active)\n return;\n // Destroy the watcher\n watcher?.();\n // Cancel the debouncing timer if there is one.\n debouncer?.cancel();\n state.active = false;\n // cleanup for GC\n state.vue = null;\n state.cleanup = null;\n };\n state.active = true;\n}\nfunction joinErrors(errors) {\n return [...errors].map((e) => e.replace(/\\.$/, \"\")).join(\", \") + \".\";\n}\nconst watcherFinalizationRegistry = typeof FinalizationRegistry !== \"undefined\"\n ? new FinalizationRegistry((heldValue) => {\n heldValue();\n })\n : undefined;\n","/*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n};\n\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > âš ï¸ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/lightFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > âš ï¸ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM | a..aaa | AM, PM |\n * | | aaaa | a.m., p.m. |\n * | | aaaaa | a, p |\n * | Calendar year | y | 44, 1, 1900, 2017 |\n * | | yy | 44, 01, 00, 17 |\n * | | yyy | 044, 001, 000, 017 |\n * | | yyyy | 0044, 0001, 1900, 2017 |\n * | Month (formatting) | M | 1, 2, ..., 12 |\n * | | MM | 01, 02, ..., 12 |\n * | Day of month | d | 1, 2, ..., 31 |\n * | | dd | 01, 02, ..., 31 |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 |\n * | | hh | 01, 02, ..., 11, 12 |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 |\n * | | HH | 00, 01, 02, ..., 23 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | Fraction of second | S | 0, 1, ..., 9 |\n * | | SS | 00, 01, ..., 99 |\n * | | SSS | 000, 001, ..., 999 |\n * | | SSSS | ... |\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * const result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '2014-02-11'\n */\n\nexport default function lightFormat(dirtyDate, formatStr) {\n requiredArgs(2, arguments);\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var tokens = formatStr.match(formattingTokensRegExp);\n\n // The only case when formattingTokensRegExp doesn't match the string is when it's empty\n if (!tokens) return '';\n var result = tokens.map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n return formatter(utcDate, substring);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matches = input.match(escapedStringRegExp);\n if (!matches) {\n return input;\n }\n return matches[1].replace(doubleQuoteRegExp, \"'\");\n}","import addMinutes from \"../addMinutes/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function h(n,l){for(var u in l)n[u]=l[u];return n}function v(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||g(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||g(n,r,l[r],u[r],i)}function b(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function g(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||b(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||b(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w:m,r):n.removeEventListener(l,r?w:m,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!==l&&\"height\"!==l&&\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&-1==l.indexOf(\"-\")?n.removeAttribute(l):n.setAttribute(l,u))}}function m(n){t=!0;try{return this.l[n.type+!1](l.event?l.event(n):n)}finally{t=!1}}function w(n){t=!0;try{return this.l[n.type+!0](l.event?l.event(n):n)}finally{t=!1}}function x(n,l){this.props=n,this.context=l}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?A(n):null}function P(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return P(n)}}function C(n){t?setTimeout(n):f(n)}function T(n){(!n.__d&&(n.__d=!0)&&r.push(n)&&!$.__r++||o!==l.debounceRendering)&&((o=l.debounceRendering)||C)($)}function $(){var n,l,u,i,t,o,f,e;for(r.sort(function(n,l){return n.__v.__b-l.__v.__b});n=r.shift();)n.__d&&(l=r.length,i=void 0,t=void 0,f=(o=(u=n).__v).__e,(e=u.__P)&&(i=[],(t=h({},o)).__v=o.__v+1,M(e,o,t,u.__n,void 0!==e.ownerSVGElement,null!=o.__h?[f]:null,i,null==f?A(o):f,o.__h),N(i,o),o.__e!=f&&P(o)),r.length>l&&r.sort(function(n,l){return n.__v.__b-l.__v.__b}));$.__r=0}function H(n,l,u,i,t,r,o,f,e,a){var h,v,y,d,k,b,g,m=i&&i.__k||s,w=m.length;for(u.__k=[],h=0;h<l.length;h++)if(null!=(d=u.__k[h]=null==(d=l[h])||\"boolean\"==typeof d?null:\"string\"==typeof d||\"number\"==typeof d||\"bigint\"==typeof d?p(null,d,null,null,d):Array.isArray(d)?p(_,{children:d},null,null,null):d.__b>0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=m[h])||y&&d.key==y.key&&d.type===y.type)m[h]=void 0;else for(v=0;v<w;v++){if((y=m[v])&&d.key==y.key&&d.type===y.type){m[v]=void 0;break}y=null}M(n,d,y=y||c,t,r,o,f,e,a),k=d.__e,(v=d.ref)&&y.ref!=v&&(g||(g=[]),y.ref&&g.push(y.ref,null,d),g.push(v,d.__c||k,d)),null!=k?(null==b&&(b=k),\"function\"==typeof d.type&&d.__k===y.__k?d.__d=e=I(d,e,n):e=z(n,d,y,m,k,e),\"function\"==typeof u.type&&(u.__d=e)):e&&y.__e==e&&e.parentNode!=n&&(e=A(y))}for(u.__e=b,h=w;h--;)null!=m[h]&&(\"function\"==typeof u.type&&null!=m[h].__e&&m[h].__e==u.__d&&(u.__d=L(i).nextSibling),q(m[h],m[h]));if(g)for(h=0;h<g.length;h++)S(g[h],g[++h],g[++h])}function I(n,l,u){for(var i,t=n.__k,r=0;t&&r<t.length;r++)(i=t[r])&&(i.__=n,l=\"function\"==typeof i.type?I(i,l,u):z(u,i,i,t,i.__e,l));return l}function j(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(Array.isArray(n)?n.some(function(n){j(n,l)}):l.push(n)),l}function z(n,l,u,i,t,r){var o,f,e;if(void 0!==l.__d)o=l.__d,l.__d=void 0;else if(null==u||t!=r||null==t.parentNode)n:if(null==r||r.parentNode!==n)n.appendChild(t),o=null;else{for(f=r,e=0;(f=f.nextSibling)&&e<i.length;e+=1)if(f==t)break n;n.insertBefore(t,r),o=r}return void 0!==o?o:t.nextSibling}function L(n){var l,u,i;if(null==n.type||\"string\"==typeof n.type)return n.__e;if(n.__k)for(l=n.__k.length-1;l>=0;l--)if((u=n.__k[l])&&(i=L(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,v,y,p,d,k,b,g,m,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof $){if(b=u.props,g=(s=$.contextType)&&t[s.__c],m=s?g?g.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in $&&$.prototype.render?u.__c=a=new $(b,m):(u.__c=a=new x(b,m),a.constructor=$,a.render=B),g&&g.sub(a),a.props=b,a.state||(a.state={}),a.context=m,a.__n=t,v=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=h({},a.__s)),h(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,v)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,m),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,m)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),w=0;w<a._sb.length;w++)a.__h.push(a._sb[w]);a._sb=[],a.__h.length&&f.push(a);break n}null!=a.componentWillUpdate&&a.componentWillUpdate(b,a.__s,m),null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(y,p,d)})}if(a.context=m,a.props=b,a.__P=n,A=l.__r,P=0,\"prototype\"in $&&$.prototype.render){for(a.state=a.__s,a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),C=0;C<a._sb.length;C++)a.__h.push(a._sb[C]);a._sb=[]}else do{a.__d=!1,A&&A(u),s=a.render(a.props,a.state,a.context),a.state=a.__s}while(a.__d&&++P<25);a.state=a.__s,null!=a.getChildContext&&(t=h(h({},t),a.getChildContext())),v||null==a.getSnapshotBeforeUpdate||(d=a.getSnapshotBeforeUpdate(y,p)),T=null!=s&&s.type===_&&null==s.key?s.props.children:s,H(n,Array.isArray(T)?T:[T],u,i,t,r,o,f,e,c),a.base=u.__e,u.__h=null,a.__h.length&&f.push(a),k&&(a.__E=a.__=null),a.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=O(i.__e,u,i,t,r,o,f,c);(s=l.diffed)&&s(u)}catch(n){u.__v=null,(c||null!=o)&&(u.__e=e,u.__h=!!c,o[o.indexOf(e)]=null),l.__e(n,u,i)}}function N(n,u){l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function O(l,u,i,t,r,o,f,e){var s,a,h,y=i.props,p=u.props,d=u.type,_=0;if(\"svg\"===d&&(r=!0),null!=o)for(;_<o.length;_++)if((s=o[_])&&\"setAttribute\"in s==!!d&&(d?s.localName===d:3===s.nodeType)){l=s,o[_]=null;break}if(null==l){if(null===d)return document.createTextNode(p);l=r?document.createElementNS(\"http://www.w3.org/2000/svg\",d):document.createElement(d,p.is&&p),o=null,e=!1}if(null===d)y===p||e&&l.data===p||(l.data=p);else{if(o=o&&n.call(l.childNodes),a=(y=i.props||c).dangerouslySetInnerHTML,h=p.dangerouslySetInnerHTML,!e){if(null!=o)for(y={},_=0;_<l.attributes.length;_++)y[l.attributes[_].name]=l.attributes[_].value;(h||a)&&(h&&(a&&h.__html==a.__html||h.__html===l.innerHTML)||(l.innerHTML=h&&h.__html||\"\"))}if(k(l,p,y,r,e),h)u.__k=[];else if(_=u.props.children,H(l,Array.isArray(_)?_:[_],u,i,t,r&&\"foreignObject\"!==d,o,f,o?o[0]:i.__k&&A(i,0),e),null!=o)for(_=o.length;_--;)null!=o[_]&&v(o[_]);e||(\"value\"in p&&void 0!==(_=p.value)&&(_!==l.value||\"progress\"===d&&!_||\"option\"===d&&_!==y.value)&&g(l,\"value\",_,y.value,!1),\"checked\"in p&&void 0!==(_=p.checked)&&_!==l.checked&&g(l,\"checked\",_,y.checked,!1))}return l}function S(n,u,i){try{\"function\"==typeof n?n(u):n.current=u}catch(n){l.__e(n,i)}}function q(n,u,i){var t,r;if(l.unmount&&l.unmount(n),(t=n.ref)&&(t.current&&t.current!==n.__e||S(t,null,u)),null!=(t=n.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(n){l.__e(n,u)}t.base=t.__P=null,n.__c=void 0}if(t=n.__k)for(r=0;r<t.length;r++)t[r]&&q(t[r],u,i||\"function\"!=typeof n.type);i||null==n.__e||v(n.__e),n.__=n.__e=n.__d=void 0}function B(n,l,u){return this.constructor(n,u)}function D(u,i,t){var r,o,f;l.__&&l.__(u,i),o=(r=\"function\"==typeof t)?null:t&&t.__k||i.__k,f=[],M(i,u=(!r&&t||i).__k=y(_,null,[u]),o||c,c,void 0!==i.ownerSVGElement,!r&&t?[t]:o?null:i.firstChild?n.call(i.childNodes):null,f,!r&&t?t:o?o.__e:i.firstChild,r),N(f,u)}function E(n,l){D(n,l,E)}function F(l,u,i){var t,r,o,f=h({},l.props);for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,T(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},t=!1,x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=h({},this.state),\"function\"==typeof n&&(n=n(h({},u),this.props)),n&&h(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T(this))},x.prototype.render=_,r=[],f=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$.__r=0,e=0;export{x as Component,_ as Fragment,F as cloneElement,G as createContext,y as createElement,d as createRef,y as h,E as hydrate,i as isValidElement,l as options,D as render,j as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,h as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,s as useLayoutEffect,F as useMemo,y as useReducer,_ as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n,t){return n===t&&(0!==n||1/n==1/t)||n!=n&&t!=t}function w(n){this.props=n}function R(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(w.prototype=new n).isPureReactComponent=!0,w.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var N=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=N,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var A=function(n,t){return null==n?null:r(r(n).map(t))},O={map:A,forEach:A,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},T=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);T(n,t,e,r)};var I=e.unmount;function L(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)})),n}function U(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return U(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function D(){this.__u=0,this.t=null,this.__b=null}function F(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function M(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function V(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),I&&I(n)},(D.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=F(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=U(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},D.prototype.componentWillUnmount=function(){this.t=[]},D.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=L(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var W=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function P(n){return this.getChildContext=function(){return n.context},n.children}function $(n){var e=this,r=n.i;e.componentWillUnmount=function(){o(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),n.__v?(e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n){this.childNodes.push(n),e.i.appendChild(n)},insertBefore:function(n,t){this.childNodes.push(n),e.i.appendChild(n)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.i.removeChild(n)}}),o(t(P,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function j(n,e){var r=t($,{__v:n,i:e});return r.containerInfo=e,r}(V.prototype=new n).__a=function(n){var t=this,e=F(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),W(t,n,r)):u()};e?e(o):o()}},V.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},V.prototype.componentDidUpdate=V.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){W(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=\"undefined\"!=typeof document,Z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Y(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function q(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var G=e.event;function J(){}function K(){return this.cancelBubble}function Q(){return this.defaultPrevented}e.event=function(n){return G&&(n=G(n)),n.persist=J,n.isPropagationStopped=K,n.isDefaultPrevented=Q,n.nativeEvent=n};var X,nn={configurable:!0,get:function(){return this.class}},tn=e.vnode;e.vnode=function(n){var t=n.type,e=n.props,u=e;if(\"string\"==typeof t){var o=-1===t.indexOf(\"-\");for(var i in u={},e){var l=e[i];H&&\"children\"===i&&\"noscript\"===t||\"value\"===i&&\"defaultValue\"in e&&null==l||(\"defaultValue\"===i&&\"value\"in e&&null==e.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":/ondoubleclick/i.test(i)?i=\"ondblclick\":/^onchange(textarea|input)/i.test(i+t)&&!Z(e.type)?i=\"oninput\":/^onfocus$/i.test(i)?i=\"onfocusin\":/^onblur$/i.test(i)?i=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&B.test(i)?i=i.replace(/[A-Z0-9]/g,\"-$&\").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i=\"oninputCapture\")),u[i]=l)}\"select\"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=r(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==t&&null!=u.defaultValue&&(u.value=r(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(nn.enumerable=\"className\"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,\"className\",nn))}n.$$typeof=z,tn&&tn(n)};var en=e.__r;e.__r=function(n){en&&en(n),X=n.__c};var rn={ReactCurrentDispatcher:{current:{readContext:function(n){return X.__n[n.__c].props.value}}}},un=\"17.0.2\";function on(n){return t.bind(null,n)}function ln(n){return!!n&&n.$$typeof===z}function cn(n){return ln(n)?f.apply(null,arguments):n}function fn(n){return!!n.__k&&(o(null,n),!0)}function an(n){return n&&(n.base||1===n.nodeType&&n)||null}var sn=function(n,t){return n(t)},hn=function(n,t){return n(t)},vn=u;function dn(n){n()}function pn(n){return n}function mn(){return[!1,dn]}var yn=d;function _n(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,E(u.__,t())||o({h:u})},[n,e,t]),v(function(){return E(u.__,u.v())||o({h:u}),n(function(){E(u.__,u.v())||o({h:u})})},[n]),e}var bn={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:yn,useTransition:mn,useDeferredValue:pn,useSyncExternalStore:_n,startTransition:dn,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:O,render:Y,hydrate:q,unmountComponentAtNode:fn,createPortal:j,createElement:t,createContext:l,createFactory:on,cloneElement:cn,createRef:c,Fragment:u,isValidElement:ln,findDOMNode:an,Component:n,PureComponent:w,memo:R,forwardRef:k,flushSync:hn,unstable_batchedUpdates:sn,StrictMode:vn,Suspense:D,SuspenseList:V,lazy:M,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:rn};export{O as Children,w as PureComponent,vn as StrictMode,D as Suspense,V as SuspenseList,rn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,cn as cloneElement,on as createFactory,j as createPortal,bn as default,an as findDOMNode,hn as flushSync,k as forwardRef,q as hydrate,ln as isValidElement,M as lazy,R as memo,Y as render,dn as startTransition,fn as unmountComponentAtNode,sn as unstable_batchedUpdates,pn as useDeferredValue,yn as useInsertionEffect,_n as useSyncExternalStore,mn as useTransition,un as version};\n//# sourceMappingURL=compat.module.js.map\n","import * as preact from 'preact';\nimport { Component, createElement, isValidElement, Fragment } from 'preact';\nimport { createPortal } from 'preact/compat';\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n styleTexts.push(styleText);\n styleEls.forEach((styleEl) => {\n appendStylesTo(styleEl, styleText);\n });\n}\nfunction ensureElHasStyles(el) {\n if (el.isConnected && // sometimes true if SSR system simulates DOM\n el.getRootNode // sometimes undefined if SSR system simulates DOM\n ) {\n registerStylesRoot(el.getRootNode());\n }\n}\nfunction registerStylesRoot(rootNode) {\n let styleEl = styleEls.get(rootNode);\n if (!styleEl || !styleEl.isConnected) {\n styleEl = rootNode.querySelector('style[data-fullcalendar]');\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.setAttribute('data-fullcalendar', '');\n const nonce = getNonceValue();\n if (nonce) {\n styleEl.nonce = nonce;\n }\n const parentEl = rootNode === document ? document.head : rootNode;\n const insertBefore = rootNode === document\n ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')\n : parentEl.firstChild;\n parentEl.insertBefore(styleEl, insertBefore);\n }\n styleEls.set(rootNode, styleEl);\n hydrateStylesRoot(styleEl);\n }\n}\nfunction hydrateStylesRoot(styleEl) {\n for (const styleText of styleTexts) {\n appendStylesTo(styleEl, styleText);\n }\n}\nfunction appendStylesTo(styleEl, styleText) {\n const { sheet } = styleEl;\n const ruleCnt = sheet.cssRules.length;\n styleText.split('}').forEach((styleStr, i) => {\n styleStr = styleStr.trim();\n if (styleStr) {\n sheet.insertRule(styleStr + '}', ruleCnt + i);\n }\n });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n if (queriedNonceValue === undefined) {\n queriedNonceValue = queryNonceValue();\n }\n return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag\n*/\nfunction queryNonceValue() {\n const metaWithNonce = document.querySelector('meta[name=\"csp-nonce\"]');\n if (metaWithNonce && metaWithNonce.hasAttribute('content')) {\n return metaWithNonce.getAttribute('content');\n }\n const elWithNonce = document.querySelector('script[nonce]');\n if (elWithNonce) {\n return elWithNonce.nonce || '';\n }\n return '';\n}\n// main\n// -------------------------------------------------------------------------------------------------\nif (typeof document !== 'undefined') {\n registerStylesRoot(document);\n}\n\nvar css_248z = \":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\\\"data:application/x-font-ttf;charset=utf-8;base64,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\\\") format(\\\"truetype\\\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\\\"\\\\e900\\\"}.fc-icon-chevron-right:before{content:\\\"\\\\e901\\\"}.fc-icon-chevrons-left:before{content:\\\"\\\\e902\\\"}.fc-icon-chevrons-right:before{content:\\\"\\\\e903\\\"}.fc-icon-minus-square:before{content:\\\"\\\\e904\\\"}.fc-icon-plus-square:before{content:\\\"\\\\e905\\\"}.fc-icon-x:before{content:\\\"\\\\e906\\\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\\\"\\\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\\\"\\\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\\\"\\\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}\";\ninjectStyles(css_248z);\n\nclass DelayedRunner {\n constructor(drainedOption) {\n this.drainedOption = drainedOption;\n this.isRunning = false;\n this.isDirty = false;\n this.pauseDepths = {};\n this.timeoutId = 0;\n }\n request(delay) {\n this.isDirty = true;\n if (!this.isPaused()) {\n this.clearTimeout();\n if (delay == null) {\n this.tryDrain();\n }\n else {\n this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n }\n pause(scope = '') {\n let { pauseDepths } = this;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n }\n resume(scope = '', force) {\n let { pauseDepths } = this;\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n }\n else {\n pauseDepths[scope] -= 1;\n let depth = pauseDepths[scope];\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n this.tryDrain();\n }\n }\n isPaused() {\n return Object.keys(this.pauseDepths).length;\n }\n tryDrain() {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n this.isRunning = false;\n }\n }\n clear() {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n }\n drained() {\n if (this.drainedOption) {\n this.drainedOption();\n }\n }\n}\n\nfunction removeElement(el) {\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n}\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n el = (el.parentElement || el.parentNode);\n } while (el !== null && el.nodeType === 1);\n return null;\n}\nfunction elementMatches(el, selector) {\n let method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n}\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nfunction findElements(container, selector) {\n let containers = container instanceof HTMLElement ? [container] : container;\n let allMatches = [];\n for (let i = 0; i < containers.length; i += 1) {\n let matches = containers[i].querySelectorAll(selector);\n for (let j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n return allMatches;\n}\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nfunction findDirectChildren(parent, selector) {\n let parents = parent instanceof HTMLElement ? [parent] : parent;\n let allMatches = [];\n for (let i = 0; i < parents.length; i += 1) {\n let childNodes = parents[i].children; // only ever elements\n for (let j = 0; j < childNodes.length; j += 1) {\n let childNode = childNodes[j];\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n return allMatches;\n}\n// Style\n// ----------------------------------------------------------------------------------------------------------------\nconst PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\nfunction applyStyle(el, props) {\n for (let propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n }\n else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = `${val}px`;\n }\n else {\n el.style[name] = val;\n }\n}\n// Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n}\n// Unique ID for DOM attribute\nlet guid$1 = 0;\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction buildDelegationHandler(selector, handler) {\n return (ev) => {\n let matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n };\n}\nfunction listenBySelector(container, eventType, selector, handler) {\n let attachedHandler = buildDelegationHandler(selector, handler);\n container.addEventListener(eventType, attachedHandler);\n return () => {\n container.removeEventListener(eventType, attachedHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n let currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(mouseOverEv, matchedChild);\n let realOnMouseLeave = (mouseLeaveEv) => {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nconst transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n let realCallback = (ev) => {\n callback(ev);\n transitionEventNames.forEach((eventName) => {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach((eventName) => {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n// ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\nfunction createAriaClickAttrs(handler) {\n return Object.assign({ onClick: handler }, createAriaKeyboardAttrs(handler));\n}\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown(ev) {\n if (ev.key === 'Enter' || ev.key === ' ') {\n handler(ev);\n ev.preventDefault(); // if space, don't scroll down page\n }\n },\n };\n}\n\nlet guidNumber = 0;\nfunction guid() {\n guidNumber += 1;\n return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.style.userSelect = 'none';\n el.style.webkitUserSelect = 'none';\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.style.userSelect = '';\n el.style.webkitUserSelect = '';\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\nfunction parseFieldSpecs(input) {\n let specs = [];\n let tokens = [];\n let i;\n let token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n let i;\n let cmp;\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction padStart(val, len) {\n let s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter(...args);\n }\n if (typeof formatter === 'string') { // non-blank string\n return args.reduce((str, arg, index) => (str.replace('$' + index, arg || '')), formatter);\n }\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\nfunction computeSmallestCellWidth(cellEl) {\n let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\n }\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width;\n}\n\nconst INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nconst PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n if (typeof input === 'string') {\n return parseString(input);\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseObject(input);\n }\n if (typeof input === 'number') {\n return parseObject({ [unit || 'milliseconds']: input });\n }\n return null;\n}\nfunction parseString(s) {\n let m = PARSE_RE.exec(s);\n if (m) {\n let sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n ),\n };\n }\n return null;\n}\nfunction parseObject(obj) {\n let duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms\n };\n let weeks = obj.weeks || obj.week;\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n return duration;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n return 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds,\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds,\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n,\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n let res = null;\n for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {\n let unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n let localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur) {\n let ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n// TODO: new util arrayify?\nfunction removeExact(array, exactVal) {\n let removeCnt = 0;\n let i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n }\n else {\n i += 1;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n let len = a0.length;\n let i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\n }\n }\n return true;\n}\n\nconst DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n let a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\n// TODO: why not use ranges?\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n let m0day = startOfDay(m0);\n let m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n let d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds(),\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n let y = marker.getUTCFullYear();\n let w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n let nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n let dayStart = startOfDay(marker);\n let days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n let fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC(...a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime = false) {\n let s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n}\nfunction formatIsoMonthStr(marker) {\n return marker.toISOString().match(/^\\d{4}-\\d{2}/)[0];\n}\n// TODO: use Date::toISOString and use everything after the T?\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso = false) {\n let sign = minutes < 0 ? '-' : '+';\n let abs = Math.abs(minutes);\n let hours = Math.floor(abs / 60);\n let mins = Math.round(abs % 60);\n if (doIso) {\n return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`;\n }\n return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;\n}\n\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n let currentArgs;\n let currentRes;\n return function (...newArgs) {\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n }\n else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.apply(this, newArgs);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArgs = newArgs;\n return currentRes;\n };\n}\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n let currentArg;\n let currentRes;\n return (newArg) => {\n if (!currentArg) {\n currentRes = workerFunc.call(this, newArg);\n }\n else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.call(this, newArg);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArg = newArg;\n return currentRes;\n };\n}\nfunction memoizeArraylike(// used at all?\nworkerFunc, resEquality, teardownFunc) {\n let currentArgSets = [];\n let currentResults = [];\n return (newArgSets) => {\n let currentLen = currentArgSets.length;\n let newLen = newArgSets.length;\n let i = 0;\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) { // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n }\n else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n let res = workerFunc.apply(this, newArgSets[i]);\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(this, newArgSets[i]);\n }\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n return currentResults;\n };\n}\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n let currentArgHash = {};\n let currentResHash = {};\n return (newArgHash) => {\n let newResHash = {};\n for (let key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(this, newArgHash[key]);\n }\n else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n let res = workerFunc.apply(this, newArgHash[key]);\n newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n ? currentResHash[key]\n : res;\n }\n else {\n newResHash[key] = currentResHash[key];\n }\n }\n currentArgHash = newArgHash;\n currentResHash = newResHash;\n return newResHash;\n };\n}\n\nconst EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0,\n};\nconst STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1,\n};\nconst MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nconst COMMA_RE = /,/g; // we need re for globalness\nconst MULTI_SPACE_RE = /\\s+/g;\nconst LTR_RE = /\\u200e/g; // control character\nconst UTC_RE = /UTC|GMT/;\nclass NativeFormatter {\n constructor(formatSettings) {\n let standardDateProps = {};\n let extendedSettings = {};\n let severity = 0;\n for (let name in formatSettings) {\n if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name] = formatSettings[name];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name], severity);\n }\n else {\n standardDateProps[name] = formatSettings[name];\n if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n format(date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n let { standardDateProps, extendedSettings } = this;\n let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n let biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n let full0 = this.format(start, context);\n let full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n let partial0 = partialFormattingFunc(start);\n let partial1 = partialFormattingFunc(end);\n let insertion = findCommonInsertion(full0, partial0, full1, partial1);\n let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n }\n getLargestUnit() {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n case 2:\n return 'day';\n default:\n return 'time'; // really?\n }\n }\n}\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n let standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return (date) => (formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return (date) => (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week));\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = Object.assign({}, standardDateProps); // copy\n extendedSettings = Object.assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n let zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n let zeroProps = Object.assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return (date) => {\n let { marker } = date;\n let format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n let s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase());\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`);\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, (m0) => m0.toLocaleLowerCase());\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n let replaced = false;\n s = s.replace(UTC_RE, () => {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ` ${tzoStr}`;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n let parts = [];\n if (display === 'long') {\n parts.push(weekTextLong);\n }\n else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n let partialOptions = {};\n for (let name in options) {\n if (!(name in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit) {\n partialOptions[name] = options[name];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n let i0 = 0;\n while (i0 < full0.length) {\n let found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n let before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n let after0 = full0.substr(i0);\n let i1 = 0;\n while (i1 < full1.length) {\n let found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n let before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n let after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0,\n };\n }\n }\n }\n return null;\n}\n\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n let a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6],\n };\n}\n\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n let startInfo = expandZonedMarker(start, context.calendarSystem);\n let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n defaultSeparator: betterDefaultSeparator || context.defaultSeparator,\n };\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nclass CmdFormatter {\n constructor(cmdStr) {\n this.cmdStr = cmdStr;\n }\n format(date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nclass FuncFormatter {\n constructor(func) {\n this.func = func;\n }\n format(date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nfunction createFormatter(input) {\n if (typeof input === 'object' && input) { // non-null object\n return new NativeFormatter(input);\n }\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n return null;\n}\n\n// base options\n// ------------\nconst BASE_OPTION_REFINERS = {\n navLinkDayClick: identity,\n navLinkWeekClick: identity,\n duration: createDuration,\n bootstrapFontAwesome: identity,\n buttonIcons: identity,\n customButtons: identity,\n defaultAllDayEventDuration: createDuration,\n defaultTimedEventDuration: createDuration,\n nextDayThreshold: createDuration,\n scrollTime: createDuration,\n scrollTimeReset: Boolean,\n slotMinTime: createDuration,\n slotMaxTime: createDuration,\n dayPopoverFormat: createFormatter,\n slotDuration: createDuration,\n snapDuration: createDuration,\n headerToolbar: identity,\n footerToolbar: identity,\n defaultRangeSeparator: String,\n titleRangeSeparator: String,\n forceEventDuration: Boolean,\n dayHeaders: Boolean,\n dayHeaderFormat: createFormatter,\n dayHeaderClassNames: identity,\n dayHeaderContent: identity,\n dayHeaderDidMount: identity,\n dayHeaderWillUnmount: identity,\n dayCellClassNames: identity,\n dayCellContent: identity,\n dayCellDidMount: identity,\n dayCellWillUnmount: identity,\n initialView: String,\n aspectRatio: Number,\n weekends: Boolean,\n weekNumberCalculation: identity,\n weekNumbers: Boolean,\n weekNumberClassNames: identity,\n weekNumberContent: identity,\n weekNumberDidMount: identity,\n weekNumberWillUnmount: identity,\n editable: Boolean,\n viewClassNames: identity,\n viewDidMount: identity,\n viewWillUnmount: identity,\n nowIndicator: Boolean,\n nowIndicatorClassNames: identity,\n nowIndicatorContent: identity,\n nowIndicatorDidMount: identity,\n nowIndicatorWillUnmount: identity,\n showNonCurrentDates: Boolean,\n lazyFetching: Boolean,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n timeZone: String,\n locales: identity,\n locale: identity,\n themeSystem: String,\n dragRevertDuration: Number,\n dragScroll: Boolean,\n allDayMaintainDuration: Boolean,\n unselectAuto: Boolean,\n dropAccept: identity,\n eventOrder: parseFieldSpecs,\n eventOrderStrict: Boolean,\n handleWindowResize: Boolean,\n windowResizeDelay: Number,\n longPressDelay: Number,\n eventDragMinDistance: Number,\n expandRows: Boolean,\n height: identity,\n contentHeight: identity,\n direction: String,\n weekNumberFormat: createFormatter,\n eventResizableFromStart: Boolean,\n displayEventTime: Boolean,\n displayEventEnd: Boolean,\n weekText: String,\n weekTextLong: String,\n progressiveEventRendering: Boolean,\n businessHours: identity,\n initialDate: identity,\n now: identity,\n eventDataTransform: identity,\n stickyHeaderDates: identity,\n stickyFooterScrollbar: identity,\n viewHeight: identity,\n defaultAllDay: Boolean,\n eventSourceFailure: identity,\n eventSourceSuccess: identity,\n eventDisplay: String,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventOverlap: identity,\n eventConstraint: identity,\n eventAllow: identity,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n eventClassNames: identity,\n eventContent: identity,\n eventDidMount: identity,\n eventWillUnmount: identity,\n selectConstraint: identity,\n selectOverlap: identity,\n selectAllow: identity,\n droppable: Boolean,\n unselectCancel: String,\n slotLabelFormat: identity,\n slotLaneClassNames: identity,\n slotLaneContent: identity,\n slotLaneDidMount: identity,\n slotLaneWillUnmount: identity,\n slotLabelClassNames: identity,\n slotLabelContent: identity,\n slotLabelDidMount: identity,\n slotLabelWillUnmount: identity,\n dayMaxEvents: identity,\n dayMaxEventRows: identity,\n dayMinWidth: Number,\n slotLabelInterval: createDuration,\n allDayText: String,\n allDayClassNames: identity,\n allDayContent: identity,\n allDayDidMount: identity,\n allDayWillUnmount: identity,\n slotMinWidth: Number,\n navLinks: Boolean,\n eventTimeFormat: createFormatter,\n rerenderDelay: Number,\n moreLinkText: identity,\n moreLinkHint: identity,\n selectMinDistance: Number,\n selectable: Boolean,\n selectLongPressDelay: Number,\n eventLongPressDelay: Number,\n selectMirror: Boolean,\n eventMaxStack: Number,\n eventMinHeight: Number,\n eventMinWidth: Number,\n eventShortHeight: Number,\n slotEventOverlap: Boolean,\n plugins: identity,\n firstDay: Number,\n dayCount: Number,\n dateAlignment: String,\n dateIncrement: createDuration,\n hiddenDays: identity,\n fixedWeekCount: Boolean,\n validRange: identity,\n visibleRange: identity,\n titleFormat: identity,\n eventInteractive: Boolean,\n // only used by list-view, but languages define the value, so we need it in base options\n noEventsText: String,\n viewHint: identity,\n navLinkHint: identity,\n closeHint: String,\n timeHint: String,\n eventHint: String,\n moreLinkClick: identity,\n moreLinkClassNames: identity,\n moreLinkContent: identity,\n moreLinkDidMount: identity,\n moreLinkWillUnmount: identity,\n monthStartFormat: createFormatter,\n // for connectors\n // (can't be part of plugin system b/c must be provided at runtime)\n handleCustomRendering: identity,\n customRenderingMetaMap: identity,\n customRenderingReplaces: Boolean,\n};\n// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\nconst BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n dayHeaders: true,\n initialView: '',\n aspectRatio: 1.35,\n headerToolbar: {\n start: 'title',\n center: '',\n end: 'today prev,next',\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n nowIndicator: false,\n scrollTime: '06:00:00',\n scrollTimeReset: true,\n slotMinTime: '00:00:00',\n slotMaxTime: '24:00:00',\n showNonCurrentDates: true,\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n locales: [],\n locale: '',\n themeSystem: 'standard',\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n unselectAuto: true,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5,\n expandRows: false,\n navLinks: false,\n selectable: false,\n eventMinHeight: 15,\n eventMinWidth: 30,\n eventShortHeight: 30,\n monthStartFormat: { month: 'long', day: 'numeric' },\n};\n// calendar listeners\n// ------------------\nconst CALENDAR_LISTENER_REFINERS = {\n datesSet: identity,\n eventsSet: identity,\n eventAdd: identity,\n eventChange: identity,\n eventRemove: identity,\n windowResize: identity,\n eventClick: identity,\n eventMouseEnter: identity,\n eventMouseLeave: identity,\n select: identity,\n unselect: identity,\n loading: identity,\n // internal\n _unmount: identity,\n _beforeprint: identity,\n _afterprint: identity,\n _noEventDrop: identity,\n _noEventResize: identity,\n _resize: identity,\n _scrollRequest: identity,\n};\n// calendar-specific options\n// -------------------------\nconst CALENDAR_OPTION_REFINERS = {\n buttonText: identity,\n buttonHints: identity,\n views: identity,\n plugins: identity,\n initialEvents: identity,\n events: identity,\n eventSources: identity,\n};\nconst COMPLEX_OPTION_COMPARATORS = {\n headerToolbar: isMaybeObjectsEqual,\n footerToolbar: isMaybeObjectsEqual,\n buttonText: isMaybeObjectsEqual,\n buttonHints: isMaybeObjectsEqual,\n buttonIcons: isMaybeObjectsEqual,\n dateIncrement: isMaybeObjectsEqual,\n plugins: isMaybeArraysEqual,\n events: isMaybeArraysEqual,\n eventSources: isMaybeArraysEqual,\n ['resources']: isMaybeArraysEqual,\n};\nfunction isMaybeObjectsEqual(a, b) {\n if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects\n return isPropsEqual(a, b);\n }\n return a === b;\n}\nfunction isMaybeArraysEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return isArraysEqual(a, b);\n }\n return a === b;\n}\n// view-specific options\n// ---------------------\nconst VIEW_OPTION_REFINERS = {\n type: String,\n component: identity,\n buttonText: String,\n buttonTextKey: String,\n dateProfileGeneratorClass: identity,\n usesMinMaxTime: Boolean,\n classNames: identity,\n content: identity,\n didMount: identity,\n willUnmount: identity,\n};\n// util funcs\n// ----------------------------------------------------------------------------------------------------\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\nfunction refineProps(input, refiners) {\n let refined = {};\n let extra = {};\n for (let propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n for (let propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n return { refined, extra };\n}\nfunction identity(raw) {\n return raw;\n}\n\nconst { hasOwnProperty } = Object.prototype;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexPropsMap) {\n let dest = {};\n if (complexPropsMap) {\n for (let name in complexPropsMap) {\n if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable\n let complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let val = propObjs[i][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n }\n // copy values into the destination, going from last to first\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let props = propObjs[i];\n for (let name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n let filtered = {};\n for (let key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n let newHash = {};\n for (let key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n let hash = {};\n for (let item of a) {\n hash[item] = true;\n }\n return hash;\n}\n// TODO: reassess browser support\n// https://caniuse.com/?search=object.values\nfunction hashValuesToArray(obj) {\n let a = [];\n for (let key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\n }\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\nconst HANDLER_RE = /^on[A-Z]/;\nfunction isNonHandlerPropsEqual(obj0, obj1) {\n const keys = getUnequalProps(obj0, obj1);\n for (let key of keys) {\n if (!HANDLER_RE.test(key)) {\n return false;\n }\n }\n return true;\n}\nfunction getUnequalProps(obj0, obj1) {\n let keys = [];\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key);\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key);\n }\n }\n }\n return keys;\n}\nfunction compareObjs(oldProps, newProps, equalityFuncs = {}) {\n if (oldProps === newProps) {\n return true;\n }\n for (let key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;\n else {\n return false;\n }\n }\n // check for props that were omitted in the new\n for (let key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n if (comparator) {\n return comparator(val0, val1);\n }\n return false;\n}\nfunction collectFromHash(hash, startIndex = 0, endIndex, step = 1) {\n let res = [];\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n for (let i = startIndex; i < endIndex; i += step) {\n let val = hash[i];\n if (val !== undefined) { // will disregard undefined for sparse arrays\n res.push(val);\n }\n }\n return res;\n}\n\nlet calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nclass GregorianCalendarSystem {\n getMarkerYear(d) {\n return d.getUTCFullYear();\n }\n getMarkerMonth(d) {\n return d.getUTCMonth();\n }\n getMarkerDay(d) {\n return d.getUTCDate();\n }\n arrayToMarker(arr) {\n return arrayToUtcDate(arr);\n }\n markerToArray(marker) {\n return dateToUtcArray(marker);\n }\n}\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nconst ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n let m = ISO_RE.exec(str);\n if (m) {\n let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));\n if (isValidDate(marker)) {\n let timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset,\n };\n }\n }\n return null;\n}\n\nclass DateEnv {\n constructor(settings) {\n let timeZone = this.timeZone = settings.timeZone;\n let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n this.cmdFormatter = settings.cmdFormatter;\n this.defaultSeparator = settings.defaultSeparator;\n }\n // Creating / Parsing\n createMarker(input) {\n let meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n }\n createNowMarker() {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n createMarkerMeta(input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n let marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker, isTimeUnspecified: false, forcedTzo: null };\n }\n parse(s) {\n let parts = parse(s);\n if (parts === null) {\n return null;\n }\n let { marker } = parts;\n let forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo };\n }\n // Accessors\n getYear(marker) {\n return this.calendarSystem.getMarkerYear(marker);\n }\n getMonth(marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n }\n getDay(marker) {\n return this.calendarSystem.getMarkerDay(marker);\n }\n // Adding / Subtracting\n add(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n subtract(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n addYears(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n addMonths(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n // Diffing Whole Units\n diffWholeYears(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n }\n diffWholeMonths(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n }\n // Range / Duration\n greatestWholeUnit(m0, m1) {\n let n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n }\n countDurationsBetween(m0, m1, d) {\n // TODO: can use greatestWholeUnit\n let diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n }\n // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n startOf(m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n if (unit === 'day') {\n return startOfDay(m);\n }\n if (unit === 'hour') {\n return startOfHour(m);\n }\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n if (unit === 'second') {\n return startOfSecond(m);\n }\n return null;\n }\n startOfYear(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n ]);\n }\n startOfMonth(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n ]);\n }\n startOfWeek(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n ]);\n }\n // Week Number\n computeWeekNumber(marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n // TODO: choke on timeZoneName: long\n format(marker, formatter, dateOptions = {}) {\n return formatter.format({\n marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker),\n }, this);\n }\n formatRange(start, end, formatter, dateOptions = {}) {\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start),\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end),\n }, this, dateOptions.defaultSeparator);\n }\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n formatIso(marker, extraOptions = {}) {\n let timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n }\n // TimeZone\n timestampToMarker(ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n offsetForMarker(m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n if (this.timeZone === 'UTC') {\n return 0;\n }\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n }\n // Conversion\n toDate(m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n }\n}\n\nclass Theme {\n constructor(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n setIconOverride(iconOverrideHash) {\n let iconClassesCopy;\n let buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = Object.assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n }\n applyIconOverridePrefix(className) {\n let prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n }\n getClass(key) {\n return this.classes[key] || '';\n }\n getIconClass(buttonName, isRtl) {\n let className;\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n }\n else {\n className = this.iconClasses[buttonName];\n }\n if (className) {\n return `${this.baseIconClass} ${className}`;\n }\n return '';\n }\n getCustomButtonIconClass(customButtonProps) {\n let className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`;\n }\n }\n return '';\n }\n}\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\n/*\nNOTE: this can be a public API, especially createElement for hooks.\nSee examples/typescript-scheduler/src/index.ts\n*/\nfunction flushSync(runBeforeFlush) {\n runBeforeFlush();\n let oldDebounceRendering = preact.options.debounceRendering; // orig\n let callbackQ = [];\n function execCallbackSync(callback) {\n callbackQ.push(callback);\n }\n preact.options.debounceRendering = execCallbackSync;\n preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));\n while (callbackQ.length) {\n callbackQ.shift()();\n }\n preact.options.debounceRendering = oldDebounceRendering;\n}\nclass FakeComponent extends preact.Component {\n render() { return preact.createElement('div', {}); }\n componentDidMount() { this.setState({}); }\n}\n// TODO: use preact/compat instead?\nfunction createContext(defaultValue) {\n let ContextType = preact.createContext(defaultValue);\n let origProvider = ContextType.Provider;\n ContextType.Provider = function () {\n let isNew = !this.getChildContext;\n let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n if (isNew) {\n let subs = [];\n this.shouldComponentUpdate = (_props) => {\n if (this.props.value !== _props.value) {\n subs.forEach((c) => {\n c.context = _props.value;\n c.forceUpdate();\n });\n }\n };\n this.sub = (c) => {\n subs.push(c);\n let old = c.componentWillUnmount;\n c.componentWillUnmount = () => {\n subs.splice(subs.indexOf(c), 1);\n old && old.call(c);\n };\n };\n }\n return children;\n };\n return ContextType;\n}\n\nclass ScrollResponder {\n constructor(execFunc, emitter, scrollTime, scrollTimeReset) {\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n this.handleScrollRequest = (request) => {\n this.queuedRequest = Object.assign({}, this.queuedRequest || {}, request);\n this.drain();\n };\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n detach() {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n }\n update(isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n }\n else {\n this.drain();\n }\n }\n fireInitialScroll() {\n this.handleScrollRequest({\n time: this.scrollTime,\n });\n }\n drain() {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n }\n}\n\nconst ViewContextType = createContext({}); // for Components\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n return {\n dateEnv,\n options: viewOptions,\n pluginHooks,\n emitter,\n dispatch,\n getCurrentData,\n calendarApi,\n viewSpec,\n viewApi,\n dateProfileGenerator,\n theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler(handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler(handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder(execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent,\n unregisterInteractiveComponent,\n };\n}\n\n/* eslint max-classes-per-file: off */\nclass PureComponent extends Component {\n shouldComponentUpdate(nextProps, nextState) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n }\n return !compareObjs(this.props, nextProps, this.propEquality) ||\n !compareObjs(this.state, nextState, this.stateEquality);\n }\n // HACK for freakin' React StrictMode\n safeSetState(newState) {\n if (!compareObjs(this.state, Object.assign(Object.assign({}, this.state), newState), this.stateEquality)) {\n this.setState(newState);\n }\n }\n}\nPureComponent.addPropsEquality = addPropsEquality;\nPureComponent.addStateEquality = addStateEquality;\nPureComponent.contextType = ViewContextType;\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\nclass BaseComponent extends PureComponent {\n}\nBaseComponent.contextType = ViewContextType;\nfunction addPropsEquality(propEquality) {\n let hash = Object.create(this.prototype.propEquality);\n Object.assign(hash, propEquality);\n this.prototype.propEquality = hash;\n}\nfunction addStateEquality(stateEquality) {\n let hash = Object.create(this.prototype.stateEquality);\n Object.assign(hash, stateEquality);\n this.prototype.stateEquality = hash;\n}\n// use other one\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n }\n else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\n}\n\nclass ContentInjector extends BaseComponent {\n constructor() {\n super(...arguments);\n this.id = guid();\n this.queuedDomNodes = [];\n this.currentDomNodes = [];\n this.handleEl = (el) => {\n const { options } = this.context;\n const { generatorName } = this.props;\n if (!options.customRenderingReplaces || !hasCustomRenderingHandler(generatorName, options)) {\n this.updateElRef(el);\n }\n };\n this.updateElRef = (el) => {\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { customGenerator, defaultGenerator, renderProps } = props;\n const attrs = buildElAttrs(props, [], this.handleEl);\n let useDefault = false;\n let innerContent;\n let queuedDomNodes = [];\n let currentGeneratorMeta;\n if (customGenerator != null) {\n const customGeneratorRes = typeof customGenerator === 'function' ?\n customGenerator(renderProps, createElement) :\n customGenerator;\n if (customGeneratorRes === true) {\n useDefault = true;\n }\n else {\n const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null\n if (isObject && ('html' in customGeneratorRes)) {\n attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };\n }\n else if (isObject && ('domNodes' in customGeneratorRes)) {\n queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);\n }\n else if (isObject\n ? isValidElement(customGeneratorRes) // vdom node\n : typeof customGeneratorRes !== 'function' // primitive value (like string or number)\n ) {\n // use in vdom\n innerContent = customGeneratorRes;\n }\n else {\n // an exotic object for handleCustomRendering\n currentGeneratorMeta = customGeneratorRes;\n }\n }\n }\n else {\n useDefault = !hasCustomRenderingHandler(props.generatorName, options);\n }\n if (useDefault && defaultGenerator) {\n innerContent = defaultGenerator(renderProps);\n }\n this.queuedDomNodes = queuedDomNodes;\n this.currentGeneratorMeta = currentGeneratorMeta;\n return createElement(props.elTag, attrs, innerContent);\n }\n componentDidMount() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentDidUpdate() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentWillUnmount() {\n this.triggerCustomRendering(false); // TODO: different API for removal?\n }\n triggerCustomRendering(isActive) {\n var _a;\n const { props, context } = this;\n const { handleCustomRendering, customRenderingMetaMap } = context.options;\n if (handleCustomRendering) {\n const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];\n if (generatorMeta) {\n handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.updateElRef, // front-end framework tells us about new container els\n generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));\n }\n }\n }\n applyQueueudDomNodes() {\n const { queuedDomNodes, currentDomNodes } = this;\n const el = this.base;\n if (!isArraysEqual(queuedDomNodes, currentDomNodes)) {\n currentDomNodes.forEach(removeElement);\n for (let newNode of queuedDomNodes) {\n el.appendChild(newNode);\n }\n this.currentDomNodes = queuedDomNodes;\n }\n }\n}\nContentInjector.addPropsEquality({\n elClasses: isArraysEqual,\n elStyle: isPropsEqual,\n elAttrs: isNonHandlerPropsEqual,\n renderProps: isPropsEqual,\n});\n// Util\n/*\nDoes UI-framework provide custom way of rendering that does not use Preact VDOM\nAND does the calendar's options define custom rendering?\nAKA. Should we NOT render the default content?\n*/\nfunction hasCustomRenderingHandler(generatorName, options) {\n var _a;\n return Boolean(options.handleCustomRendering &&\n generatorName &&\n ((_a = options.customRenderingMetaMap) === null || _a === void 0 ? void 0 : _a[generatorName]));\n}\nfunction buildElAttrs(props, extraClassNames, elRef) {\n const attrs = Object.assign(Object.assign({}, props.elAttrs), { ref: elRef });\n if (props.elClasses || extraClassNames) {\n attrs.className = (props.elClasses || [])\n .concat(extraClassNames || [])\n .concat(attrs.className || [])\n .filter(Boolean)\n .join(' ');\n }\n if (props.elStyle) {\n attrs.style = props.elStyle;\n }\n return attrs;\n}\nfunction isTruthy(val) {\n return Boolean(val);\n}\n\nconst RenderId = createContext(0);\n\nclass ContentContainer extends Component {\n constructor() {\n super(...arguments);\n this.InnerContent = InnerContentInjector.bind(undefined, this);\n this.handleEl = (el) => {\n this.el = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n if (el && this.didMountMisfire) {\n this.componentDidMount();\n }\n }\n };\n }\n render() {\n const { props } = this;\n const generatedClassNames = generateClassNames(props.classNameGenerator, props.renderProps);\n if (props.children) {\n const elAttrs = buildElAttrs(props, generatedClassNames, this.handleEl);\n const children = props.children(this.InnerContent, props.renderProps, elAttrs);\n if (props.elTag) {\n return createElement(props.elTag, elAttrs, children);\n }\n else {\n return children;\n }\n }\n else {\n return createElement((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));\n }\n }\n componentDidMount() {\n var _a, _b;\n if (this.el) {\n (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n else {\n this.didMountMisfire = true;\n }\n }\n componentWillUnmount() {\n var _a, _b;\n (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n}\nContentContainer.contextType = RenderId;\nfunction InnerContentInjector(containerComponent, props) {\n const parentProps = containerComponent.props;\n return createElement((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));\n}\n// Utils\nfunction generateClassNames(classNameGenerator, renderProps) {\n const classNames = typeof classNameGenerator === 'function' ?\n classNameGenerator(renderProps) :\n classNameGenerator || [];\n return typeof classNames === 'string' ? [classNames] : classNames;\n}\n\nclass ViewContainer extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = { view: context.viewApi };\n return (createElement(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [\n ...buildViewClassNames(props.viewSpec),\n ...(props.elClasses || []),\n ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));\n }\n}\nfunction buildViewClassNames(viewSpec) {\n return [\n `fc-${viewSpec.type}-view`,\n 'fc-view',\n ];\n}\n\nfunction parseRange(input, dateEnv) {\n let start = null;\n let end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start, end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n let invertedRanges = [];\n let { start } = constraintRange; // the end of the previous range. the start of the new range\n let i;\n let dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n let { start, end } = range0;\n let newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start, end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n let start = startOfDay(timedRange.start);\n let end = addDays(start, dayCnt);\n return { start, end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold = createDuration(0)) {\n let startDay = null;\n let endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n let endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n let visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n default:\n return currentDate;\n }\n}\nfunction getInitialDate(options, dateEnv) {\n let initialDateInput = options.initialDate;\n // compute the initial ambig-timezone date\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n return dateEnv.createMarker(nowInput);\n}\n\nclass DateProfileGenerator {\n constructor(props) {\n this.props = props;\n this.nowDate = getNow(props.nowInput, props.dateEnv);\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n buildPrev(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1, forceToValid);\n }\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n buildNext(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1, forceToValid);\n }\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n build(currentDate, direction, forceToValid = true) {\n let { props } = this;\n let validRange;\n let currentInfo;\n let isRangeAllDay;\n let renderRange;\n let activeRange;\n let isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n activeRange = this.adjustActiveRange(activeRange);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n // HACK: constrain to render-range so `currentDate` is more useful to view rendering\n if (!rangeContainsMarker(renderRange, currentDate)) {\n currentDate = renderRange.start;\n }\n return {\n currentDate,\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange,\n // Duration object that denotes the first visible time of any given day\n slotMinTime: props.slotMinTime,\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration),\n // pass a fallback (might be null) ^\n };\n }\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n buildValidRange() {\n let input = this.props.validRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(this.props.calendarApi, this.nowDate)\n : input;\n return this.refineRange(simpleInput) ||\n { start: null, end: null }; // completely open-ended\n }\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n buildCurrentRangeInfo(date, direction) {\n let { props } = this;\n let duration = null;\n let unit = null;\n let range = null;\n let dayCount;\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.props.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration, unit, range };\n }\n getFallbackDuration() {\n return createDuration({ day: 1 });\n }\n // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n adjustActiveRange(range) {\n let { dateEnv, usesMinMaxTime, slotMinTime, slotMaxTime } = this.props;\n let { start, end } = range;\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, slotMinTime);\n }\n // expand active range if slotMaxTime is beyond one day (why not when negative?)\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n return { start, end };\n }\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n buildRangeFromDuration(date, direction, duration, unit) {\n let { dateEnv, dateAlignment } = this.props;\n let start;\n let end;\n let res;\n // compute what the alignment should be\n if (!dateAlignment) {\n let { dateIncrement } = this.props;\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n }\n else {\n dateAlignment = unit;\n }\n }\n else {\n dateAlignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = { start, end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n }\n // Builds the \"current\" range when a dayCount is specified.\n buildRangeFromDayCount(date, direction, dayCount) {\n let { dateEnv, dateAlignment } = this.props;\n let runningCount = 0;\n let start = date;\n let end;\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n return { start, end };\n }\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n buildCustomVisibleRange(date) {\n let { props } = this;\n let input = props.visibleRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n : input;\n let range = this.refineRange(simpleInput);\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n return range;\n }\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n }\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n buildDateIncrement(fallback) {\n let { dateIncrement } = this.props;\n let customAlignment;\n if (dateIncrement) {\n return dateIncrement;\n }\n if ((customAlignment = this.props.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n if (fallback) {\n return fallback;\n }\n return createDuration({ days: 1 });\n }\n refineRange(rangeInput) {\n if (rangeInput) {\n let range = parseRange(rangeInput, this.props.dateEnv);\n if (range) {\n range = computeVisibleDayRange(range);\n }\n return range;\n }\n return null;\n }\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n initHiddenDays() {\n let hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n let isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n let dayCnt = 0;\n let i;\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n }\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n trimHiddenDays(range) {\n let { start, end } = range;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start, end };\n }\n return null;\n }\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n isHiddenDay(day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n }\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n skipHiddenDays(date, inc = 1, isExclusive = false) {\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n }\n}\n\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: guid(),\n defId,\n range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,\n };\n}\n\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n for (let i = 0; i < recurringTypes.length; i += 1) {\n let parsed = recurringTypes[i].parse(refined, dateEnv);\n if (parsed) {\n let { allDay } = refined;\n if (allDay == null) {\n allDay = defaultAllDay;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n return {\n allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i,\n };\n }\n }\n return null;\n}\nfunction expandRecurring(eventStore, framingRange, context) {\n let { dateEnv, pluginHooks, options } = context;\n let { defs, instances } = eventStore;\n // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n instances = filterHash(instances, (instance) => !defs[instance.defId].recurringDef);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.recurringDef) {\n let { duration } = def.recurringDef;\n if (!duration) {\n duration = def.allDay ?\n options.defaultAllDayEventDuration :\n options.defaultTimedEventDuration;\n }\n let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n for (let start of starts) {\n let instance = createEventInstance(defId, {\n start,\n end: dateEnv.add(start, duration),\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs, instances };\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n let typeDef = recurringTypes[eventDef.recurringDef.typeId];\n let markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end,\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nconst EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n interactive: Boolean,\n};\nconst EVENT_DATE_REFINERS = {\n start: identity,\n end: identity,\n date: identity,\n allDay: Boolean,\n};\nconst EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {\n let { refined, extra } = refineEventDef(raw, context, refiners);\n let defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n if (recurringRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration,\n };\n return { def, instance: null };\n }\n let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n if (singleRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);\n let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {\n instance.instanceId = instanceIdMap[def.publicId];\n }\n return { def, instance };\n }\n return null;\n}\nfunction refineEventDef(raw, context, refiners = buildEventRefiners(context)) {\n return refineProps(raw, refiners);\n}\nfunction buildEventRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {\n let def = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),\n sourceId,\n allDay,\n hasEnd,\n interactive: refined.interactive,\n ui: createEventUi(refined, context),\n extendedProps: Object.assign(Object.assign({}, (refined.extendedProps || {})), extra),\n };\n for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {\n Object.assign(def, memberAdder(refined));\n }\n // help out EventImpl from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n let { allDay } = refined;\n let startMeta;\n let startMarker = null;\n let hasEnd = false;\n let endMeta;\n let endMarker = null;\n let startInput = refined.start != null ? refined.start : refined.date;\n startMeta = context.dateEnv.createMarkerMeta(startInput);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ?\n context.options.defaultAllDayEventDuration :\n context.options.defaultTimedEventDuration);\n }\n return {\n allDay,\n hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n };\n}\nfunction computeIsDefaultAllDay(eventSource, context) {\n let res = null;\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n return res;\n}\n\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {\n let eventStore = createEmptyEventStore();\n let eventRefiners = buildEventRefiners(context);\n for (let rawEvent of rawEvents) {\n let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore = createEmptyEventStore()) {\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n let instance = eventStore.instances[instanceId];\n if (instance) {\n let def = eventStore.defs[instance.defId];\n // get events/instances with same group\n let newStore = filterEventStoreDefs(eventStore, (lookDef) => isEventDefsGrouped(def, lookDef));\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def.defId] = def;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: Object.assign(Object.assign({}, store0.defs), store1.defs),\n instances: Object.assign(Object.assign({}, store0.instances), store1.instances),\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n let defs = filterHash(eventStore.defs, filterFunc);\n let instances = filterHash(eventStore.instances, (instance) => (defs[instance.defId] // still exists?\n ));\n return { defs, instances };\n}\nfunction excludeSubEventStore(master, sub) {\n let { defs, instances } = master;\n let filteredDefs = {};\n let filteredInstances = {};\n for (let defId in defs) {\n if (!sub.defs[defId]) { // not explicitly excluded\n filteredDefs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n if (!sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId];\n }\n }\n return {\n defs: filteredDefs,\n instances: filteredInstances,\n };\n}\n\nfunction normalizeConstraint(input, context) {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true); // allowOpenRange=true\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n if (input != null) {\n return String(input);\n }\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n return [];\n}\n\n// TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\nconst EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity,\n overlap: identity,\n allow: identity,\n className: parseClassNames,\n classNames: parseClassNames,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String,\n};\nconst EMPTY_EVENT_UI = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n};\nfunction createEventUi(refined, context) {\n let constraint = normalizeConstraint(refined.constraint, context);\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural\n };\n}\n// TODO: prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n display: item1.display != null ? item1.display : item0.display,\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames),\n };\n}\n\nconst EVENT_SOURCE_REFINERS = {\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity,\n eventDataTransform: identity,\n // for any network-related sources\n success: identity,\n failure: identity,\n};\nfunction parseEventSource(raw, context, refiners = buildEventSourceRefiners(context)) {\n let rawObj;\n if (typeof raw === 'string') {\n rawObj = { url: raw };\n }\n else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = { events: raw };\n }\n else if (typeof raw === 'object' && raw) { // not null\n rawObj = raw;\n }\n if (rawObj) {\n let { refined, extra } = refineProps(rawObj, refiners);\n let metaRes = buildEventSourceMeta(refined, context);\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra,\n };\n }\n }\n return null;\n}\nfunction buildEventSourceRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\nfunction buildEventSourceMeta(raw, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n for (let i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n let def = defs[i];\n let meta = def.parseMeta(raw);\n if (meta) {\n return { sourceDefId: i, meta };\n }\n }\n return null;\n}\n\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n case 'RESET_RAW_EVENTS':\n return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n case 'RESET_EVENTS':\n return action.eventStore;\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n return eventStore;\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, (eventDef) => (!eventDef.sourceId // only keep events with no source id\n ));\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n let subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {\n const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);\n let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);\n return expandRecurring(newEventStore, activeRange, context);\n}\nfunction transformRawEvents(rawEvents, eventSource, context) {\n let calEachTransform = context.options.eventDataTransform;\n let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n let refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (let rawEvent of rawEvents) {\n let refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n let { defs } = eventStore;\n let instances = mapHash(eventStore.instances, (instance) => {\n let def = defs[instance.defId];\n if (def.allDay) {\n return instance; // isn't dependent on timezone\n }\n return Object.assign(Object.assign({}, instance), { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n });\n return { defs, instances };\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, (eventDef) => eventDef.sourceId !== sourceId);\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),\n };\n}\nfunction buildPublicIdMaps(eventStore) {\n const { defs, instances } = eventStore;\n const defIdMap = {};\n const instanceIdMap = {};\n for (let defId in defs) {\n const def = defs[defId];\n const { publicId } = def;\n if (publicId) {\n defIdMap[publicId] = defId;\n }\n }\n for (let instanceId in instances) {\n const instance = instances[instanceId];\n const def = defs[instance.defId];\n const { publicId } = def;\n if (publicId) {\n instanceIdMap[publicId] = instanceId;\n }\n }\n return { defIdMap, instanceIdMap };\n}\n\nclass Emitter {\n constructor() {\n this.handlers = {};\n this.thisContext = null;\n }\n setThisContext(thisContext) {\n this.thisContext = thisContext;\n }\n setOptions(options) {\n this.options = options;\n }\n on(type, handler) {\n addToHash(this.handlers, type, handler);\n }\n off(type, handler) {\n removeFromHash(this.handlers, type, handler);\n }\n trigger(type, ...args) {\n let attachedHandlers = this.handlers[type] || [];\n let optionHandler = this.options && this.options[type];\n let handlers = [].concat(optionHandler || [], attachedHandlers);\n for (let handler of handlers) {\n handler.apply(this.thisContext, args);\n }\n }\n hasHandlers(type) {\n return Boolean((this.handlers[type] && this.handlers[type].length) ||\n (this.options && this.options[type]));\n }\n}\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter((func) => func !== handler);\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\nconst DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours', // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\nfunction refineInputs(input) {\n let rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter((rawDef) => rawDef.daysOfWeek);\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map((rawDef) => (Object.assign(Object.assign({}, DEF_DEFAULTS), rawDef)));\n return rawDefs;\n}\n\nfunction triggerDateSelect(selection, pev, context) {\n context.emitter.trigger('select', Object.assign(Object.assign({}, buildDateSpanApiWithContext(selection, context)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));\n}\nfunction triggerDateUnselect(pev, context) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view,\n });\n}\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.dateSpanTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n return props;\n}\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nfunction getDefaultEventEnd(allDay, marker, context) {\n let { dateEnv, options } = context;\n let end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n }\n else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n return end;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n let dest = createEmptyEventStore();\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n let standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n let copy = Object.assign(Object.assign(Object.assign({}, eventDef), standardProps), { ui: Object.assign(Object.assign({}, eventDef.ui), standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = Object.assign(Object.assign({}, copy.extendedProps), mutation.extendedProps);\n }\n for (let applier of context.pluginHooks.eventDefMutationAppliers) {\n applier(copy, mutation, context);\n }\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n let { dateEnv } = context;\n let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n let copy = Object.assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta),\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end,\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta),\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end),\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n return copy;\n}\n\nclass EventSourceImpl {\n constructor(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n remove() {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId,\n });\n }\n refetch() {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true,\n });\n }\n get id() {\n return this.internalEventSource.publicId;\n }\n get url() {\n return this.internalEventSource.meta.url;\n }\n get format() {\n return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n }\n}\n\nclass EventImpl {\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n constructor(context, def, instance) {\n this._context = context;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n setProp(name, val) {\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.');\n // TODO: make proper aliasing system?\n }\n else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { publicId: val }, // hardcoded internal name\n });\n }\n else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { [name]: val },\n });\n }\n else if (name in EVENT_UI_REFINERS) {\n let ui = EVENT_UI_REFINERS[name](val);\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = { [name]: val };\n }\n this.mutate({\n standardProps: { ui },\n });\n }\n else {\n console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`);\n }\n }\n setExtendedProp(name, val) {\n this.mutate({\n extendedProps: { [name]: val },\n });\n }\n setStart(startInput, options = {}) {\n let { dateEnv } = this._context;\n let start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n let instanceRange = this._instance.range;\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta });\n }\n }\n }\n setEnd(endInput, options = {}) {\n let { dateEnv } = this._context;\n let end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n }\n setDates(startInput, endInput, options = {}) {\n let { dateEnv } = this._context;\n let standardProps = { allDay: options.allDay };\n let start = dateEnv.createMarker(startInput);\n let end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n let instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n else {\n this.mutate({ startDelta, endDelta, standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n }\n }\n moveStart(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n }\n moveEnd(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n }\n moveDates(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n }\n setAllDay(allDay, options = {}) {\n let standardProps = { allDay };\n let { maintainDuration } = options;\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps });\n }\n formatRange(formatInput) {\n let { dateEnv } = this._context;\n let instance = this._instance;\n let formatter = createFormatter(formatInput);\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo,\n });\n }\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo,\n });\n }\n mutate(mutation) {\n let instance = this._instance;\n if (instance) {\n let def = this._def;\n let context = this._context;\n let { eventStore } = context.getCurrentData();\n let relevantEvents = getRelevantEvents(eventStore, instance.instanceId);\n let eventConfigBase = {\n '': {\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n },\n };\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context);\n let oldEvent = new EventImpl(context, def, instance); // snapshot\n this._def = relevantEvents.defs[def.defId];\n this._instance = relevantEvents.instances[instance.instanceId];\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n context.emitter.trigger('eventChange', {\n oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context, instance),\n revert() {\n context.dispatch({\n type: 'RESET_EVENTS',\n eventStore, // the ORIGINAL store\n });\n },\n });\n }\n }\n remove() {\n let context = this._context;\n let asStore = eventApiToStore(this);\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore,\n });\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore,\n });\n },\n });\n }\n get source() {\n let { sourceId } = this._def;\n if (sourceId) {\n return new EventSourceImpl(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n return null;\n }\n get start() {\n return this._instance ?\n this._context.dateEnv.toDate(this._instance.range.start) :\n null;\n }\n get end() {\n return (this._instance && this._def.hasEnd) ?\n this._context.dateEnv.toDate(this._instance.range.end) :\n null;\n }\n get startStr() {\n let instance = this._instance;\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo,\n });\n }\n return '';\n }\n get endStr() {\n let instance = this._instance;\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo,\n });\n }\n return '';\n }\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get id() { return this._def.publicId; }\n get groupId() { return this._def.groupId; }\n get allDay() { return this._def.allDay; }\n get title() { return this._def.title; }\n get url() { return this._def.url; }\n get display() { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier\n get startEditable() { return this._def.ui.startEditable; }\n get durationEditable() { return this._def.ui.durationEditable; }\n get constraint() { return this._def.ui.constraints[0] || null; }\n get overlap() { return this._def.ui.overlap; }\n get allow() { return this._def.ui.allows[0] || null; }\n get backgroundColor() { return this._def.ui.backgroundColor; }\n get borderColor() { return this._def.ui.borderColor; }\n get textColor() { return this._def.ui.textColor; }\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get classNames() { return this._def.ui.classNames; }\n get extendedProps() { return this._def.extendedProps; }\n toPlainObject(settings = {}) {\n let def = this._def;\n let { ui } = def;\n let { startStr, endStr } = this;\n let res = {\n allDay: def.allDay,\n };\n if (def.title) {\n res.title = def.title;\n }\n if (startStr) {\n res.start = startStr;\n }\n if (endStr) {\n res.end = endStr;\n }\n if (def.publicId) {\n res.id = def.publicId;\n }\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n if (def.url) {\n res.url = def.url;\n }\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n }\n // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n Object.assign(res, def.extendedProps);\n }\n else {\n res.extendedProps = def.extendedProps;\n }\n }\n return res;\n }\n toJSON() {\n return this.toPlainObject();\n }\n}\nfunction eventApiToStore(eventApi) {\n let def = eventApi._def;\n let instance = eventApi._instance;\n return {\n defs: { [def.defId]: def },\n instances: instance\n ? { [instance.instanceId]: instance }\n : {},\n };\n}\nfunction buildEventApis(eventStore, context, excludeInstance) {\n let { defs, instances } = eventStore;\n let eventApis = [];\n let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n for (let id in instances) {\n let instance = instances[id];\n let def = defs[instance.defId];\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventImpl(context, def, instance));\n }\n }\n return eventApis;\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n let inverseBgByGroupId = {};\n let inverseBgByDefId = {};\n let defByGroupId = {};\n let bgRanges = [];\n let fgRanges = [];\n let eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n let ui = eventUis[def.defId];\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = eventStore.defs[instance.defId];\n let ui = eventUis[def.defId];\n let origRange = instance.range;\n let normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n let slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else if (ui.display !== 'none') {\n (ui.display === 'background' ? bgRanges : fgRanges).push({\n def,\n ui,\n instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),\n });\n }\n }\n }\n for (let groupId in inverseBgByGroupId) { // BY GROUP\n let ranges = inverseBgByGroupId[groupId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n let def = defByGroupId[groupId];\n let ui = eventUis[def.defId];\n bgRanges.push({\n def,\n ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n for (let defId in inverseBgByDefId) {\n let ranges = inverseBgByDefId[defId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg ||\n el.parentNode.fcSeg || // for the harness\n null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, (eventDef) => compileEventUi(eventDef, eventUiBases));\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n let uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\nfunction sortEventSegs(segs, eventOrderSpecs) {\n let objs = segs.map(buildSegCompareObj);\n objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));\n return objs.map((c) => c._seg);\n}\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n let { eventRange } = seg;\n let eventDef = eventRange.def;\n let range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n let start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n let end = range.end ? range.end.valueOf() : 0; // \"\n return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start,\n end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });\n}\nfunction computeSegDraggable(seg, context) {\n let { pluginHooks } = context;\n let transformers = pluginHooks.isDraggableTransformers;\n let { def, ui } = seg.eventRange;\n let val = ui.startEditable;\n for (let transformer of transformers) {\n val = transformer(val, def, ui, context);\n }\n return val;\n}\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n let { dateEnv, options } = context;\n let { displayEventTime, displayEventEnd } = options;\n let eventDef = seg.eventRange.def;\n let eventInstance = seg.eventRange.instance;\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\n }\n let wholeEventStart = eventInstance.range.start;\n let wholeEventEnd = eventInstance.range.end;\n let segStart = startOverride || seg.start || seg.eventRange.range.start;\n let segEnd = endOverride || seg.end || seg.eventRange.range.end;\n let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,\n });\n }\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same\n });\n }\n return '';\n}\nfunction getSegMeta(seg, todayRange, nowDate) {\n let segRange = seg.eventRange.range;\n return {\n isPast: segRange.end <= (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),\n };\n}\nfunction getEventClassNames(props) {\n let classNames = ['fc-event'];\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n return classNames;\n}\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance\n ? eventRange.instance.instanceId\n : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;\n // inverse-background events don't have specific instances. TODO: better solution\n}\nfunction getSegAnchorAttrs(seg, context) {\n let { def, instance } = seg.eventRange;\n let { url } = def;\n if (url) {\n return { href: url };\n }\n let { emitter, options } = context;\n let { eventInteractive } = options;\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n }\n // mock what happens in EventClicking\n if (eventInteractive) {\n // only attach keyboard-related handlers because click handler is already done in EventClicking\n return createAriaKeyboardAttrs((ev) => {\n emitter.trigger('eventClick', {\n el: ev.target,\n event: new EventImpl(context, def, instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n });\n }\n return {};\n}\n\nconst STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean,\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n let span = parseOpenDateSpan(raw, dateEnv);\n let { range } = span;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n let { refined: standardProps, extra } = refineProps(raw, STANDARD_PROPS);\n let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n let { allDay } = standardProps;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n return Object.assign({ range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null,\n }, allDay }, extra);\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (let propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (let propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return Object.assign(Object.assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });\n}\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return Object.assign(Object.assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });\n}\nfunction buildRangeApi(range, dateEnv, omitTime) {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, { omitTime }),\n endStr: dateEnv.formatIso(range.end, { omitTime }),\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n let res = refineEventDef({ editable: false }, context);\n let def = parseEventDef(res.refined, res.extra, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n context);\n return {\n def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true,\n };\n}\n\n/*\ngiven a function that resolves a result asynchronously.\nthe function can either call passed-in success and failure callbacks,\nor it can return a promise.\nif you need to pass additional params to func, bind them first.\n*/\nfunction unpromisify(func, normalizedSuccessCallback, normalizedFailureCallback) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n let isResolved = false;\n let wrappedSuccess = function (res) {\n if (!isResolved) {\n isResolved = true;\n normalizedSuccessCallback(res);\n }\n };\n let wrappedFailure = function (error) {\n if (!isResolved) {\n isResolved = true;\n normalizedFailureCallback(error);\n }\n };\n let res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nclass JsonRequestError extends Error {\n constructor(message, response) {\n super(message);\n this.response = response;\n }\n}\nfunction requestJson(method, url, params) {\n method = method.toUpperCase();\n const fetchOptions = {\n method,\n };\n if (method === 'GET') {\n url += (url.indexOf('?') === -1 ? '?' : '&') +\n new URLSearchParams(params);\n }\n else {\n fetchOptions.body = new URLSearchParams(params);\n fetchOptions.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n }\n return fetch(url, fetchOptions).then((fetchRes) => {\n if (fetchRes.ok) {\n return fetchRes.json().then((parsedResponse) => {\n return [parsedResponse, fetchRes];\n }, () => {\n throw new JsonRequestError('Failure parsing JSON', fetchRes);\n });\n }\n else {\n throw new JsonRequestError('Request failed', fetchRes);\n }\n });\n}\n\nlet canVGrowWithinCell;\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n return canVGrowWithinCell;\n}\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true;\n }\n let el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.left = '0px';\n el.innerHTML = '<table><tr><td><div></div></td></tr></table>';\n el.querySelector('table').style.height = '100px';\n el.querySelector('div').style.height = '100%';\n document.body.appendChild(el);\n let div = el.querySelector('div');\n let possible = div.offsetHeight > 0;\n document.body.removeChild(el);\n return possible;\n}\n\nclass CalendarRoot extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n forPrint: false,\n };\n this.handleBeforePrint = () => {\n flushSync(() => {\n this.setState({ forPrint: true });\n });\n };\n this.handleAfterPrint = () => {\n flushSync(() => {\n this.setState({ forPrint: false });\n });\n };\n }\n render() {\n let { props } = this;\n let { options } = props;\n let { forPrint } = this.state;\n let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n let height = (!isHeightAuto && options.height != null) ? options.height : '';\n let classNames = [\n 'fc',\n forPrint ? 'fc-media-print' : 'fc-media-screen',\n `fc-direction-${options.direction}`,\n props.theme.getClass('root'),\n ];\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n return props.children(classNames, height, isHeightAuto, forPrint);\n }\n componentDidMount() {\n let { emitter } = this.props;\n emitter.on('_beforeprint', this.handleBeforePrint);\n emitter.on('_afterprint', this.handleAfterPrint);\n }\n componentWillUnmount() {\n let { emitter } = this.props;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n }\n}\n\nclass Interaction {\n constructor(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n destroy() {\n }\n}\nfunction parseInteractionSettings(component, input) {\n return {\n component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null,\n };\n}\nfunction interactionSettingsToStore(settings) {\n return {\n [settings.component.uid]: settings,\n };\n}\n// global state\nconst interactionSettingsStore = {};\n\nclass CalendarImpl {\n getCurrentData() {\n return this.currentDataManager.getCurrentData();\n }\n dispatch(action) {\n this.currentDataManager.dispatch(action);\n }\n get view() { return this.getCurrentData().viewApi; }\n batchRendering(callback) {\n callback();\n }\n updateSize() {\n this.trigger('_resize', true);\n }\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n setOption(name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val,\n });\n }\n getOption(name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n }\n getAvailableLocaleCodes() {\n return Object.keys(this.getCurrentData().availableRawLocales);\n }\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n on(handlerName, handler) {\n let { currentDataManager } = this;\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n }\n else {\n console.warn(`Unknown listener name '${handlerName}'`);\n }\n }\n off(handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n }\n // not meant for public use\n trigger(handlerName, ...args) {\n this.currentDataManager.emitter.trigger(handlerName, ...args);\n }\n // View\n // -----------------------------------------------------------------------------------------------------------------\n changeView(viewType, dateOrRange) {\n this.batchRendering(() => {\n this.unselect();\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange,\n });\n }\n else {\n let { dateEnv } = this.getCurrentData();\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n dateMarker: dateEnv.createMarker(dateOrRange),\n });\n }\n }\n else {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n }\n });\n }\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n zoomTo(dateMarker, viewType) {\n let state = this.getCurrentData();\n let spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker,\n });\n }\n else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker,\n });\n }\n }\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n getUnitViewSpec(unit) {\n let { viewSpecs, toolbarConfig } = this.getCurrentData();\n let viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n let i;\n let spec;\n for (let viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n return null;\n }\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n prev() {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n }\n next() {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n }\n prevYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1),\n });\n }\n nextYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1),\n });\n }\n today() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv),\n });\n }\n gotoDate(zonedDateInput) {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput),\n });\n }\n incrementDate(deltaInput) {\n let state = this.getCurrentData();\n let delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta),\n });\n }\n }\n getDate() {\n let state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n }\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n formatDate(d, formatter) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n }\n // `settings` is for formatter AND isEndExclusive\n formatRange(d0, d1, settings) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n }\n formatIso(d, omitTime) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime });\n }\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n select(dateOrObj, endDate) {\n let selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null,\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate,\n };\n }\n let state = this.getCurrentData();\n let selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection });\n triggerDateSelect(selection, null, state);\n }\n }\n unselect(pev) {\n let state = this.getCurrentData();\n if (state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n triggerDateUnselect(pev, state);\n }\n }\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n addEvent(eventInput, sourceInput) {\n if (eventInput instanceof EventImpl) {\n let def = eventInput._def;\n let instance = eventInput._instance;\n let currentData = this.getCurrentData();\n // not already present? don't want to add an old snapshot\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def, instance }), // TODO: better util for two args?\n });\n this.triggerEventAdd(eventInput);\n }\n return eventInput;\n }\n let state = this.getCurrentData();\n let eventSource;\n if (sourceInput instanceof EventSourceImpl) {\n eventSource = sourceInput.internalEventSource;\n }\n else if (typeof sourceInput === 'boolean') {\n if (sourceInput) { // true. part of the first event source\n [eventSource] = hashValuesToArray(state.eventSources);\n }\n }\n else if (sourceInput != null) { // an ID. accepts a number too\n let sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn(`Could not find an event source with ID \"${sourceInput}\"`); // TODO: test\n return null;\n }\n eventSource = sourceApi.internalEventSource;\n }\n let tuple = parseEvent(eventInput, eventSource, state, false);\n if (tuple) {\n let newEventApi = new EventImpl(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple),\n });\n this.triggerEventAdd(newEventApi);\n return newEventApi;\n }\n return null;\n }\n triggerEventAdd(eventApi) {\n let { emitter } = this.getCurrentData();\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: () => {\n this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi),\n });\n },\n });\n }\n // TODO: optimize\n getEventById(id) {\n let state = this.getCurrentData();\n let { defs, instances } = state.eventStore;\n id = String(id);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventImpl(state, def, null);\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventImpl(state, def, instance);\n }\n }\n }\n }\n return null;\n }\n getEvents() {\n let currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n }\n removeAllEvents() {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n }\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n getEventSources() {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n let sourceApis = [];\n for (let internalId in sourceHash) {\n sourceApis.push(new EventSourceImpl(state, sourceHash[internalId]));\n }\n return sourceApis;\n }\n getEventSourceById(id) {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n id = String(id);\n for (let sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceImpl(state, sourceHash[sourceId]);\n }\n }\n return null;\n }\n addEventSource(sourceInput) {\n let state = this.getCurrentData();\n if (sourceInput instanceof EventSourceImpl) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource],\n });\n }\n return sourceInput;\n }\n let eventSource = parseEventSource(sourceInput, state);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceImpl(state, eventSource);\n }\n return null;\n }\n removeAllEventSources() {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n }\n refetchEvents() {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });\n }\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n scrollToTime(timeInput) {\n let time = createDuration(timeInput);\n if (time) {\n this.trigger('_scrollRequest', { time });\n }\n }\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n let res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom),\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY,\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2,\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top,\n };\n}\n\nconst EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nclass Splitter {\n constructor() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n splitProps(props) {\n let keyInfos = this.getKeyInfo(props);\n let defKeys = this.getKeysForEventDefs(props.eventStore);\n let dateSelections = this.splitDateSelection(props.dateSelection);\n let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n let eventStores = this.splitEventStore(props.eventStore, defKeys);\n let eventDrags = this.splitEventDrag(props.eventDrag);\n let eventResizes = this.splitEventResize(props.eventResize);\n let splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey));\n for (let key in keyInfos) {\n let keyInfo = keyInfos[key];\n let eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n let buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null,\n };\n }\n return splitProps;\n }\n _splitDateSpan(dateSpan) {\n let dateSpans = {};\n if (dateSpan) {\n let keys = this.getKeysForDateSpan(dateSpan);\n for (let key of keys) {\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n }\n _getKeysForEventDefs(eventStore) {\n return mapHash(eventStore.defs, (eventDef) => this.getKeysForEventDef(eventDef));\n }\n _splitEventStore(eventStore, defKeys) {\n let { defs, instances } = eventStore;\n let splitStores = {};\n for (let defId in defs) {\n for (let key of defKeys[defId]) {\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n for (let key of defKeys[instance.defId]) {\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n }\n _splitIndividualUi(eventUiBases, defKeys) {\n let splitHashes = {};\n for (let defId in eventUiBases) {\n if (defId) { // not the '' key\n for (let key of defKeys[defId]) {\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n }\n _splitInteraction(interaction) {\n let splitStates = {};\n if (interaction) {\n let affectedStores = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n // can't rely on defKeys because event data is mutated\n let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n let populate = (key) => {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n };\n }\n };\n for (let key in affectedStores) {\n populate(key);\n }\n for (let key in mutatedStores) {\n populate(key);\n }\n }\n return splitStates;\n }\n}\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n let baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n let stuff = {\n '': combineEventUis(baseParts),\n };\n if (individualUi) {\n Object.assign(stuff, individualUi);\n }\n return stuff;\n}\n\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),\n isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),\n };\n}\nfunction getDayClassNames(meta, theme) {\n let classNames = [\n 'fc-day',\n `fc-day-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n return classNames;\n}\nfunction getSlotClassNames(meta, theme) {\n let classNames = [\n 'fc-slot',\n `fc-slot-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n return classNames;\n}\n\nconst DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });\nconst WEEK_FORMAT = createFormatter({ week: 'long' });\nfunction buildNavLinkAttrs(context, dateMarker, viewType = 'day', isTabbable = true) {\n const { dateEnv, options, calendarApi } = context;\n let dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n if (options.navLinks) {\n let zonedDate = dateEnv.toDate(dateMarker);\n const handleInteraction = (ev) => {\n let customAction = viewType === 'day' ? options.navLinkDayClick :\n viewType === 'week' ? options.navLinkWeekClick : null;\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n return Object.assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable\n ? createAriaClickAttrs(handleInteraction)\n : { onClick: handleInteraction }));\n }\n return { 'aria-label': dateStr };\n}\n\nlet _isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return _isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n let outerEl = document.createElement('div');\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl',\n });\n outerEl.innerHTML = '<div></div>';\n document.body.appendChild(outerEl);\n let innerEl = outerEl.firstChild;\n let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n\nlet _scrollbarWidths;\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n return _scrollbarWidths;\n}\nfunction computeScrollbarWidths() {\n let el = document.createElement('div');\n el.style.overflow = 'scroll';\n el.style.position = 'absolute';\n el.style.top = '-9999px';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n let res = computeScrollbarWidthsForEl(el);\n document.body.removeChild(el);\n return res;\n}\n// WARNING: will include border\nfunction computeScrollbarWidthsForEl(el) {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth,\n };\n}\n\nfunction computeEdges(el, getPadding = false) {\n let computedStyle = window.getComputedStyle(el);\n let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n let badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n let res = {\n borderLeft,\n borderRight,\n borderTop,\n borderBottom,\n scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0,\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {\n let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n let edges = computeEdges(el, goWithinPadding);\n let res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n let rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.scrollX,\n top: rect.top + window.scrollY,\n right: rect.right + window.scrollX,\n bottom: rect.bottom + window.scrollY,\n };\n}\nfunction computeClippedClientRect(el) {\n let clippingParents = getClippingParents(el);\n let rect = el.getBoundingClientRect();\n for (let clippingParent of clippingParents) {\n let intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n if (intersection) {\n rect = intersection;\n }\n else {\n return null;\n }\n }\n return rect;\n}\n// does not return window\nfunction getClippingParents(el) {\n let parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n let computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nclass PositionCache {\n constructor(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n let originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n }\n // Populates the left/right internal coordinate arrays\n buildElHorizontals(originClientLeft) {\n let lefts = [];\n let rights = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n }\n // Populates the top/bottom internal coordinate arrays\n buildElVerticals(originClientTop) {\n let tops = [];\n let bottoms = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n }\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n leftToIndex(leftPosition) {\n let { lefts, rights } = this;\n let len = lefts.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n topToIndex(topPosition) {\n let { tops, bottoms } = this;\n let len = tops.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Gets the width of the element at the given index\n getWidth(leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n }\n // Gets the height of the element at the given index\n getHeight(topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n }\n similarTo(otherCache) {\n return similarNumArrays(this.tops || [], otherCache.tops || []) &&\n similarNumArrays(this.bottoms || [], otherCache.bottoms || []) &&\n similarNumArrays(this.lefts || [], otherCache.lefts || []) &&\n similarNumArrays(this.rights || [], otherCache.rights || []);\n }\n}\nfunction similarNumArrays(a, b) {\n const len = a.length;\n if (len !== b.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (Math.round(a[i]) !== Math.round(b[i])) {\n return false;\n }\n }\n return true;\n}\n\n/* eslint max-classes-per-file: \"off\" */\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nclass ScrollController {\n getMaxScrollTop() {\n return this.getScrollHeight() - this.getClientHeight();\n }\n getMaxScrollLeft() {\n return this.getScrollWidth() - this.getClientWidth();\n }\n canScrollVertically() {\n return this.getMaxScrollTop() > 0;\n }\n canScrollHorizontally() {\n return this.getMaxScrollLeft() > 0;\n }\n canScrollUp() {\n return this.getScrollTop() > 0;\n }\n canScrollDown() {\n return this.getScrollTop() < this.getMaxScrollTop();\n }\n canScrollLeft() {\n return this.getScrollLeft() > 0;\n }\n canScrollRight() {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n }\n}\nclass ElementScrollController extends ScrollController {\n constructor(el) {\n super();\n this.el = el;\n }\n getScrollTop() {\n return this.el.scrollTop;\n }\n getScrollLeft() {\n return this.el.scrollLeft;\n }\n setScrollTop(top) {\n this.el.scrollTop = top;\n }\n setScrollLeft(left) {\n this.el.scrollLeft = left;\n }\n getScrollWidth() {\n return this.el.scrollWidth;\n }\n getScrollHeight() {\n return this.el.scrollHeight;\n }\n getClientHeight() {\n return this.el.clientHeight;\n }\n getClientWidth() {\n return this.el.clientWidth;\n }\n}\nclass WindowScrollController extends ScrollController {\n getScrollTop() {\n return window.scrollY;\n }\n getScrollLeft() {\n return window.scrollX;\n }\n setScrollTop(n) {\n window.scroll(window.scrollX, n);\n }\n setScrollLeft(n) {\n window.scroll(n, window.scrollY);\n }\n getScrollWidth() {\n return document.documentElement.scrollWidth;\n }\n getScrollHeight() {\n return document.documentElement.scrollHeight;\n }\n getClientHeight() {\n return document.documentElement.clientHeight;\n }\n getClientWidth() {\n return document.documentElement.clientWidth;\n }\n}\n\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nclass DateComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.uid = guid();\n }\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n prepareHits() {\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n }\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n isValidSegDownEl(el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n }\n isValidDateDownEl(el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover'); // hack\n }\n}\n\nclass NamedTimeZoneImpl {\n constructor(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n}\n\nclass SegHierarchy {\n constructor(getEntryThickness = (entry) => {\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return entry.thickness || 1;\n }) {\n this.getEntryThickness = getEntryThickness;\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n this.maxStackCnt = -1; // -1 means no max\n this.levelCoords = []; // ordered\n this.entriesByLevel = []; // parallel with levelCoords\n this.stackCnts = {}; // TODO: use better technique!?\n }\n addSegs(inputs) {\n let hiddenEntries = [];\n for (let input of inputs) {\n this.insertEntry(input, hiddenEntries);\n }\n return hiddenEntries;\n }\n insertEntry(entry, hiddenEntries) {\n let insertion = this.findInsertion(entry);\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n }\n else {\n this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n }\n isInsertionValid(insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&\n (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n const hiddenEntry = Object.assign(Object.assign({}, entry), { span: intersectSpans(entry.span, insertion.touchingEntry.span) });\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n else {\n hiddenEntries.push(entry);\n }\n }\n /*\n Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.\n */\n splitEntry(entry, barrier, hiddenEntries) {\n let entrySpan = entry.span;\n let barrierSpan = barrier.span;\n if (entrySpan.start < barrierSpan.start) {\n this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: entrySpan.start, end: barrierSpan.start },\n }, hiddenEntries);\n }\n if (entrySpan.end > barrierSpan.end) {\n this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: barrierSpan.end, end: entrySpan.end },\n }, hiddenEntries);\n }\n }\n insertEntryAt(entry, insertion) {\n let { entriesByLevel, levelCoords } = this;\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n }\n else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n }\n /*\n does not care about limits\n */\n findInsertion(newEntry) {\n let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;\n let levelCnt = levelCoords.length;\n let candidateCoord = 0;\n let touchingLevel = -1;\n let touchingLateral = -1;\n let touchingEntry = null;\n let stackCnt = 0;\n for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n const trackingCoord = levelCoords[trackingLevel];\n // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {\n break;\n }\n let trackingEntries = entriesByLevel[trackingLevel];\n let trackingEntry;\n let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n let lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n let trackingEntryBottom = trackingCoord + this.getEntryThickness(trackingEntry);\n // intersects into the top of the candidate?\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n }\n // butts up against top of candidate? (will happen if just intersected as well)\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n }\n lateralIndex += 1;\n }\n }\n // the destination level will be after touchingEntry's level. find it\n let destLevel = 0;\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n }\n // if adding to an existing level, find where to insert\n let destLateral = -1;\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n }\n return {\n touchingLevel,\n touchingLateral,\n touchingEntry,\n stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral,\n };\n }\n // sorted by levelCoord (lowest to highest)\n toRects() {\n let { entriesByLevel, levelCoords } = this;\n let levelCnt = entriesByLevel.length;\n let rects = [];\n for (let level = 0; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level];\n let levelCoord = levelCoords[level];\n for (let entry of entries) {\n rects.push(Object.assign(Object.assign({}, entry), { thickness: this.getEntryThickness(entry), levelCoord }));\n }\n }\n return rects;\n }\n}\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n}\n// returns groups with entries sorted by input order\nfunction groupIntersectingEntries(entries) {\n let merges = [];\n for (let entry of entries) {\n let filteredMerges = [];\n let hungryMerge = {\n span: entry.span,\n entries: [entry],\n };\n for (let merge of merges) {\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries),\n span: joinSpans(merge.span, hungryMerge.span),\n };\n }\n else {\n filteredMerges.push(merge);\n }\n }\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n return merges;\n}\nfunction joinSpans(span0, span1) {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end),\n };\n}\nfunction intersectSpans(span0, span1) {\n let start = Math.max(span0.start, span1.start);\n let end = Math.min(span0.end, span1.end);\n if (start < end) {\n return { start, end };\n }\n return null;\n}\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\nfunction binarySearch(a, searchVal, getItemVal) {\n let startIndex = 0;\n let endIndex = a.length; // exclusive\n if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item\n return [0, 0];\n }\n if (searchVal > getItemVal(a[endIndex - 1])) { // after last item\n return [endIndex, 0];\n }\n while (startIndex < endIndex) {\n let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n let middleVal = getItemVal(a[middleIndex]);\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n }\n else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n }\n else { // equal!\n return [middleIndex, 1];\n }\n }\n return [startIndex, 0];\n}\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nclass ElementDragging {\n constructor(el, selector) {\n this.emitter = new Emitter();\n }\n destroy() {\n }\n setMirrorIsVisible(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setMirrorNeedsRevert(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setAutoScrollEnabled(bool) {\n // optional\n }\n}\n\n// TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\nconst config = {};\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\nconst DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String,\n};\nfunction parseDragMeta(raw) {\n let { refined, extra } = refineProps(raw, DRAG_META_REFINERS);\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra,\n };\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({ weekday: 'short' }); // \"Sat\"\n }\n if (dayCnt > 1) {\n return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // \"Sat 11/12\"\n }\n return createFormatter({ weekday: 'long' }); // \"Saturday\"\n}\n\nconst CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\nfunction renderInner$1(renderProps) {\n return renderProps.text;\n}\n\n// BAD name for this class now. used in the Header\nclass TableDateCell extends BaseComponent {\n render() {\n let { dateEnv, options, theme, viewApi } = this.context;\n let { props } = this;\n let { date, dateProfile } = props;\n let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n let classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n let text = dateEnv.format(date, props.dayHeaderFormat);\n // if colCnt is 1, we are already in a day-view and don't need a navlink\n let navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)\n ? buildNavLinkAttrs(this.context, date)\n : {};\n let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" }, !dayMeta.isDisabled && (createElement(InnerContainer, { elTag: \"a\", elAttrs: navLinkAttrs, elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ] }))))));\n }\n}\n\nconst WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });\nclass TableDowCell extends BaseComponent {\n render() {\n let { props } = this;\n let { dateEnv, theme, viewApi, options } = this.context;\n let date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n let dateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false,\n };\n let text = dateEnv.format(date, props.dayHeaderFormat);\n let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?\n date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: [\n CLASS_NAME,\n ...getDayClassNames(dateMeta, theme),\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ], elAttrs: {\n 'aria-label': dateEnv.format(date, WEEKDAY_FORMAT),\n } })))));\n }\n}\n\nclass NowTimer extends Component {\n constructor(props, context) {\n super(props, context);\n this.initialNowDate = getNow(context.options.now, context.dateEnv);\n this.initialNowQueriedMs = new Date().valueOf();\n this.state = this.computeTiming().currentState;\n }\n render() {\n let { props, state } = this;\n return props.children(state.nowDate, state.todayRange);\n }\n componentDidMount() {\n this.setTimeout();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n }\n componentWillUnmount() {\n this.clearTimeout();\n }\n computeTiming() {\n let { props, context } = this;\n let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();\n // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },\n nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },\n waitMs,\n };\n }\n setTimeout() {\n let { nextState, waitMs } = this.computeTiming();\n this.timeoutId = setTimeout(() => {\n this.setState(nextState, () => {\n this.setTimeout();\n });\n }, waitMs);\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n }\n}\nNowTimer.contextType = ViewContextType;\nfunction buildDayRange(date) {\n let start = startOfDay(date);\n let end = addDays(start, 1);\n return { start, end };\n}\n\nclass DayHeader extends BaseComponent {\n constructor() {\n super(...arguments);\n this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n }\n render() {\n let { context } = this;\n let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;\n let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(\"tr\", { role: \"row\" },\n renderIntro && renderIntro('day'),\n dates.map((date) => (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));\n }\n}\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nclass DaySeriesModel {\n constructor(range, dateProfileGenerator) {\n let date = range.start;\n let { end } = range;\n let indices = [];\n let dates = [];\n let dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n sliceRange(range) {\n let firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n let lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n let clippedFirstIndex = Math.max(0, firstIndex);\n let clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex,\n };\n }\n return null;\n }\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n getDateDayIndex(date) {\n let { indices } = this;\n let dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n return indices[dayOffset];\n }\n}\n\nclass DayTableModel {\n constructor(daySeries, breakOnWeeks) {\n let { dates } = daySeries;\n let daysPerRow;\n let firstDay;\n let rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n buildCells() {\n let rows = [];\n for (let row = 0; row < this.rowCnt; row += 1) {\n let cells = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n }\n buildCell(row, col) {\n let date = this.daySeries.dates[row * this.colCnt + col];\n return {\n key: date.toISOString(),\n date,\n };\n }\n buildHeaderDates() {\n let dates = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n }\n sliceRange(range) {\n let { colCnt } = this;\n let seriesSeg = this.daySeries.sliceRange(range);\n let segs = [];\n if (seriesSeg) {\n let { firstIndex, lastIndex } = seriesSeg;\n let index = firstIndex;\n while (index <= lastIndex) {\n let row = Math.floor(index / colCnt);\n let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n });\n index = nextIndex;\n }\n }\n return segs;\n }\n}\n\nclass Slicer {\n constructor() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n this.forceDayIfListItem = false; // hack\n }\n sliceProps(props, dateProfile, nextDayThreshold, context, ...extraArgs) {\n let { eventUiBases } = props;\n let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);\n return {\n dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),\n businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventSelection: props.eventSelection,\n }; // TODO: give interactionSegs?\n }\n sliceNowDate(// does not memoize\n date, dateProfile, nextDayThreshold, context, ...extraArgs) {\n return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range\n dateProfile, nextDayThreshold, {}, context, ...extraArgs);\n }\n _sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore(expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold, ...extraArgs).bg;\n }\n _sliceEventStore(eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (eventStore) {\n let rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n };\n }\n return { bg: [], fg: [] };\n }\n _sliceInteraction(interaction, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (!interaction) {\n return null;\n }\n let rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n };\n }\n _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {\n if (!dateSpan) {\n return [];\n }\n let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));\n let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);\n if (activeDateSpanRange) {\n dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });\n let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n let segs = this.sliceRange(dateSpan.range, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n }\n return segs;\n }\n return [];\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRanges(eventRanges, extraArgs) {\n let segs = [];\n for (let eventRange of eventRanges) {\n segs.push(...this.sliceEventRange(eventRange, extraArgs));\n }\n return segs;\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRange(eventRange, extraArgs) {\n let dateRange = eventRange.range;\n // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1),\n };\n }\n let segs = this.sliceRange(dateRange, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n }\n}\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n let range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, dateProfile, context) {\n let { instances } = interaction.mutatedEvents;\n for (let instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n return isNewPropsValid({ dateSelection }, context);\n}\nfunction isNewPropsValid(newProps, context) {\n let calendarState = context.getCurrentData();\n let props = Object.assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\nfunction isPropsValid(state, context, dateSpanMeta = {}, filterConfig) {\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let currentState = context.getCurrentData();\n let interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n let subjectEventStore = interaction.mutatedEvents;\n let subjectDefs = subjectEventStore.defs;\n let subjectInstances = subjectEventStore.instances;\n let subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': currentState.selectionConfig });\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n // exclude the subject events. TODO: exclude defs too?\n let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n let otherDefs = otherEventStore.defs;\n let otherInstances = otherEventStore.instances;\n let otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (let subjectInstanceId in subjectInstances) {\n let subjectInstance = subjectInstances[subjectInstanceId];\n let subjectRange = subjectInstance.range;\n let subjectConfig = subjectConfigs[subjectInstance.defId];\n let subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { eventOverlap } = context.options;\n let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n for (let otherInstanceId in otherInstances) {\n let otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n let otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (eventOverlapFunc && !eventOverlapFunc(new EventImpl(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventImpl(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n let calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (let subjectAllow of subjectConfig.allows) {\n let subjectDateSpan = Object.assign(Object.assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });\n let origDef = calendarEventStore.defs[subjectDef.defId];\n let origInstance = calendarEventStore.instances[subjectInstanceId];\n let eventApi;\n if (origDef) { // was previously in the calendar\n eventApi = new EventImpl(context, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventImpl(context, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let relevantEventStore = state.eventStore;\n let relevantDefs = relevantEventStore.defs;\n let relevantInstances = relevantEventStore.instances;\n let selection = state.dateSelection;\n let selectionRange = selection.range;\n let { selectionConfig } = context.getCurrentData();\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { selectOverlap } = context.options;\n let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n for (let relevantInstanceId in relevantInstances) {\n let relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (selectOverlapFunc && !selectOverlapFunc(new EventImpl(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n }\n // allow (a function)\n for (let selectionAllow of selectionConfig.allows) {\n let fullDateSpan = Object.assign(Object.assign({}, dateSpanMeta), selection);\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n for (let constraint of constraints) {\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, (eventDef) => eventDef.groupId === constraint));\n }\n if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n let { instances } = eventStore;\n let ranges = [];\n for (let instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (let outerRange of outerRanges) {\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n\nconst VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\nclass Scroller extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { props } = this;\n let { liquid, liquidIsAbsolute } = props;\n let isAbsolute = liquid && liquidIsAbsolute;\n let className = ['fc-scroller'];\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n }\n else {\n className.push('fc-scroller-liquid');\n }\n }\n return (createElement(\"div\", { ref: this.handleEl, className: className.join(' '), style: {\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n left: (isAbsolute && -(props.overcomeLeft || 0)) || '',\n right: (isAbsolute && -(props.overcomeRight || 0)) || '',\n bottom: (isAbsolute && -(props.overcomeBottom || 0)) || '',\n marginLeft: (!isAbsolute && -(props.overcomeLeft || 0)) || '',\n marginRight: (!isAbsolute && -(props.overcomeRight || 0)) || '',\n marginBottom: (!isAbsolute && -(props.overcomeBottom || 0)) || '',\n maxHeight: props.maxHeight || '',\n } }, props.children));\n }\n needsXScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n }\n // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n return false;\n }\n needsYScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n }\n // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n return false;\n }\n getXScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n getYScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n}\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nclass RefMap {\n constructor(masterCallback) {\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n this.handleValue = (val, key) => {\n let { depths, currentMap } = this;\n let removed = false;\n let added = false;\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = (key in currentMap);\n currentMap[key] = val;\n depths[key] = (depths[key] || 0) + 1;\n added = true;\n }\n else {\n depths[key] -= 1;\n if (!depths[key]) {\n delete currentMap[key];\n delete this.callbackMap[key];\n removed = true;\n }\n }\n if (this.masterCallback) {\n if (removed) {\n this.masterCallback(null, String(key));\n }\n if (added) {\n this.masterCallback(val, String(key));\n }\n }\n };\n }\n createRef(key) {\n let refCallback = this.callbackMap[key];\n if (!refCallback) {\n refCallback = this.callbackMap[key] = (val) => {\n this.handleValue(val, String(key));\n };\n }\n return refCallback;\n }\n // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n collect(startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n }\n getAll() {\n return hashValuesToArray(this.currentMap);\n }\n}\n\nfunction computeShrinkWidth(chunkEls) {\n let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n let largestWidth = 0;\n for (let shrinkCell of shrinkCells) {\n largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n }\n return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits\n}\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\nfunction getAllowYScrolling(props, sectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n}\n// TODO: ONLY use `arg`. force out internal function to use same API\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n let { expandRows } = arg;\n let content = typeof chunkConfig.content === 'function' ?\n chunkConfig.content(arg) :\n createElement('table', {\n role: 'presentation',\n className: [\n chunkConfig.tableClassName,\n sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n ].join(' '),\n style: {\n minWidth: arg.tableMinWidth,\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height\n },\n }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation',\n }, typeof chunkConfig.rowContent === 'function'\n ? chunkConfig.rowContent(arg)\n : chunkConfig.rowContent));\n return content;\n}\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\n}\nfunction renderMicroColGroup(cols, shrinkWidth) {\n let colNodes = [];\n /*\n for ColProps with spans, it would have been great to make a single <col span=\"\">\n HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.\n SOLUTION: making individual <col> elements makes Chrome behave.\n */\n for (let colProps of cols) {\n let span = colProps.span || 1;\n for (let i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", { style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),\n minWidth: colProps.minWidth || '',\n } }));\n }\n }\n return createElement('colgroup', {}, ...colNodes);\n}\nfunction sanitizeShrinkWidth(shrinkWidth) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth;\n}\nfunction hasShrinkWidth(cols) {\n for (let col of cols) {\n if (col.width === 'shrink') {\n return true;\n }\n }\n return false;\n}\nfunction getScrollGridClassNames(liquid, context) {\n let classNames = [\n 'fc-scrollgrid',\n context.theme.getClass('table'),\n ];\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n return classNames;\n}\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n let classNames = [\n 'fc-scrollgrid-section',\n `fc-scrollgrid-section-${sectionConfig.type}`,\n sectionConfig.className, // used?\n ];\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n return classNames;\n}\nfunction renderScrollShim(arg) {\n return (createElement(\"div\", { className: \"fc-scrollgrid-sticky-shim\", style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth,\n } }));\n}\nfunction getStickyHeaderDates(options) {\n let { stickyHeaderDates } = options;\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyHeaderDates;\n}\nfunction getStickyFooterScrollbar(options) {\n let { stickyFooterScrollbar } = options;\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyFooterScrollbar;\n}\n\nclass SimpleScrollGrid extends BaseComponent {\n constructor() {\n super(...arguments);\n this.processCols = memoize((a) => a, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\n this.renderMicroColGroup = memoize(renderMicroColGroup);\n this.scrollerRefs = new RefMap();\n this.scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this));\n this.state = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {},\n };\n // TODO: can do a really simple print-view. dont need to join rows\n this.handleSizing = () => {\n this.safeSetState(Object.assign({ shrinkWidth: this.computeShrinkWidth() }, this.computeScrollerDims()));\n };\n }\n render() {\n let { props, state, context } = this;\n let sectionConfigs = props.sections || [];\n let cols = this.processCols(props.cols);\n let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n let classNames = getScrollGridClassNames(props.liquid, context);\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n }\n // TODO: make DRY\n let configCnt = sectionConfigs.length;\n let configI = 0;\n let currentConfig;\n let headSectionNodes = [];\n let bodySectionNodes = [];\n let footSectionNodes = [];\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n let isBuggy = !getCanVGrowWithinCell();\n const roleAttrs = { role: 'rowgroup' };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: { height: props.height },\n }, Boolean(!isBuggy && headSectionNodes.length) && createElement('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && createElement('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && createElement('tfoot', roleAttrs, ...footSectionNodes), isBuggy && createElement('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));\n }\n renderSection(sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));\n }\n return (createElement(\"tr\", { key: sectionConfig.key, role: \"presentation\", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));\n }\n renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n let { props } = this;\n let { forceYScrollbars, scrollerClientWidths, scrollerClientHeights } = this.state;\n let needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n let isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n let overflowY = !props.liquid ? 'visible' :\n forceYScrollbars ? 'scroll' :\n !needsYScrolling ? 'hidden' :\n 'auto';\n let sectionKey = sectionConfig.key;\n let content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: () => { },\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation',\n }, createElement(\"div\", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },\n createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness\n : true }, content)));\n }\n _handleScrollerEl(scrollerEl, key) {\n let section = getSectionByKey(this.props.sections, key);\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n }\n componentDidMount() {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n }\n componentDidUpdate() {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleSizing);\n }\n computeShrinkWidth() {\n return hasShrinkWidth(this.props.cols)\n ? computeShrinkWidth(this.scrollerElRefs.getAll())\n : 0;\n }\n computeScrollerDims() {\n let scrollbarWidth = getScrollbarWidths();\n let { scrollerRefs, scrollerElRefs } = this;\n let forceYScrollbars = false;\n let scrollerClientWidths = {};\n let scrollerClientHeights = {};\n for (let sectionKey in scrollerRefs.currentMap) {\n let scroller = scrollerRefs.currentMap[sectionKey];\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\n }\n }\n for (let section of this.props.sections) {\n let sectionKey = section.key;\n let scrollerEl = scrollerElRefs.currentMap[sectionKey];\n if (scrollerEl) {\n let harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars\n ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0));\n scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n }\n }\n return { forceYScrollbars, scrollerClientWidths, scrollerClientHeights };\n }\n}\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual,\n});\nfunction getSectionByKey(sections, key) {\n for (let section of sections) {\n if (section.key === key) {\n return section;\n }\n }\n return null;\n}\n\nclass EventContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n if (el) {\n setElSeg(el, this.props.seg);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { seg } = props;\n const { eventRange } = seg;\n const { ui } = eventRange;\n const renderProps = {\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast),\n isFuture: Boolean(props.isFuture),\n isToday: Boolean(props.isToday),\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing),\n };\n return (createElement(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [\n ...getEventClassNames(renderProps),\n ...seg.eventRange.ui.classNames,\n ...(props.elClasses || []),\n ], renderProps: renderProps, generatorName: \"eventContent\", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));\n }\n componentDidUpdate(prevProps) {\n if (this.el && this.props.seg !== prevProps.seg) {\n setElSeg(this.el, this.props.seg);\n }\n }\n}\n\n// should not be a purecomponent\nclass StandardEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let { ui } = seg.eventRange;\n let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;\n let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: \"a\", elStyle: {\n borderColor: ui.borderColor,\n backgroundColor: ui.backgroundColor,\n }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (createElement(Fragment, null,\n createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),\n Boolean(eventContentArg.isStartResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-start\" })),\n Boolean(eventContentArg.isEndResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-end\" }))))));\n }\n}\nfunction renderInnerContent$1(innerProps) {\n return (createElement(\"div\", { className: \"fc-event-main-frame\" },\n innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title-container\" },\n createElement(\"div\", { className: \"fc-event-title fc-sticky\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\")))));\n}\n\nconst NowIndicatorContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { options } = context;\n let renderProps = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi,\n };\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: \"nowIndicatorContent\", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));\n}));\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nclass DayCellContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.refineRenderProps = memoizeObjArg(refineRenderProps);\n }\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = this.refineRenderProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n isMonthStart: props.isMonthStart || false,\n showDayNumber: props.showDayNumber,\n extraRenderProps: props.extraRenderProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv,\n monthStartFormat: options.monthStartFormat,\n });\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [\n ...getDayClassNames(renderProps, context.theme),\n ...(props.elClasses || []),\n ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: \"dayCellContent\", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator: \n // don't use custom classNames if disabled\n renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));\n }\n}\nfunction hasCustomDayCellContent(options) {\n return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));\n}\nfunction refineRenderProps(raw) {\n let { date, dateEnv, dateProfile, isMonthStart } = raw;\n let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);\n let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';\n return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,\n dayNumberText }), raw.extraRenderProps);\n}\n\nclass BgEvent extends BaseComponent {\n render() {\n let { props } = this;\n let { seg } = props;\n return (createElement(EventContainer, { elTag: \"div\", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: \"\", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));\n }\n}\nfunction renderInnerContent(props) {\n let { title } = props.event;\n return title && (createElement(\"div\", { className: \"fc-event-title\" }, props.event.title));\n}\nfunction renderFill(fillType) {\n return (createElement(\"div\", { className: `fc-${fillType}` }));\n}\n\nconst WeekNumberContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { dateEnv, options } = context;\n let { date } = props;\n let format = options.weekNumberFormat || props.defaultFormat;\n let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n let text = dateEnv.format(date, format);\n let renderProps = { num, text, date };\n return (createElement(ContentContainer // why isn't WeekNumberContentArg being auto-detected?\n , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: \"weekNumberContent\", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));\n}));\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nconst PADDING_FROM_VIEWPORT = 10;\nclass Popover extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n titleId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n this.rootEl = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.handleDocumentMouseDown = (ev) => {\n // only hide the popover if the click happened outside the popover\n const target = getEventTargetViaRoot(ev);\n if (!this.rootEl.contains(target)) {\n this.handleCloseClick();\n }\n };\n this.handleDocumentKeyDown = (ev) => {\n if (ev.key === 'Escape') {\n this.handleCloseClick();\n }\n };\n this.handleCloseClick = () => {\n let { onClose } = this.props;\n if (onClose) {\n onClose();\n }\n };\n }\n render() {\n let { theme, options } = this.context;\n let { props, state } = this;\n let classNames = [\n 'fc-popover',\n theme.getClass('popover'),\n ].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), \"aria-labelledby\": state.titleId, ref: this.handleRootEl }),\n createElement(\"div\", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },\n createElement(\"span\", { className: \"fc-popover-title\", id: state.titleId }, props.title),\n createElement(\"span\", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),\n createElement(\"div\", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);\n }\n componentDidMount() {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n }\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n updateSize() {\n let { isRtl } = this.context;\n let { alignmentEl, alignGridTop } = this.props;\n let { rootEl } = this;\n let alignmentRect = computeClippedClientRect(alignmentEl);\n if (alignmentRect) {\n let popoverDims = rootEl.getBoundingClientRect();\n // position relative to viewport\n let popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top;\n let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;\n // constrain\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n let origin = rootEl.offsetParent.getBoundingClientRect();\n applyStyle(rootEl, {\n top: popoverTop - origin.top,\n left: popoverLeft - origin.left,\n });\n }\n }\n}\n\nclass MorePopover extends DateComponent {\n constructor() {\n super(...arguments);\n this.handleRootEl = (rootEl) => {\n this.rootEl = rootEl;\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n useEventCenter: false,\n });\n }\n else {\n this.context.unregisterInteractiveComponent(this);\n }\n };\n }\n render() {\n let { options, dateEnv } = this.context;\n let { props } = this;\n let { startDate, todayRange, dateProfile } = props;\n let title = dateEnv.format(startDate, options.dayPopoverFormat);\n return (createElement(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (createElement(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },\n hasCustomDayCellContent(options) && (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-more-popover-misc'] })),\n props.children))));\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n let { rootEl, props } = this;\n if (positionLeft >= 0 && positionLeft < elWidth &&\n positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: Object.assign({ allDay: !props.forceTimed, range: {\n start: props.startDate,\n end: props.endDate,\n } }, props.extraDateSpan),\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight,\n },\n layer: 1, // important when comparing with hits from other components\n };\n }\n return null;\n }\n}\n\nclass MoreLinkContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId(),\n };\n this.handleLinkEl = (linkEl) => {\n this.linkEl = linkEl;\n if (this.props.elRef) {\n setRef(this.props.elRef, linkEl);\n }\n };\n this.handleClick = (ev) => {\n let { props, context } = this;\n let { moreLinkClick } = context.options;\n let date = computeRange(props).start;\n function buildPublicSeg(seg) {\n let { def, instance, range } = seg.eventRange;\n return {\n event: new EventImpl(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n };\n }\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n if (!moreLinkClick || moreLinkClick === 'popover') {\n this.setState({ isPopoverOpen: true });\n }\n else if (typeof moreLinkClick === 'string') { // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n this.handlePopoverClose = () => {\n this.setState({ isPopoverOpen: false });\n };\n }\n render() {\n let { props, state } = this;\n return (createElement(ViewContextType.Consumer, null, (context) => {\n let { viewApi, options, calendarApi } = context;\n let { moreLinkText } = options;\n let { moreCnt } = props;\n let range = computeRange(props);\n let text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n ? moreLinkText.call(calendarApi, moreCnt)\n : `+${moreCnt} ${moreLinkText}`;\n let hint = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n let renderProps = {\n num: moreCnt,\n shortText: `+${moreCnt}`,\n text,\n view: viewApi,\n };\n return (createElement(Fragment, null,\n Boolean(props.moreCnt) && (createElement(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [\n ...(props.elClasses || []),\n 'fc-more-link',\n ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: \"moreLinkContent\", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),\n state.isPopoverOpen && (createElement(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?\n props.alignmentElRef.current :\n this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));\n }));\n }\n componentDidMount() {\n this.updateParentEl();\n }\n componentDidUpdate() {\n this.updateParentEl();\n }\n updateParentEl() {\n if (this.linkEl) {\n this.parentEl = elementClosest(this.linkEl, '.fc-view-harness');\n }\n }\n}\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1),\n };\n }\n let { hiddenSegs } = props;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs),\n };\n}\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n}\n\nclass Store {\n constructor() {\n this.handlers = [];\n }\n set(value) {\n this.currentValue = value;\n for (let handler of this.handlers) {\n handler(value);\n }\n }\n subscribe(handler) {\n this.handlers.push(handler);\n if (this.currentValue !== undefined) {\n handler(this.currentValue);\n }\n }\n}\n\n/*\nSubscribers will get a LIST of CustomRenderings\n*/\nclass CustomRenderingStore extends Store {\n constructor() {\n super(...arguments);\n this.map = new Map();\n }\n // for consistent order\n handle(customRendering) {\n const { map } = this;\n let updated = false;\n if (customRendering.isActive) {\n map.set(customRendering.id, customRendering);\n updated = true;\n }\n else if (map.has(customRendering.id)) {\n map.delete(customRendering.id);\n updated = true;\n }\n if (updated) {\n this.set(map);\n }\n }\n}\n\nexport { elementClosest as $, memoizeObjArg as A, BaseComponent as B, ContentContainer as C, DelayedRunner as D, isPropsEqual as E, Emitter as F, getInitialDate as G, rangeContainsMarker as H, createEmptyEventStore as I, reduceCurrentDate as J, reduceEventStore as K, rezoneEventStoreDates as L, mergeRawOptions as M, BASE_OPTION_REFINERS as N, CALENDAR_LISTENER_REFINERS as O, CALENDAR_OPTION_REFINERS as P, COMPLEX_OPTION_COMPARATORS as Q, VIEW_OPTION_REFINERS as R, DateEnv as S, Theme as T, DateProfileGenerator as U, ViewContextType as V, createEventUi as W, parseBusinessHours as X, setRef as Y, Interaction as Z, getElSeg as _, mapHash as a, getSlotClassNames as a$, EventImpl as a0, listenBySelector as a1, listenToHoverBySelector as a2, PureComponent as a3, buildViewContext as a4, getUniqueDomId as a5, parseInteractionSettings as a6, interactionSettingsStore as a7, getNow as a8, CalendarImpl as a9, diffDates as aA, removeExact as aB, memoizeArraylike as aC, memoizeHashlike as aD, intersectRects as aE, pointInsideRect as aF, constrainPoint as aG, getRectCenter as aH, diffPoints as aI, translateRect as aJ, compareObjs as aK, collectFromHash as aL, findElements as aM, findDirectChildren as aN, removeElement as aO, applyStyle as aP, elementMatches as aQ, getEventTargetViaRoot as aR, parseClassNames as aS, getCanVGrowWithinCell as aT, mergeEventStores as aU, getRelevantEvents as aV, eventTupleToStore as aW, combineEventUis as aX, Splitter as aY, getDayClassNames as aZ, getDateMeta as a_, flushSync as aa, CalendarRoot as ab, RenderId as ac, ensureElHasStyles as ad, applyStyleProp as ae, sliceEventStore as af, JsonRequestError as ag, createContext as ah, refineProps as ai, createEventInstance as aj, parseEventDef as ak, refineEventDef as al, padStart as am, isInt as an, parseFieldSpecs as ao, compareByFieldSpecs as ap, flexibleCompare as aq, preventSelection as ar, allowSelection as as, preventContextMenu as at, allowContextMenu as au, compareNumbers as av, enableCursor as aw, disableCursor as ax, computeVisibleDayRange as ay, isMultiDayRange as az, buildViewClassNames as b, SimpleScrollGrid as b$, buildNavLinkAttrs as b0, preventDefault as b1, whenTransitionDone as b2, computeInnerRect as b3, computeEdges as b4, getClippingParents as b5, computeRect as b6, rangesEqual as b7, rangesIntersect as b8, rangeContainsRange as b9, SegHierarchy as bA, buildEntryKey as bB, getEntrySpanEnd as bC, binarySearch as bD, groupIntersectingEntries as bE, intersectSpans as bF, interactionSettingsToStore as bG, ElementDragging as bH, config as bI, parseDragMeta as bJ, DayHeader as bK, computeFallbackHeaderFormat as bL, TableDateCell as bM, TableDowCell as bN, DaySeriesModel as bO, hasBgRendering as bP, buildSegTimeText as bQ, sortEventSegs as bR, getSegMeta as bS, buildEventRangeKey as bT, getSegAnchorAttrs as bU, DayTableModel as bV, Slicer as bW, applyMutationToEventStore as bX, isPropsValid as bY, isInteractionValid as bZ, isDateSelectionValid as b_, PositionCache as ba, ScrollController as bb, ElementScrollController as bc, WindowScrollController as bd, DateComponent as be, isDateSpansEqual as bf, addMs as bg, addWeeks as bh, diffWeeks as bi, diffWholeWeeks as bj, diffDayAndTime as bk, diffDays as bl, isValidDate as bm, asCleanDays as bn, multiplyDuration as bo, addDurations as bp, asRoughMinutes as bq, asRoughSeconds as br, asRoughMs as bs, wholeDivideDurations as bt, formatIsoTimeString as bu, formatDayString as bv, buildIsoString as bw, formatIsoMonthStr as bx, NamedTimeZoneImpl as by, parse as bz, greatestDurationDenominator as c, hasShrinkWidth as c0, renderMicroColGroup as c1, getScrollGridClassNames as c2, getSectionClassNames as c3, getSectionHasLiquidHeight as c4, getAllowYScrolling as c5, renderChunkContent as c6, computeShrinkWidth as c7, sanitizeShrinkWidth as c8, isColPropsEqual as c9, renderScrollShim as ca, getStickyFooterScrollbar as cb, getStickyHeaderDates as cc, Scroller as cd, getScrollbarWidths as ce, RefMap as cf, getIsRtlScrollbarOnLeft as cg, NowTimer as ch, ScrollResponder as ci, StandardEvent as cj, NowIndicatorContainer as ck, DayCellContainer as cl, hasCustomDayCellContent as cm, EventContainer as cn, renderFill as co, BgEvent as cp, WeekNumberContainer as cq, MoreLinkContainer as cr, computeEarliestSegStart as cs, ViewContainer as ct, triggerDateSelect as cu, getDefaultEventEnd as cv, injectStyles as cw, buildElAttrs as cx, CustomRenderingStore as cy, createDuration as d, BASE_OPTION_DEFAULTS as e, arrayToHash as f, guid as g, filterHash as h, isArraysEqual as i, buildEventSourceRefiners as j, formatWithOrdinals as k, buildRangeApiWithTimeZone as l, mergeProps as m, identity as n, intersectRanges as o, parseEventSource as p, startOfDay as q, requestJson as r, subtractDurations as s, addDays as t, unpromisify as u, hashValuesToArray as v, buildEventApis as w, createFormatter as x, diffWholeDays as y, memoize as z };\n","import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassNames, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as setRef, Z as Interaction, _ as getElSeg, $ as elementClosest, a0 as EventImpl, a1 as listenBySelector, a2 as listenToHoverBySelector, a3 as PureComponent, a4 as buildViewContext, a5 as getUniqueDomId, a6 as parseInteractionSettings, a7 as interactionSettingsStore, a8 as getNow, a9 as CalendarImpl, aa as flushSync, ab as CalendarRoot, ac as RenderId, ad as ensureElHasStyles, ae as applyStyleProp, af as sliceEventStore } from './internal-common.js';\nexport { ag as JsonRequestError } from './internal-common.js';\nimport { createElement, createRef, Fragment, render } from 'preact';\nimport 'preact/compat';\n\nconst globalLocales = [];\n\nconst MINIMAL_RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4, // 4 days need to be within the year to be considered the first week\n },\n direction: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list',\n },\n weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display',\n};\nconst RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), { \n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today(buttonText, unit) {\n return (unit === 'day')\n ? 'Today'\n : `This ${buttonText}`;\n },\n }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n } });\nfunction organizeRawLocales(explicitRawLocales) {\n let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n let allRawLocales = globalLocales.concat(explicitRawLocales);\n let rawLocaleMap = {\n en: RAW_EN_LOCALE,\n };\n for (let rawLocale of allRawLocales) {\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode,\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n let codes = [].concat(codeArg || []); // will convert to array\n let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (let i = 0; i < codes.length; i += 1) {\n let parts = codes[i].toLocaleLowerCase().split('-');\n for (let j = parts.length; j > 0; j -= 1) {\n let simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n let merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n let { week } = merged;\n delete merged.week;\n return {\n codeArg,\n codes,\n week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n };\n}\n\n// TODO: easier way to add new hooks? need to update a million things\nfunction createPlugin(input) {\n return {\n id: guid(),\n name: input.name,\n premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {},\n };\n}\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n let currentPluginIds = {};\n let hooks = {\n premiumReleaseDate: undefined,\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {},\n };\n function addDefs(defs) {\n for (let def of defs) {\n const pluginName = def.name;\n const currentId = currentPluginIds[pluginName];\n if (currentId === undefined) {\n currentPluginIds[pluginName] = def.id;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n else if (currentId !== def.id) {\n // different ID than the one already added\n console.warn(`Duplicate plugin '${pluginName}'`);\n }\n }\n }\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n addDefs(globalDefs);\n return hooks;\n}\nfunction buildBuildPluginHooks() {\n let currentOverrideDefs = [];\n let currentGlobalDefs = [];\n let currentHooks;\n return (overrideDefs, globalDefs) => {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\nfunction combineHooks(hooks0, hooks1) {\n return {\n premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),\n };\n}\nfunction compareOptionalDates(date0, date1) {\n if (date0 === undefined) {\n return date1;\n }\n if (date1 === undefined) {\n return date0;\n }\n return new Date(Math.max(date0.valueOf(), date1.valueOf()));\n}\n\nclass StandardTheme extends Theme {\n}\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right',\n};\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left',\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n let hash = {};\n let viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n let defaultConfig = defaultConfigs[viewType];\n let overrideConfig = overrideConfigs[viewType];\n let queryProp = (name) => ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null));\n let theComponent = queryProp('component');\n let superType = queryProp('superType');\n let superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n component: theComponent,\n defaults: Object.assign(Object.assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),\n overrides: Object.assign(Object.assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),\n };\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n let rawOptions = typeof input === 'function' ?\n { component: input } :\n input;\n let { component } = rawOptions;\n if (rawOptions.content) {\n // TODO: remove content/classNames/didMount/etc from options?\n component = createViewHookComponent(rawOptions);\n }\n else if (component && !(component.prototype instanceof BaseComponent)) {\n // WHY?: people were using `component` property for `content`\n // TODO: converge on one setting name\n component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));\n }\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions, // includes type and component too :(\n };\n}\nfunction createViewHookComponent(options) {\n return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: \"div\", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let defaultConfigs = parseViewConfigs(defaultInputs);\n let overrideConfigs = parseViewConfigs(optionOverrides.views);\n let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration;\n let duration = null;\n let durationUnit = '';\n let singleUnit = '';\n let singleUnitOverrides = {};\n if (durationInput) {\n duration = createDurationCached(durationInput);\n if (duration) { // valid?\n let denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n let queryButtonText = (optionsSubset) => {\n let buttonTextMap = optionsSubset.buttonText || {};\n let buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n return null;\n };\n let queryButtonTitle = (optionsSubset) => {\n let buttonHints = optionsSubset.buttonHints || {};\n let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n return null;\n };\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration,\n durationUnit,\n singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||\n queryButtonTitle(optionOverrides) ||\n viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) ||\n viewDef.defaults.buttonHint ||\n queryButtonTitle(BASE_OPTION_DEFAULTS),\n // will eventually fall back to buttonText\n };\n}\n// hack to get memoization working\nlet durationInputMap = {};\nfunction createDurationCached(durationInput) {\n let json = JSON.stringify(durationInput);\n let res = durationInputMap[json];\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n return res;\n}\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n switch (action.type) {\n case 'SET_OPTION':\n return Object.assign(Object.assign({}, dynamicOptionOverrides), { [action.optionName]: action.rawOptionValue });\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n let dp;\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n }\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n return eventSources;\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n for (let sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n let hash = {};\n for (let source of sources) {\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n return Object.assign(Object.assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n let nextSources = {};\n for (let sourceId in prevSources) {\n let source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n let { options, calendarApi } = context;\n let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n let fetchId = guid();\n sourceDef.fetch({\n eventSource,\n range: fetchRange,\n isRefetch,\n context,\n }, (res) => {\n let { rawEvents } = res;\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n rawEvents,\n });\n }, (error) => {\n let errorHandled = false;\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n errorHandled = true;\n }\n if (eventSource.failure) {\n eventSource.failure(error);\n errorHandled = true;\n }\n if (!errorHandled) {\n console.warn(error.message, error);\n }\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n error,\n });\n });\n return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n let eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));\n}\nfunction parseInitialSources(rawOptions, context) {\n let refiners = buildEventSourceRefiners(context);\n let rawSources = [].concat(rawOptions.eventSources || []);\n let sources = []; // parsed\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\n for (let rawSource of rawSources) {\n let source = parseEventSource(rawSource, context, refiners);\n if (source) {\n sources.push(source);\n }\n }\n return sources;\n}\nfunction doesSourceNeedRange(eventSource, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n case 'SELECT_DATES':\n return action.selection;\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n let newDrag;\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n };\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n let newResize;\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n };\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return { header, footer };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let sectionWidgets = {};\n let viewsWithButtons = [];\n let hasTitle = false;\n for (let sectionName in sectionStrHash) {\n let sectionStr = sectionStrHash[sectionName];\n let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push(...sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n return { sectionWidgets, viewsWithButtons, hasTitle };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n let isRtl = calendarOptions.direction === 'rtl';\n let calendarCustomButtons = calendarOptions.customButtons || {};\n let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n let calendarButtonText = calendarOptions.buttonText || {};\n let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n let calendarButtonHints = calendarOptions.buttonHints || {};\n let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n let viewsWithButtons = [];\n let hasTitle = false;\n let widgets = sectionSubstrs.map((buttonGroupStr) => (buttonGroupStr.split(',').map((buttonName) => {\n if (buttonName === 'title') {\n hasTitle = true;\n return { buttonName };\n }\n let customButtonProps;\n let viewSpec;\n let buttonClick;\n let buttonIcon; // only one of these will be set\n let buttonText; // \"\n let buttonHint;\n // ^ for the title=\"\" attribute, for accessibility\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = (ev) => {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName);\n buttonClick = () => {\n calendarApi.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault);\n let textFallback = viewSpec.buttonTextOverride ||\n viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||\n viewSpec.buttonTitleDefault ||\n calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n }\n else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = () => {\n calendarApi[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||\n calendarButtonHints[prevOrNext], [\n calendarButtonText.year || 'year',\n 'year',\n ], calendarButtonText[buttonName]);\n }\n else {\n buttonHint = (navUnit) => formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||\n calendarButtonHints[buttonName], [\n calendarButtonText[navUnit] || navUnit,\n navUnit,\n ], calendarButtonText[buttonName]);\n }\n }\n return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };\n })));\n return { widgets, viewsWithButtons, hasTitle };\n}\n\n// always represents the current view. otherwise, it'd need to change value every time date changes\nclass ViewImpl {\n constructor(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n get calendar() {\n return this.getCurrentData().calendarApi;\n }\n get title() {\n return this.getCurrentData().viewTitle;\n }\n get activeStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n }\n get activeEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n }\n get currentStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n }\n get currentEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n }\n getOption(name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n }\n}\n\nlet eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback) {\n successCallback({\n rawEvents: arg.eventSource.meta,\n });\n },\n};\nconst arrayEventSourcePlugin = createPlugin({\n name: 'array-event-source',\n eventSourceDefs: [eventSourceDef$2],\n});\n\nlet eventSourceDef$1 = {\n parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { dateEnv } = arg.context;\n const func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);\n },\n};\nconst funcEventSourcePlugin = createPlugin({\n name: 'func-event-source',\n eventSourceDefs: [eventSourceDef$1],\n});\n\nconst JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n};\n\nlet eventSourceDef = {\n parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam,\n };\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { meta } = arg.eventSource;\n const requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {\n successCallback({ rawEvents, response });\n }, errorCallback);\n },\n};\nconst jsonFeedEventSourcePlugin = createPlugin({\n name: 'json-event-source',\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n});\nfunction buildRequestParams(meta, range, context) {\n let { dateEnv, options } = context;\n let startParam;\n let endParam;\n let timeZoneParam;\n let customRequestParams;\n let params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = options.startParam;\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = options.endParam;\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n Object.assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nconst SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity,\n};\n\nlet recurring = {\n parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n let recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n };\n let duration;\n if (refined.duration) {\n duration = refined.duration;\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration,\n typeData: recurringData, // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand(typeData, framingRange, dateEnv) {\n let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n return [];\n },\n};\nconst simpleRecurringEventsPlugin = createPlugin({\n name: 'simple-recurring-event',\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n let dayMarker = startOfDay(framingRange.start);\n let endMarker = framingRange.end;\n let instanceStarts = [];\n while (dayMarker < endMarker) {\n let instanceStart;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nconst changeHandlerPlugin = createPlugin({\n name: 'change-handler',\n optionChangeHandlers: {\n events(events, context) {\n handleEventSources([events], context);\n },\n eventSources: handleEventSources,\n },\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context) {\n let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n if (unfoundSources.length === 1 &&\n inputs.length === 1 &&\n Array.isArray(unfoundSources[0]._raw) &&\n Array.isArray(inputs[0])) {\n context.dispatch({\n type: 'RESET_RAW_EVENTS',\n sourceId: unfoundSources[0].sourceId,\n rawEvents: inputs[0],\n });\n return;\n }\n let newInputs = [];\n for (let input of inputs) {\n let inputFound = false;\n for (let i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (let unfoundSource of unfoundSources) {\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n });\n }\n for (let newInput of newInputs) {\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', Object.assign(Object.assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n}\n\nfunction handleEventStore(eventStore, context) {\n let { emitter } = context;\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nconst globalPlugins = [\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({\n name: 'misc',\n isLoadingFuncs: [\n (state) => computeEventSourcesLoading(state.eventSources),\n ],\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore,\n },\n }),\n];\n\nclass TaskRunner {\n constructor(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n request(task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n }\n pause(scope) {\n this.delayedRunner.pause(scope);\n }\n resume(scope, force) {\n this.delayedRunner.resume(scope, force);\n }\n drain() {\n let { queue } = this;\n while (queue.length) {\n let completedTasks = [];\n let task;\n while ((task = queue.shift())) {\n this.runTask(task);\n completedTasks.push(task);\n }\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n }\n runTask(task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n }\n drained(completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n }\n}\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n let range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n let { currentRangeUnit } = dateProfile;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n let days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n}\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\nclass CalendarDataManager {\n constructor(props) {\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv$1);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n this.optionsForRefining = [];\n this.optionsForHandling = [];\n this.getCurrentData = () => this.data;\n this.dispatch = (action) => {\n this.actionRunner.request(action); // protects against recursive calls to _handleAction\n };\n this.props = props;\n this.actionRunner.pause();\n let dynamicOptionOverrides = {};\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n };\n // needs to be after setThisContext\n for (let callback of optionsData.pluginHooks.contextInit) {\n callback(calendarContext);\n }\n // NOT DRY\n let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n let initialState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(initialState, reducer(null, null, contextAndState));\n }\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n resetOptions(optionOverrides, changedOptionNames) {\n let { props } = this;\n if (changedOptionNames === undefined) {\n props.optionOverrides = optionOverrides;\n }\n else {\n props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);\n this.optionsForRefining.push(...changedOptionNames);\n }\n if (changedOptionNames === undefined || changedOptionNames.length) {\n this.actionRunner.request({\n type: 'NOTHING',\n });\n }\n }\n _handleAction(action) {\n let { props, state, emitter } = this;\n let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = reduceViewType(state.currentViewType, action);\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter,\n getCurrentData: this.getCurrentData,\n };\n let { currentDate, dateProfile } = state;\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore;\n let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext); // will memoize obj\n let eventUiBySource = this.buildEventUiBySource(eventSources);\n let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n let newState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n eventSources,\n eventStore,\n renderableEventStore,\n selectionConfig,\n eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action),\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n }\n let wasLoading = computeIsLoading(state, calendarContext);\n let isLoading = computeIsLoading(newState, calendarContext);\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n }\n else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n this.state = newState;\n if (props.onAction) {\n props.onAction(action);\n }\n }\n updateData() {\n let { props, state } = this;\n let oldData = this.data;\n let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n let oldCalendarOptions = oldData && oldData.calendarOptions;\n let newCalendarOptions = optionsData.calendarOptions;\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);\n }\n for (let optionName in changeHandlers) {\n if (this.optionsForHandling.indexOf(optionName) !== -1 ||\n oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n this.optionsForHandling = [];\n if (props.onData) {\n props.onData(data);\n }\n }\n computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n if (!this.optionsForRefining.length &&\n optionOverrides === this.stableOptionOverrides &&\n dynamicOptionOverrides === this.stableDynamicOptionOverrides) {\n return this.stableCalendarOptionsData;\n }\n let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);\n let theme = this.buildTheme(refinedOptions, pluginHooks);\n let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);\n return this.stableCalendarOptionsData = {\n calendarOptions: refinedOptions,\n pluginHooks,\n dateEnv,\n viewSpecs,\n theme,\n toolbarConfig,\n localeDefaults,\n availableRawLocales: availableLocaleData.map,\n };\n }\n // always called from behind a memoizer\n processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {\n let { locales, locale } = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let availableLocaleData = this.organizeRawLocales(locales);\n let availableRawLocales = availableLocaleData.map;\n let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let extra = {};\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refined = {};\n let currentRaw = this.currentCalendarOptionsInput;\n let currentRefined = this.currentCalendarOptionsRefined;\n let anyChanges = false;\n for (let optionName in raw) {\n if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {\n refined[optionName] = currentRefined[optionName];\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n }\n else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n this.stableOptionOverrides = optionOverrides;\n this.stableDynamicOptionOverrides = dynamicOptionOverrides;\n }\n this.optionsForHandling.push(...this.optionsForRefining);\n this.optionsForRefining = [];\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks,\n availableLocaleData,\n localeDefaults,\n extra,\n };\n }\n _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n let viewSpec = optionsData.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`);\n }\n let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n fixedWeekCount: refinedOptions.fixedWeekCount,\n });\n let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };\n }\n processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let refined = {};\n let currentRaw = this.currentViewOptionsInput;\n let currentRefined = this.currentViewOptionsRefined;\n let anyChanges = false;\n let extra = {};\n for (let optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {\n refined[optionName] = currentRefined[optionName];\n }\n else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n }\n else {\n extra[optionName] = raw[optionName];\n }\n anyChanges = true;\n }\n }\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra,\n };\n }\n}\nfunction buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale,\n weekNumberCalculation,\n firstDay,\n weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator,\n });\n}\nfunction buildTheme(options, pluginHooks) {\n let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewImpl(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, (eventSource) => eventSource.ui);\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n let eventUiBases = { '': eventUiSingleBase };\n for (let defId in eventDefs) {\n let def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\nfunction buildViewUiProps(calendarContext) {\n let { options } = calendarContext;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor,\n // classNames: options.eventClassNames // render hook will handle this\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow,\n }, calendarContext),\n };\n}\nfunction computeIsLoading(state, context) {\n for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n for (let optionName in options) {\n console.warn(`Unknown option '${optionName}'` +\n (viewName ? ` for view '${viewName}'` : ''));\n }\n}\n\nclass ToolbarSection extends BaseComponent {\n render() {\n let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));\n return createElement('div', { className: 'fc-toolbar-chunk' }, ...children);\n }\n renderWidgetGroup(widgetGroup) {\n let { props } = this;\n let { theme } = this.context;\n let children = [];\n let isOnlyButtons = true;\n for (let widget of widgetGroup) {\n let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", { className: \"fc-toolbar-title\", id: props.titleId }, props.title));\n }\n else {\n let isPressed = buttonName === props.activeButton;\n let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next');\n let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n children.push(createElement(\"button\", { type: \"button\", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, \"aria-pressed\": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon, role: \"img\" }) : '')));\n }\n }\n if (children.length > 1) {\n let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n return createElement('div', { className: groupClassName }, ...children);\n }\n return children[0];\n }\n}\n\nclass Toolbar extends BaseComponent {\n render() {\n let { model, extraClassName } = this.props;\n let forceLtr = false;\n let startContent;\n let endContent;\n let sectionWidgets = model.sectionWidgets;\n let centerContent = sectionWidgets.center;\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n }\n else {\n startContent = sectionWidgets.start;\n }\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n }\n else {\n endContent = sectionWidgets.end;\n }\n let classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ];\n return (createElement(\"div\", { className: classNames.join(' ') },\n this.renderSection('start', startContent || []),\n this.renderSection('center', centerContent || []),\n this.renderSection('end', endContent || [])));\n }\n renderSection(key, widgetGroups) {\n let { props } = this;\n return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));\n }\n}\n\nclass ViewHarness extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n availableWidth: null,\n };\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n this.updateAvailableWidth();\n };\n this.handleResize = () => {\n this.updateAvailableWidth();\n };\n }\n render() {\n let { props, state } = this;\n let { aspectRatio } = props;\n let classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive', // let the view do the height\n ];\n let height = '';\n let paddingBottom = '';\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n }\n else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = `${(1 / aspectRatio) * 100}%`;\n }\n }\n else {\n height = props.height || '';\n }\n return (createElement(\"div\", { \"aria-labelledby\": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));\n }\n componentDidMount() {\n this.context.addResizeHandler(this.handleResize);\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n updateAvailableWidth() {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({ availableWidth: this.el.offsetWidth });\n }\n }\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nclass EventClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handleSegClick = (ev, segEl) => {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (seg && // might be the <div> surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be <a> tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n this.handleSegClick);\n }\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nclass EventHovering extends Interaction {\n constructor(settings) {\n super(settings);\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n this.handleEventElRemove = (el) => {\n if (el === this.currentSegEl) {\n this.handleSegLeave(null, this.currentSegEl);\n }\n };\n this.handleSegEnter = (ev, segEl) => {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n this.currentSegEl = segEl;\n this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n this.handleSegLeave = (ev, segEl) => {\n if (this.currentSegEl) {\n this.currentSegEl = null;\n this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n this.handleSegEnter, this.handleSegLeave);\n }\n destroy() {\n this.removeHoverListeners();\n }\n triggerEvent(publicEvName, ev, segEl) {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventImpl(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n }\n}\n\nclass CalendarContent extends PureComponent {\n constructor() {\n super(...arguments);\n this.buildViewContext = memoize(buildViewContext);\n this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n this.buildToolbarProps = memoize(buildToolbarProps);\n this.headerRef = createRef();\n this.footerRef = createRef();\n this.interactionsStore = {};\n // eslint-disable-next-line\n this.state = {\n viewLabelId: getUniqueDomId(),\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n this.registerInteractiveComponent = (component, settingsInput) => {\n let settings = parseInteractionSettings(component, settingsInput);\n let DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering,\n ];\n let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);\n let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n this.unregisterInteractiveComponent = (component) => {\n let listeners = this.interactionsStore[component.uid];\n if (listeners) {\n for (let listener of listeners) {\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n }\n delete interactionSettingsStore[component.uid];\n };\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n this.resizeRunner = new DelayedRunner(() => {\n this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n this.props.emitter.trigger('windowResize', { view: this.props.viewApi });\n });\n this.handleWindowResize = (ev) => {\n let { options } = this.props;\n if (options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n }\n /*\n renders INSIDE of an outer div\n */\n render() {\n let { props } = this;\n let { toolbarConfig, options } = props;\n let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n let viewVGrow = false;\n let viewHeight = '';\n let viewAspectRatio;\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n }\n else if (options.height != null) {\n viewVGrow = true;\n }\n else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n }\n else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)\n ? this.state.viewLabelId\n : undefined;\n return (createElement(ViewContextType.Provider, { value: viewContext },\n toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),\n createElement(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },\n this.renderView(props),\n this.buildAppendContent()),\n toolbarConfig.footer && (createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footer, titleId: \"\" }, toolbarProps)))));\n }\n componentDidMount() {\n let { props } = this;\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map((CalendarInteractionClass) => new CalendarInteractionClass(props));\n window.addEventListener('resize', this.handleWindowResize);\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n componentDidUpdate(prevProps) {\n let { props } = this;\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n for (let interaction of this.calendarInteractions) {\n interaction.destroy();\n }\n this.props.emitter.trigger('_unmount');\n }\n buildAppendContent() {\n let { props } = this;\n let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));\n return createElement(Fragment, {}, ...children);\n }\n renderView(props) {\n let { pluginHooks } = props;\n let { viewSpec } = props;\n let viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint,\n };\n let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n for (let transformer of transformers) {\n Object.assign(viewProps, transformer.transform(viewProps, props));\n }\n let ViewComponent = viewSpec.component;\n return (createElement(ViewComponent, Object.assign({}, viewProps)));\n }\n}\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid,\n };\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map((TheClass) => new TheClass());\n}\n\nclass Calendar extends CalendarImpl {\n constructor(el, optionOverrides = {}) {\n super();\n this.isRendering = false;\n this.isRendered = false;\n this.currentClassNames = [];\n this.customContentRenderId = 0;\n this.handleAction = (action) => {\n // actions we know we want to render immediately\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n case 'SET_EVENT_RESIZE':\n this.renderRunner.tryDrain();\n }\n };\n this.handleData = (data) => {\n this.currentData = data;\n this.renderRunner.request(data.calendarOptions.rerenderDelay);\n };\n this.handleRenderRequest = () => {\n if (this.isRendering) {\n this.isRendered = true;\n let { currentData } = this;\n flushSync(() => {\n render(createElement(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {\n this.setClassNames(classNames);\n this.setHeight(height);\n return (createElement(RenderId.Provider, { value: this.customContentRenderId },\n createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));\n }), this.el);\n });\n }\n else if (this.isRendered) {\n this.isRendered = false;\n render(null, this.el);\n this.setClassNames([]);\n this.setHeight('');\n }\n };\n ensureElHasStyles(el);\n this.el = el;\n this.renderRunner = new DelayedRunner(this.handleRenderRequest);\n new CalendarDataManager({\n optionOverrides,\n calendarApi: this,\n onAction: this.handleAction,\n onData: this.handleData,\n });\n }\n render() {\n let wasRendering = this.isRendering;\n if (!wasRendering) {\n this.isRendering = true;\n }\n else {\n this.customContentRenderId += 1;\n }\n this.renderRunner.request();\n if (wasRendering) {\n this.updateSize();\n }\n }\n destroy() {\n if (this.isRendering) {\n this.isRendering = false;\n this.renderRunner.request();\n }\n }\n updateSize() {\n flushSync(() => {\n super.updateSize();\n });\n }\n batchRendering(func) {\n this.renderRunner.pause('batchRendering');\n func();\n this.renderRunner.resume('batchRendering');\n }\n pauseRendering() {\n this.renderRunner.pause('pauseRendering');\n }\n resumeRendering() {\n this.renderRunner.resume('pauseRendering', true);\n }\n resetOptions(optionOverrides, changedOptionNames) {\n this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);\n }\n setClassNames(classNames) {\n if (!isArraysEqual(classNames, this.currentClassNames)) {\n let { classList } = this.el;\n for (let className of this.currentClassNames) {\n classList.remove(className);\n }\n for (let className of classNames) {\n classList.add(className);\n }\n this.currentClassNames = classNames;\n }\n }\n setHeight(height) {\n applyStyleProp(this.el, 'height', height);\n }\n}\n\nfunction formatDate(dateInput, options = {}) {\n let dateEnv = buildDateEnv(options);\n let formatter = createFormatter(options);\n let dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo,\n });\n}\nfunction formatRange(startInput, endInput, options) {\n let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n let formatter = createFormatter(options);\n let startMeta = dateEnv.createMarkerMeta(startInput);\n let endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv(settings) {\n let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n return new DateEnv(Object.assign(Object.assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));\n}\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nconst version = '6.1.15';\n\nexport { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };\n","export const OPTION_IS_COMPLEX = {\n headerToolbar: true,\n footerToolbar: true,\n events: true,\n eventSources: true,\n resources: true\n};\n//# sourceMappingURL=options.js.map","import { defineComponent, h, Fragment, Teleport } from 'vue';\nimport { Calendar } from '@fullcalendar/core';\nimport { CustomRenderingStore } from '@fullcalendar/core/internal';\nimport { OPTION_IS_COMPLEX } from './options.js';\nconst FullCalendar = defineComponent({\n props: {\n options: Object\n },\n data() {\n return {\n renderId: 0,\n customRenderingMap: new Map()\n };\n },\n methods: {\n getApi() {\n return getSecret(this).calendar;\n },\n buildOptions(suppliedOptions) {\n return {\n ...suppliedOptions,\n customRenderingMetaMap: kebabToCamelKeys(this.$slots),\n handleCustomRendering: getSecret(this).handleCustomRendering,\n };\n },\n },\n render() {\n const customRenderingNodes = [];\n for (const customRendering of this.customRenderingMap.values()) {\n customRenderingNodes.push(h(CustomRenderingComponent, {\n key: customRendering.id,\n customRendering,\n }));\n }\n return h('div', {\n // when renderId is changed, Vue will trigger a real-DOM async rerender, calling beforeUpdate/updated\n attrs: { 'data-fc-render-id': this.renderId }\n }, h(Fragment, customRenderingNodes)); // for containing CustomRendering keys\n },\n mounted() {\n const customRenderingStore = new CustomRenderingStore();\n getSecret(this).handleCustomRendering = customRenderingStore.handle.bind(customRenderingStore);\n const calendarOptions = this.buildOptions(this.options);\n const calendar = new Calendar(this.$el, calendarOptions);\n getSecret(this).calendar = calendar;\n calendar.render();\n customRenderingStore.subscribe((customRenderingMap) => {\n this.customRenderingMap = customRenderingMap; // likely same reference, so won't rerender\n this.renderId++; // force rerender\n getSecret(this).needCustomRenderingResize = true;\n });\n },\n beforeUpdate() {\n this.getApi().resumeRendering(); // the watcher handlers paused it\n },\n updated() {\n if (getSecret(this).needCustomRenderingResize) {\n getSecret(this).needCustomRenderingResize = false;\n this.getApi().updateSize();\n }\n },\n beforeUnmount() {\n this.getApi().destroy();\n },\n watch: buildWatchers()\n});\nexport default FullCalendar;\n// Custom Rendering\n// -------------------------------------------------------------------------------------------------\nconst CustomRenderingComponent = defineComponent({\n props: {\n customRendering: Object\n },\n render() {\n const customRendering = this.customRendering;\n const innerContent = typeof customRendering.generatorMeta === 'function' ?\n customRendering.generatorMeta(customRendering.renderProps) : // vue-normalized slot function\n customRendering.generatorMeta; // probably a vue JSX node returned from content-inject func\n return h(Teleport, { to: customRendering.containerEl }, innerContent);\n }\n});\n// storing internal state:\n// https://github.com/vuejs/vue/issues/1988#issuecomment-163013818\nfunction getSecret(inst) {\n return inst;\n}\nfunction buildWatchers() {\n let watchers = {\n // watches changes of ALL options and their nested objects,\n // but this is only a means to be notified of top-level non-complex options changes.\n options: {\n deep: true,\n handler(options) {\n let calendar = this.getApi();\n calendar.pauseRendering();\n let calendarOptions = this.buildOptions(options);\n calendar.resetOptions(calendarOptions);\n this.renderId++; // will queue a rerender\n }\n }\n };\n for (let complexOptionName in OPTION_IS_COMPLEX) {\n // handlers called when nested objects change\n watchers[`options.${complexOptionName}`] = {\n deep: true,\n handler(val) {\n // unfortunately the handler is called with undefined if new props were set, but the complex one wasn't ever set\n if (val !== undefined) {\n let calendar = this.getApi();\n calendar.pauseRendering();\n calendar.resetOptions({\n [complexOptionName]: val\n }, [complexOptionName]);\n this.renderId++; // will queue a rerender\n }\n }\n };\n }\n return watchers;\n}\n// General Utils\n// -------------------------------------------------------------------------------------------------\nfunction kebabToCamelKeys(map) {\n const newMap = {};\n for (const key in map) {\n newMap[kebabToCamel(key)] = map[key];\n }\n return newMap;\n}\nfunction kebabToCamel(s) {\n return s\n .split('-')\n .map((word, index) => index ? capitalize(word) : word)\n .join('');\n}\nfunction capitalize(s) {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n//# sourceMappingURL=FullCalendar.js.map","import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends DateComponent {\n constructor() {\n super(...arguments);\n this.headerElRef = createRef();\n }\n renderSimpleLayout(headerRowContent, bodyContent) {\n let { props, context } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n });\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));\n }\n renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { props, context } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n });\n }\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));\n }\n}\n\nfunction splitSegsByRow(segs, rowCnt) {\n let byRow = [];\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = [];\n }\n for (let seg of segs) {\n byRow[seg.row].push(seg);\n }\n return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n let byCol = [];\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = [];\n }\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg);\n }\n return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg);\n }\n }\n return byRow;\n}\n\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n});\nfunction hasListItemDisplay(seg) {\n let { display } = seg.eventRange.ui;\n return display === 'list-item' || (display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n );\n}\n\nclass TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n }\n}\n\nclass TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props, { elTag: \"a\", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));\n }\n}\nfunction renderInnerContent(renderProps) {\n return (createElement(Fragment, null,\n createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),\n renderProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, renderProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title\" }, renderProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n}\n\nclass TableCellMoreLink extends BaseComponent {\n constructor() {\n super(...arguments);\n this.compileSegs = memoize(compileSegs);\n }\n render() {\n let { props } = this;\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);\n return (createElement(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {\n let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n visibility: isForcedInvisible[instanceId] ? 'hidden' : '',\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));\n })));\n } }));\n }\n}\nfunction compileSegs(singlePlacements) {\n let allSegs = [];\n let invisibleSegs = [];\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg);\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg);\n }\n }\n return { allSegs, invisibleSegs };\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\nclass TableCell extends DateComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.state = {\n dayNumberId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n setRef(this.rootElRef, el);\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { context, props, state, rootElRef } = this;\n let { options, dateEnv } = context;\n let { date, dateProfile } = props;\n // TODO: memoize this?\n const isMonthStart = props.showDayNumber &&\n shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: this.handleRootEl, elClasses: [\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (createElement(\"div\", { ref: props.innerElRef, className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", style: { minHeight: props.minHeight } },\n props.showWeekNumber && (createElement(WeekNumberContainer, { elTag: \"a\", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (createElement(\"div\", { className: \"fc-daygrid-day-top\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-daygrid-day-number',\n isMonthStart && 'fc-daygrid-month-start',\n ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (\n // for creating correct amount of space (see issue #7162)\n createElement(\"div\", { className: \"fc-daygrid-day-top\", style: { visibility: 'hidden' } },\n createElement(\"a\", { className: \"fc-daygrid-day-number\" }, \"\\u00A0\"))) : undefined,\n createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef },\n props.fgContent,\n createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),\n createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))));\n }\n}\nfunction renderTopInner(props) {\n return props.dayNumberText || createElement(Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n const { start: currentStart, end: currentEnd } = currentRange;\n const currentEndIncl = addMs(currentEnd, -1);\n const currentFirstYear = dateEnv.getYear(currentStart);\n const currentFirstMonth = dateEnv.getMonth(currentStart);\n const currentLastYear = dateEnv.getYear(currentEndIncl);\n const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n // spans more than one month?\n return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&\n Boolean(\n // first date in current view?\n date.valueOf() === currentStart.valueOf() ||\n // a month-start that's within the current range?\n (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));\n}\n\nfunction generateSegKey(seg) {\n return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs, // assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n let hierarchy = new DayGridSegHierarchy((segEntry) => {\n // TODO: more DRY with generateSegUid\n let segUid = segs[segEntry.index].eventRange.instance.instanceId +\n ':' + segEntry.span.start +\n ':' + (segEntry.span.end - 1);\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return segHeights[segUid] || 1;\n });\n hierarchy.allowReslicing = true;\n hierarchy.strictOrder = strictOrder;\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight;\n hierarchy.hiddenConsumes = true;\n }\n else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents;\n }\n else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows;\n hierarchy.hiddenConsumes = true;\n }\n // create segInputs only for segs with known heights\n let segInputs = [];\n let unknownHeightSegs = [];\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let segUid = generateSegUid(seg);\n let eventHeight = segHeights[segUid];\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n });\n }\n else {\n unknownHeightSegs.push(seg);\n }\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let segRects = hierarchy.toRects();\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);\n let moreCnts = [];\n let moreMarginTops = [];\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0);\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index];\n let hiddenSpan = hiddenEntry.span;\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1;\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col]);\n }\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n let singleColPlacements = [];\n let multiColPlacements = [];\n let leftoverMargins = [];\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col];\n // compute all static segs in singlePlacements\n let singlePlacements = [];\n let currentHeight = 0;\n let currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n });\n currentHeight = rect.levelCoord + rect.thickness;\n }\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements = [];\n currentHeight = 0;\n currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n let isFirstCol = rect.span.start === col;\n currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n if (isAbsolute) {\n currentMarginTop += rect.thickness;\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n });\n }\n }\n else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n });\n currentMarginTop = 0;\n }\n }\n singleColPlacements.push(singlePlacements);\n multiColPlacements.push(multiPlacements);\n leftoverMargins.push(currentMarginTop);\n }\n return { singleColPlacements, multiColPlacements, leftoverMargins };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n let rectsByEachCol = [];\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([]);\n }\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect);\n }\n }\n return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg;\n }\n let eventRange = seg.eventRange;\n let origRange = eventRange.range;\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n });\n return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {\n def: eventRange.def,\n ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange,\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });\n}\nclass DayGridSegHierarchy extends SegHierarchy {\n constructor() {\n super(...arguments);\n // config\n this.hiddenConsumes = false;\n // allows us to keep hidden entries in the hierarchy so they take up space\n this.forceHidden = {};\n }\n addSegs(segInputs) {\n const hiddenSegs = super.addSegs(segInputs);\n const { entriesByLevel } = this;\n const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n }\n return hiddenSegs;\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n const { entriesByLevel, forceHidden } = this;\n const { touchingEntry, touchingLevel, touchingLateral } = insertion;\n // the entry that the new insertion is touching must be hidden\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry);\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n // split up the touchingEntry, reinsert it\n const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });\n // reinsert the area that turned into a \"more\" link (so no other entries try to\n // occupy the space) but mark it forced-hidden\n const hiddenEntryId = buildEntryKey(hiddenEntry);\n forceHidden[hiddenEntryId] = true;\n entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(touchingEntry, entry, hiddenEntries);\n }\n else {\n forceHidden[touchingEntryId] = true;\n hiddenEntries.push(touchingEntry);\n }\n }\n }\n // will try to reslice...\n super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n}\n\nclass TableRow extends DateComponent {\n constructor() {\n super(...arguments);\n this.cellElRefs = new RefMap(); // the <td>\n this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n this.rootElRef = createRef();\n this.state = {\n framePositions: null,\n maxContentHeight: null,\n segHeights: {},\n };\n this.handleResize = (isForced) => {\n if (isForced) {\n this.updateSizing(true); // isExternal=true\n }\n };\n }\n render() {\n let { props, state, context } = this;\n let { options } = context;\n let colCnt = props.cells.length;\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n return (createElement(\"tr\", { ref: this.rootElRef, role: \"row\" },\n props.renderIntro && props.renderIntro(),\n props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n createElement(Fragment, null, normalFgNodes),\n createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));\n })));\n }\n componentDidMount() {\n this.updateSizing(true);\n this.context.addResizeHandler(this.handleResize);\n }\n componentDidUpdate(prevProps, prevState) {\n let currentProps = this.props;\n this.updateSizing(!isPropsEqual(prevProps, currentProps));\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n getHighlightSegs() {\n let { props } = this;\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs;\n }\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return props.dateSelectionSegs;\n }\n getMirrorSegs() {\n let { props } = this;\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return [];\n }\n renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n let { context } = this;\n let { eventSelection } = this.props;\n let { framePositions } = this.state;\n let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting;\n let nodes = [];\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement;\n let { instanceId } = seg.eventRange.instance;\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n let isAbsolute = placement.isAbsolute;\n let left = '';\n let right = '';\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0;\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n }\n else {\n left = 0;\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n }\n }\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {\n visibility: isVisible ? '' : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n }\n }\n return nodes;\n }\n renderFillSegs(segs, fillType) {\n let { isRtl } = this.context;\n let { todayRange } = this.props;\n let { framePositions } = this.state;\n let nodes = [];\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n };\n nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n renderFill(fillType)));\n }\n }\n return createElement(Fragment, {}, ...nodes);\n }\n updateSizing(isExternalSizingChange) {\n let { props, state, frameElRefs } = this;\n if (!props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);\n if (frameEls.length) {\n let originEl = this.rootElRef.current;\n let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal\n false);\n if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n this.setState({\n framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n false),\n });\n }\n }\n }\n const oldSegHeights = this.state.segHeights;\n const newSegHeights = this.querySegHeights();\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n });\n }\n }\n querySegHeights() {\n let segElMap = this.segHarnessRefs.currentMap;\n let segHeights = {};\n // get the max height amongst instance segs\n for (let segUid in segElMap) {\n let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n }\n return segHeights;\n }\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key;\n let cellEl = this.cellElRefs.currentMap[firstKey];\n let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n }\n getCellEls() {\n let elMap = this.cellElRefs.currentMap;\n return this.props.cells.map((cell) => elMap[cell.key]);\n }\n}\nTableRow.addStateEquality({\n segHeights: isPropsEqual,\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n if (!mirrorSegs.length) {\n return [];\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n return mirrorSegs.map((seg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n let topsByInstanceId = {};\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n }\n }\n return topsByInstanceId;\n}\n\nclass TableRows extends DateComponent {\n constructor() {\n super(...arguments);\n this.splitBusinessHourSegs = memoize(splitSegsByRow);\n this.splitBgEventSegs = memoize(splitSegsByRow);\n this.splitFgEventSegs = memoize(splitSegsByRow);\n this.splitDateSelectionSegs = memoize(splitSegsByRow);\n this.splitEventDrag = memoize(splitInteractionByRow);\n this.splitEventResize = memoize(splitInteractionByRow);\n this.rowRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let rowCnt = props.cells.length;\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n // choose 7 because a month view will have max 6 rows\n let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?\n props.clientWidth / context.options.aspectRatio / 6 :\n null;\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(Fragment, null, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));\n }\n componentDidMount() {\n this.registerInteractiveComponent();\n }\n componentDidUpdate() {\n // for if started with zero cells\n this.registerInteractiveComponent();\n }\n registerInteractiveComponent() {\n if (!this.rootEl) {\n // HACK: need a daygrid wrapper parent to do positioning\n // NOTE: a daygrid resource view w/o resources can have zero cells\n const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n if (rootEl) {\n this.rootEl = rootEl;\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n }\n }\n componentWillUnmount() {\n if (this.rootEl) {\n this.context.unregisterInteractiveComponent(this);\n this.rootEl = null;\n }\n }\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n prepareHits() {\n this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false, true);\n this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false);\n }\n queryHit(positionLeft, positionTop) {\n let { colPositions, rowPositions } = this;\n let col = colPositions.leftToIndex(positionLeft);\n let row = rowPositions.topToIndex(positionTop);\n if (row != null && col != null) {\n let cell = this.props.cells[row][col];\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n };\n }\n return null;\n }\n getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n }\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date;\n let end = addDays(start, 1);\n return { start, end };\n }\n}\nfunction isSegAllDay(seg) {\n return seg.eventRange.def.allDay;\n}\n\nclass Table extends DateComponent {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.needsScrollReset = false;\n }\n render() {\n let { props } = this;\n let { dayMaxEventRows, dayMaxEvents, expandRows } = props;\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false;\n dayMaxEventRows = null;\n dayMaxEvents = null;\n }\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ];\n return (createElement(\"div\", { ref: this.elRef, className: classNames.join(' '), style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(\"table\", { role: \"presentation\", className: \"fc-scrollgrid-sync-table\", style: {\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n } },\n props.colGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));\n }\n componentDidMount() {\n this.requestScrollReset();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.dateProfile !== this.props.dateProfile) {\n this.requestScrollReset();\n }\n else {\n this.flushScrollReset();\n }\n }\n requestScrollReset() {\n this.needsScrollReset = true;\n this.flushScrollReset();\n }\n flushScrollReset() {\n if (this.needsScrollReset &&\n this.props.clientWidth // sizes computed?\n ) {\n const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n if (subjectEl) {\n const originEl = subjectEl.closest('.fc-daygrid-body');\n const scrollEl = originEl.closest('.fc-scroller');\n const scrollTop = subjectEl.getBoundingClientRect().top -\n originEl.getBoundingClientRect().top;\n scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border\n }\n this.needsScrollReset = false;\n }\n }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n let el;\n if (dateProfile.currentRangeUnit.match(/year|month/)) {\n el = containerEl.querySelector(`[data-date=\"${formatIsoMonthStr(dateProfile.currentDate)}-01\"]`);\n // even if view is month-based, first-of-month might be hidden...\n }\n if (!el) {\n el = containerEl.querySelector(`[data-date=\"${formatDayString(dateProfile.currentDate)}\"]`);\n // could still be hidden if an interior-view hidden day\n }\n return el;\n}\n\nclass DayTableSlicer extends Slicer {\n constructor() {\n super(...arguments);\n this.forceDayIfListItem = true;\n }\n sliceRange(dateRange, dayTableModel) {\n return dayTableModel.sliceRange(dateRange);\n }\n}\n\nclass DayTable extends DateComponent {\n constructor() {\n super(...arguments);\n this.slicer = new DayTableSlicer();\n this.tableRef = createRef();\n }\n render() {\n let { props, context } = this;\n return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n }\n}\n\nclass DayTableView extends TableView {\n constructor() {\n super(...arguments);\n this.buildDayTableModel = memoize(buildDayTableModel);\n this.headerRef = createRef();\n this.tableRef = createRef();\n // can't override any lifecycle methods from parent\n }\n render() {\n let { options, dateProfileGenerator } = this.context;\n let { props } = this;\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent);\n }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nclass TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n let { props } = this;\n return buildDayTableRenderRange({\n currentRange: renderRange,\n snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n fixedWeekCount: props.fixedWeekCount,\n dateEnv: props.dateEnv,\n });\n }\n}\nfunction buildDayTableRenderRange(props) {\n let { dateEnv, currentRange } = props;\n let { start, end } = currentRange;\n let endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (props.snapToWeek) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (props.fixedWeekCount) {\n // TODO: instead of these date-math gymnastics (for multimonth view),\n // compute dateprofiles of all months, then use start of first and end of last.\n let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));\n let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(lastMonthRenderStart, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start, end };\n}\n\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\ninjectStyles(css_248z);\n\nexport { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayGridView as DayTableView, TableDateProfileGenerator } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/daygrid',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n fixedWeekCount: true,\n },\n dayGridYear: {\n type: 'dayGrid',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n","import { Splitter, hasBgRendering, createFormatter, ViewContextType, ContentContainer, BaseComponent, DateComponent, diffDays, buildNavLinkAttrs, WeekNumberContainer, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, NowTimer, NowIndicatorContainer, renderScrollShim, rangeContainsMarker, startOfDay, asRoughMs, createDuration, RefMap, PositionCache, MoreLinkContainer, SegHierarchy, groupIntersectingEntries, binarySearch, getEntrySpanEnd, buildEntryKey, StandardEvent, memoize, sortEventSegs, DayCellContainer, hasCustomDayCellContent, getSegMeta, buildIsoString, computeEarliestSegStart, buildEventRangeKey, BgEvent, renderFill, addDurations, multiplyDuration, wholeDivideDurations, Slicer, intersectRanges, formatIsoTimeString, DayHeader, DaySeriesModel, DayTableModel, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createElement, createRef, Fragment } from '@fullcalendar/core/preact.js';\nimport { DayTable } from '@fullcalendar/daygrid/internal.js';\n\nclass AllDaySplitter extends Splitter {\n getKeyInfo() {\n return {\n allDay: {},\n timed: {},\n };\n }\n getKeysForDateSpan(dateSpan) {\n if (dateSpan.allDay) {\n return ['allDay'];\n }\n return ['timed'];\n }\n getKeysForEventDef(eventDef) {\n if (!eventDef.allDay) {\n return ['timed'];\n }\n if (hasBgRendering(eventDef)) {\n return ['timed', 'allDay'];\n }\n return ['allDay'];\n }\n}\n\nconst DEFAULT_SLAT_LABEL_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'short',\n});\nfunction TimeColsAxisCell(props) {\n let classNames = [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-label',\n props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor',\n ];\n return (createElement(ViewContextType.Consumer, null, (context) => {\n if (!props.isLabeled) {\n return (createElement(\"td\", { className: classNames.join(' '), \"data-time\": props.isoTimeStr }));\n }\n let { dateEnv, options, viewApi } = context;\n let labelFormat = // TODO: fully pre-parse\n options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT :\n Array.isArray(options.slotLabelFormat) ? createFormatter(options.slotLabelFormat[0]) :\n createFormatter(options.slotLabelFormat);\n let renderProps = {\n level: 0,\n time: props.time,\n date: dateEnv.toDate(props.date),\n view: viewApi,\n text: dateEnv.format(props.date, labelFormat),\n };\n return (createElement(ContentContainer, { elTag: \"td\", elClasses: classNames, elAttrs: {\n 'data-time': props.isoTimeStr,\n }, renderProps: renderProps, generatorName: \"slotLabelContent\", customGenerator: options.slotLabelContent, defaultGenerator: renderInnerContent, classNameGenerator: options.slotLabelClassNames, didMount: options.slotLabelDidMount, willUnmount: options.slotLabelWillUnmount }, (InnerContent) => (createElement(\"div\", { className: \"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame\" },\n createElement(InnerContent, { elTag: \"div\", elClasses: [\n 'fc-timegrid-slot-label-cushion',\n 'fc-scrollgrid-shrink-cushion',\n ] })))));\n }));\n}\nfunction renderInnerContent(props) {\n return props.text;\n}\n\nclass TimeBodyAxis extends BaseComponent {\n render() {\n return this.props.slatMetas.map((slatMeta) => (createElement(\"tr\", { key: slatMeta.key },\n createElement(TimeColsAxisCell, Object.assign({}, slatMeta)))));\n }\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'short' });\nconst AUTO_ALL_DAY_MAX_EVENT_ROWS = 5;\nclass TimeColsView extends DateComponent {\n constructor() {\n super(...arguments);\n this.allDaySplitter = new AllDaySplitter(); // for use by subclasses\n this.headerElRef = createRef();\n this.rootElRef = createRef();\n this.scrollerElRef = createRef();\n this.state = {\n slatCoords: null,\n };\n this.handleScrollTopRequest = (scrollTop) => {\n let scrollerEl = this.scrollerElRef.current;\n if (scrollerEl) { // TODO: not sure how this could ever be null. weirdness with the reducer\n scrollerEl.scrollTop = scrollTop;\n }\n };\n /* Header Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n this.renderHeadAxis = (rowKey, frameHeight = '') => {\n let { options } = this.context;\n let { dateProfile } = this.props;\n let range = dateProfile.renderRange;\n let dayCnt = diffDays(range.start, range.end);\n // only do in day views (to avoid doing in week views that dont need it)\n let navLinkAttrs = (dayCnt === 1)\n ? buildNavLinkAttrs(this.context, range.start, 'week')\n : {};\n if (options.weekNumbers && rowKey === 'day') {\n return (createElement(WeekNumberContainer, { elTag: \"th\", elClasses: [\n 'fc-timegrid-axis',\n 'fc-scrollgrid-shrink',\n ], elAttrs: {\n 'aria-hidden': true,\n }, date: range.start, defaultFormat: DEFAULT_WEEK_NUM_FORMAT }, (InnerContent) => (createElement(\"div\", { className: [\n 'fc-timegrid-axis-frame',\n 'fc-scrollgrid-shrink-frame',\n 'fc-timegrid-axis-frame-liquid',\n ].join(' '), style: { height: frameHeight } },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-timegrid-axis-cushion',\n 'fc-scrollgrid-shrink-cushion',\n 'fc-scrollgrid-sync-inner',\n ], elAttrs: navLinkAttrs })))));\n }\n return (createElement(\"th\", { \"aria-hidden\": true, className: \"fc-timegrid-axis\" },\n createElement(\"div\", { className: \"fc-timegrid-axis-frame\", style: { height: frameHeight } })));\n };\n /* Table Component Render Methods\n ------------------------------------------------------------------------------------------------------------------*/\n // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n // but DayGrid still needs to have classNames on inner elements in order to measure.\n this.renderTableRowAxis = (rowHeight) => {\n let { options, viewApi } = this.context;\n let renderProps = {\n text: options.allDayText,\n view: viewApi,\n };\n return (\n // TODO: make reusable hook. used in list view too\n createElement(ContentContainer, { elTag: \"td\", elClasses: [\n 'fc-timegrid-axis',\n 'fc-scrollgrid-shrink',\n ], elAttrs: {\n 'aria-hidden': true,\n }, renderProps: renderProps, generatorName: \"allDayContent\", customGenerator: options.allDayContent, defaultGenerator: renderAllDayInner, classNameGenerator: options.allDayClassNames, didMount: options.allDayDidMount, willUnmount: options.allDayWillUnmount }, (InnerContent) => (createElement(\"div\", { className: [\n 'fc-timegrid-axis-frame',\n 'fc-scrollgrid-shrink-frame',\n rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : '',\n ].join(' '), style: { height: rowHeight } },\n createElement(InnerContent, { elTag: \"span\", elClasses: [\n 'fc-timegrid-axis-cushion',\n 'fc-scrollgrid-shrink-cushion',\n 'fc-scrollgrid-sync-inner',\n ] })))));\n };\n this.handleSlatCoords = (slatCoords) => {\n this.setState({ slatCoords });\n };\n }\n // rendering\n // ----------------------------------------------------------------------------------------------------\n renderSimpleLayout(headerRowContent, allDayContent, timeContent) {\n let { context, props } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n chunk: { content: allDayContent },\n });\n sections.push({\n type: 'body',\n key: 'all-day-divider',\n outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n createElement(\"td\", { className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunk: {\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n });\n return (createElement(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [{ width: 'shrink' }], sections: sections })));\n }\n renderHScrollLayout(headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { context, props } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: (arg) => (createElement(\"tr\", { role: \"presentation\" }, this.renderHeadAxis('day', arg.rowSyncHeights[0]))),\n },\n {\n key: 'cols',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n ],\n });\n }\n if (allDayContent) {\n sections.push({\n type: 'body',\n key: 'all-day',\n syncRowHeights: true,\n chunks: [\n {\n key: 'axis',\n rowContent: (contentArg) => (createElement(\"tr\", { role: \"presentation\" }, this.renderTableRowAxis(contentArg.rowSyncHeights[0]))),\n },\n {\n key: 'cols',\n content: allDayContent,\n },\n ],\n });\n sections.push({\n key: 'all-day-divider',\n type: 'body',\n outerContent: ( // TODO: rename to cellContent so don't need to define <tr>?\n createElement(\"tr\", { role: \"presentation\", className: \"fc-scrollgrid-section\" },\n createElement(\"td\", { colSpan: 2, className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded') }))),\n });\n }\n let isNowIndicator = context.options.nowIndicator;\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n expandRows: Boolean(context.options.expandRows),\n chunks: [\n {\n key: 'axis',\n content: (arg) => (\n // TODO: make this now-indicator arrow more DRY with TimeColsContent\n createElement(\"div\", { className: \"fc-timegrid-axis-chunk\" },\n createElement(\"table\", { \"aria-hidden\": true, style: { height: arg.expandRows ? arg.clientHeight : '' } },\n arg.tableColGroupNode,\n createElement(\"tbody\", null,\n createElement(TimeBodyAxis, { slatMetas: slatMetas }))),\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" },\n createElement(NowTimer, { unit: isNowIndicator ? 'minute' : 'day' /* hacky */ }, (nowDate) => {\n let nowIndicatorTop = isNowIndicator &&\n slatCoords &&\n slatCoords.safeComputeTop(nowDate); // might return void\n if (typeof nowIndicatorTop === 'number') {\n return (createElement(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: nowDate }));\n }\n return null;\n })))),\n },\n {\n key: 'cols',\n scrollerElRef: this.scrollerElRef,\n content: timeContent,\n },\n ],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n key: 'footer',\n type: 'footer',\n isSticky: true,\n chunks: [\n {\n key: 'axis',\n content: renderScrollShim,\n },\n {\n key: 'cols',\n content: renderScrollShim,\n },\n ],\n });\n }\n return (createElement(ViewContainer, { elRef: this.rootElRef, elClasses: ['fc-timegrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: false, colGroups: [\n { width: 'shrink', cols: [{ width: 'shrink' }] },\n { cols: [{ span: colCnt, minWidth: dayMinWidth }] },\n ], sections: sections })));\n }\n /* Dimensions\n ------------------------------------------------------------------------------------------------------------------*/\n getAllDayMaxEventProps() {\n let { dayMaxEvents, dayMaxEventRows } = this.context.options;\n if (dayMaxEvents === true || dayMaxEventRows === true) { // is auto?\n dayMaxEvents = undefined;\n dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS; // make sure \"auto\" goes to a real number\n }\n return { dayMaxEvents, dayMaxEventRows };\n }\n}\nfunction renderAllDayInner(renderProps) {\n return renderProps.text;\n}\n\nclass TimeColsSlatsCoords {\n constructor(positions, dateProfile, slotDuration) {\n this.positions = positions;\n this.dateProfile = dateProfile;\n this.slotDuration = slotDuration;\n }\n safeComputeTop(date) {\n let { dateProfile } = this;\n if (rangeContainsMarker(dateProfile.currentRange, date)) {\n let startOfDayDate = startOfDay(date);\n let timeMs = date.valueOf() - startOfDayDate.valueOf();\n if (timeMs >= asRoughMs(dateProfile.slotMinTime) &&\n timeMs < asRoughMs(dateProfile.slotMaxTime)) {\n return this.computeTimeTop(createDuration(timeMs));\n }\n }\n return null;\n }\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n computeDateTop(when, startOfDayDate) {\n if (!startOfDayDate) {\n startOfDayDate = startOfDay(when);\n }\n return this.computeTimeTop(createDuration(when.valueOf() - startOfDayDate.valueOf()));\n }\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n // Eventually allow computation with arbirary slat dates.\n computeTimeTop(duration) {\n let { positions, dateProfile } = this;\n let len = positions.els.length;\n // floating-point value of # of slots covered\n let slatCoverage = (duration.milliseconds - asRoughMs(dateProfile.slotMinTime)) / asRoughMs(this.slotDuration);\n let slatIndex;\n let slatRemainder;\n // compute a floating-point number for how many slats should be progressed through.\n // from 0 to number of slats (inclusive)\n // constrained because slotMinTime/slotMaxTime might be customized.\n slatCoverage = Math.max(0, slatCoverage);\n slatCoverage = Math.min(len, slatCoverage);\n // an integer index of the furthest whole slat\n // from 0 to number slats (*exclusive*, so len-1)\n slatIndex = Math.floor(slatCoverage);\n slatIndex = Math.min(slatIndex, len - 1);\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n // could be 1.0 if slatCoverage is covering *all* the slots\n slatRemainder = slatCoverage - slatIndex;\n return positions.tops[slatIndex] +\n positions.getHeight(slatIndex) * slatRemainder;\n }\n}\n\nclass TimeColsSlatsBody extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { slatElRefs } = props;\n return (createElement(\"tbody\", null, props.slatMetas.map((slatMeta, i) => {\n let renderProps = {\n time: slatMeta.time,\n date: context.dateEnv.toDate(slatMeta.date),\n view: context.viewApi,\n };\n return (createElement(\"tr\", { key: slatMeta.key, ref: slatElRefs.createRef(slatMeta.key) },\n props.axis && (createElement(TimeColsAxisCell, Object.assign({}, slatMeta))),\n createElement(ContentContainer, { elTag: \"td\", elClasses: [\n 'fc-timegrid-slot',\n 'fc-timegrid-slot-lane',\n !slatMeta.isLabeled && 'fc-timegrid-slot-minor',\n ], elAttrs: {\n 'data-time': slatMeta.isoTimeStr,\n }, renderProps: renderProps, generatorName: \"slotLaneContent\", customGenerator: options.slotLaneContent, classNameGenerator: options.slotLaneClassNames, didMount: options.slotLaneDidMount, willUnmount: options.slotLaneWillUnmount })));\n })));\n }\n}\n\n/*\nfor the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n*/\nclass TimeColsSlats extends BaseComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.slatElRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n return (createElement(\"div\", { ref: this.rootElRef, className: \"fc-timegrid-slots\" },\n createElement(\"table\", { \"aria-hidden\": true, className: context.theme.getClass('table'), style: {\n minWidth: props.tableMinWidth,\n width: props.clientWidth,\n height: props.minHeight,\n } },\n props.tableColGroupNode /* relies on there only being a single <col> for the axis */,\n createElement(TimeColsSlatsBody, { slatElRefs: this.slatElRefs, axis: props.axis, slatMetas: props.slatMetas }))));\n }\n componentDidMount() {\n this.updateSizing();\n }\n componentDidUpdate() {\n this.updateSizing();\n }\n componentWillUnmount() {\n if (this.props.onCoords) {\n this.props.onCoords(null);\n }\n }\n updateSizing() {\n let { context, props } = this;\n if (props.onCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n let rootEl = this.rootElRef.current;\n if (rootEl.offsetHeight) { // not hidden by css\n props.onCoords(new TimeColsSlatsCoords(new PositionCache(this.rootElRef.current, collectSlatEls(this.slatElRefs.currentMap, props.slatMetas), false, true), this.props.dateProfile, context.options.slotDuration));\n }\n }\n }\n}\nfunction collectSlatEls(elMap, slatMetas) {\n return slatMetas.map((slatMeta) => elMap[slatMeta.key]);\n}\n\nfunction splitSegsByCol(segs, colCnt) {\n let segsByCol = [];\n let i;\n for (i = 0; i < colCnt; i += 1) {\n segsByCol.push([]);\n }\n if (segs) {\n for (i = 0; i < segs.length; i += 1) {\n segsByCol[segs[i].col].push(segs[i]);\n }\n }\n return segsByCol;\n}\nfunction splitInteractionByCol(ui, colCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < colCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < colCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.col].segs.push(seg);\n }\n }\n return byRow;\n}\n\nclass TimeColMoreLink extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(MoreLinkContainer, { elClasses: ['fc-timegrid-more-link'], elStyle: {\n top: props.top,\n bottom: props.bottom,\n }, allDayDate: null, moreCnt: props.hiddenSegs.length, allSegs: props.hiddenSegs, hiddenSegs: props.hiddenSegs, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, todayRange: props.todayRange, popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props), defaultGenerator: renderMoreLinkInner, forceTimed: true }, (InnerContent) => (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky'] }))));\n }\n}\nfunction renderMoreLinkInner(props) {\n return props.shortText;\n}\n\n// segInputs assumed sorted\nfunction buildPositioning(segInputs, strictOrder, maxStackCnt) {\n let hierarchy = new SegHierarchy();\n if (strictOrder != null) {\n hierarchy.strictOrder = strictOrder;\n }\n if (maxStackCnt != null) {\n hierarchy.maxStackCnt = maxStackCnt;\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let hiddenGroups = groupIntersectingEntries(hiddenEntries);\n let web = buildWeb(hierarchy);\n web = stretchWeb(web, 1); // all levelCoords/thickness will have 0.0-1.0\n let segRects = webToRects(web);\n return { segRects, hiddenGroups };\n}\nfunction buildWeb(hierarchy) {\n const { entriesByLevel } = hierarchy;\n const buildNode = cacheable((level, lateral) => level + ':' + lateral, (level, lateral) => {\n let siblingRange = findNextLevelSegs(hierarchy, level, lateral);\n let nextLevelRes = buildNodes(siblingRange, buildNode);\n let entry = entriesByLevel[level][lateral];\n return [\n Object.assign(Object.assign({}, entry), { nextLevelNodes: nextLevelRes[0] }),\n entry.thickness + nextLevelRes[1], // the pressure builds\n ];\n });\n return buildNodes(entriesByLevel.length\n ? { level: 0, lateralStart: 0, lateralEnd: entriesByLevel[0].length }\n : null, buildNode)[0];\n}\nfunction buildNodes(siblingRange, buildNode) {\n if (!siblingRange) {\n return [[], 0];\n }\n let { level, lateralStart, lateralEnd } = siblingRange;\n let lateral = lateralStart;\n let pairs = [];\n while (lateral < lateralEnd) {\n pairs.push(buildNode(level, lateral));\n lateral += 1;\n }\n pairs.sort(cmpDescPressures);\n return [\n pairs.map(extractNode),\n pairs[0][1], // first item's pressure\n ];\n}\nfunction cmpDescPressures(a, b) {\n return b[1] - a[1];\n}\nfunction extractNode(a) {\n return a[0];\n}\nfunction findNextLevelSegs(hierarchy, subjectLevel, subjectLateral) {\n let { levelCoords, entriesByLevel } = hierarchy;\n let subjectEntry = entriesByLevel[subjectLevel][subjectLateral];\n let afterSubject = levelCoords[subjectLevel] + subjectEntry.thickness;\n let levelCnt = levelCoords.length;\n let level = subjectLevel;\n // skip past levels that are too high up\n for (; level < levelCnt && levelCoords[level] < afterSubject; level += 1)\n ; // do nothing\n for (; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level];\n let entry;\n let searchIndex = binarySearch(entries, subjectEntry.span.start, getEntrySpanEnd);\n let lateralStart = searchIndex[0] + searchIndex[1]; // if exact match (which doesn't collide), go to next one\n let lateralEnd = lateralStart;\n while ( // loop through entries that horizontally intersect\n (entry = entries[lateralEnd]) && // but not past the whole seg list\n entry.span.start < subjectEntry.span.end) {\n lateralEnd += 1;\n }\n if (lateralStart < lateralEnd) {\n return { level, lateralStart, lateralEnd };\n }\n }\n return null;\n}\nfunction stretchWeb(topLevelNodes, totalThickness) {\n const stretchNode = cacheable((node, startCoord, prevThickness) => buildEntryKey(node), (node, startCoord, prevThickness) => {\n let { nextLevelNodes, thickness } = node;\n let allThickness = thickness + prevThickness;\n let thicknessFraction = thickness / allThickness;\n let endCoord;\n let newChildren = [];\n if (!nextLevelNodes.length) {\n endCoord = totalThickness;\n }\n else {\n for (let childNode of nextLevelNodes) {\n if (endCoord === undefined) {\n let res = stretchNode(childNode, startCoord, allThickness);\n endCoord = res[0];\n newChildren.push(res[1]);\n }\n else {\n let res = stretchNode(childNode, endCoord, 0);\n newChildren.push(res[1]);\n }\n }\n }\n let newThickness = (endCoord - startCoord) * thicknessFraction;\n return [endCoord - newThickness, Object.assign(Object.assign({}, node), { thickness: newThickness, nextLevelNodes: newChildren })];\n });\n return topLevelNodes.map((node) => stretchNode(node, 0, 0)[1]);\n}\n// not sorted in any particular order\nfunction webToRects(topLevelNodes) {\n let rects = [];\n const processNode = cacheable((node, levelCoord, stackDepth) => buildEntryKey(node), (node, levelCoord, stackDepth) => {\n let rect = Object.assign(Object.assign({}, node), { levelCoord,\n stackDepth, stackForward: 0 });\n rects.push(rect);\n return (rect.stackForward = processNodes(node.nextLevelNodes, levelCoord + node.thickness, stackDepth + 1) + 1);\n });\n function processNodes(nodes, levelCoord, stackDepth) {\n let stackForward = 0;\n for (let node of nodes) {\n stackForward = Math.max(processNode(node, levelCoord, stackDepth), stackForward);\n }\n return stackForward;\n }\n processNodes(topLevelNodes, 0, 0);\n return rects; // TODO: sort rects by levelCoord to be consistent with toRects?\n}\n// TODO: move to general util\nfunction cacheable(keyFunc, workFunc) {\n const cache = {};\n return (...args) => {\n let key = keyFunc(...args);\n return (key in cache)\n ? cache[key]\n : (cache[key] = workFunc(...args));\n };\n}\n\nfunction computeSegVCoords(segs, colDate, slatCoords = null, eventMinHeight = 0) {\n let vcoords = [];\n if (slatCoords) {\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let spanStart = slatCoords.computeDateTop(seg.start, colDate);\n let spanEnd = Math.max(spanStart + (eventMinHeight || 0), // :(\n slatCoords.computeDateTop(seg.end, colDate));\n vcoords.push({\n start: Math.round(spanStart),\n end: Math.round(spanEnd), //\n });\n }\n }\n return vcoords;\n}\nfunction computeFgSegPlacements(segs, segVCoords, // might not have for every seg\neventOrderStrict, eventMaxStack) {\n let segInputs = [];\n let dumbSegs = []; // segs without coords\n for (let i = 0; i < segs.length; i += 1) {\n let vcoords = segVCoords[i];\n if (vcoords) {\n segInputs.push({\n index: i,\n thickness: 1,\n span: vcoords,\n });\n }\n else {\n dumbSegs.push(segs[i]);\n }\n }\n let { segRects, hiddenGroups } = buildPositioning(segInputs, eventOrderStrict, eventMaxStack);\n let segPlacements = [];\n for (let segRect of segRects) {\n segPlacements.push({\n seg: segs[segRect.index],\n rect: segRect,\n });\n }\n for (let dumbSeg of dumbSegs) {\n segPlacements.push({ seg: dumbSeg, rect: null });\n }\n return { segPlacements, hiddenGroups };\n}\n\nconst DEFAULT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n meridiem: false,\n});\nclass TimeColEvent extends BaseComponent {\n render() {\n return (createElement(StandardEvent, Object.assign({}, this.props, { elClasses: [\n 'fc-timegrid-event',\n 'fc-v-event',\n this.props.isShort && 'fc-timegrid-event-short',\n ], defaultTimeFormat: DEFAULT_TIME_FORMAT })));\n }\n}\n\nclass TimeCol extends BaseComponent {\n constructor() {\n super(...arguments);\n this.sortEventSegs = memoize(sortEventSegs);\n }\n // TODO: memoize event-placement?\n render() {\n let { props, context } = this;\n let { options } = context;\n let isSelectMirror = options.selectMirror;\n let mirrorSegs = // yuck\n (props.eventDrag && props.eventDrag.segs) ||\n (props.eventResize && props.eventResize.segs) ||\n (isSelectMirror && props.dateSelectionSegs) ||\n [];\n let interactionAffectedInstances = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n let sortedFgSegs = this.sortEventSegs(props.fgEventSegs, options.eventOrder);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: props.elRef, elClasses: [\n 'fc-timegrid-col',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign({ role: 'gridcell' }, props.extraDataAttrs), date: props.date, dateProfile: props.dateProfile, todayRange: props.todayRange, extraRenderProps: props.extraRenderProps }, (InnerContent) => (createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n createElement(\"div\", { className: \"fc-timegrid-col-bg\" },\n this.renderFillSegs(props.businessHourSegs, 'non-business'),\n this.renderFillSegs(props.bgEventSegs, 'bg-event'),\n this.renderFillSegs(props.dateSelectionSegs, 'highlight')),\n createElement(\"div\", { className: \"fc-timegrid-col-events\" }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)),\n createElement(\"div\", { className: \"fc-timegrid-col-events\" }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror), 'mirror')),\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, this.renderNowIndicator(props.nowIndicatorSegs)),\n hasCustomDayCellContent(options) && (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-timegrid-col-misc'] }))))));\n }\n renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n let { props } = this;\n if (props.forPrint) {\n return renderPlainFgSegs(sortedFgSegs, props);\n }\n return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey);\n }\n renderPositionedFgSegs(segs, // if not mirror, needs to be sorted\n segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n let { eventMaxStack, eventShortHeight, eventOrderStrict, eventMinHeight } = this.context.options;\n let { date, slatCoords, eventSelection, todayRange, nowDate } = this.props;\n let isMirror = isDragging || isResizing || isDateSelecting;\n let segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight);\n let { segPlacements, hiddenGroups } = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack);\n return (createElement(Fragment, null,\n this.renderHiddenGroups(hiddenGroups, segs),\n segPlacements.map((segPlacement) => {\n let { seg, rect } = segPlacement;\n let instanceId = seg.eventRange.instance.instanceId;\n let isVisible = isMirror || Boolean(!segIsInvisible[instanceId] && rect);\n let vStyle = computeSegVStyle(rect && rect.span);\n let hStyle = (!isMirror && rect) ? this.computeSegHStyle(rect) : { left: 0, right: 0 };\n let isInset = Boolean(rect) && rect.stackForward > 0;\n let isShort = Boolean(rect) && (rect.span.end - rect.span.start) < eventShortHeight; // look at other places for this problem\n return (createElement(\"div\", { className: 'fc-timegrid-event-harness' +\n (isInset ? ' fc-timegrid-event-harness-inset' : ''), key: forcedKey || instanceId, style: Object.assign(Object.assign({ visibility: isVisible ? '' : 'hidden' }, vStyle), hStyle) },\n createElement(TimeColEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, isShort: isShort }, getSegMeta(seg, todayRange, nowDate)))));\n })));\n }\n // will already have eventMinHeight applied because segInputs already had it\n renderHiddenGroups(hiddenGroups, segs) {\n let { extraDateSpan, dateProfile, todayRange, nowDate, eventSelection, eventDrag, eventResize } = this.props;\n return (createElement(Fragment, null, hiddenGroups.map((hiddenGroup) => {\n let positionCss = computeSegVStyle(hiddenGroup.span);\n let hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs);\n return (createElement(TimeColMoreLink, { key: buildIsoString(computeEarliestSegStart(hiddenSegs)), hiddenSegs: hiddenSegs, top: positionCss.top, bottom: positionCss.bottom, extraDateSpan: extraDateSpan, dateProfile: dateProfile, todayRange: todayRange, nowDate: nowDate, eventSelection: eventSelection, eventDrag: eventDrag, eventResize: eventResize }));\n })));\n }\n renderFillSegs(segs, fillType) {\n let { props, context } = this;\n let segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight); // don't assume all populated\n let children = segVCoords.map((vcoords, i) => {\n let seg = segs[i];\n return (createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-timegrid-bg-harness\", style: computeSegVStyle(vcoords) }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, props.todayRange, props.nowDate))) :\n renderFill(fillType)));\n });\n return createElement(Fragment, null, children);\n }\n renderNowIndicator(segs) {\n let { slatCoords, date } = this.props;\n if (!slatCoords) {\n return null;\n }\n return segs.map((seg, i) => (createElement(NowIndicatorContainer\n // key doesn't matter. will only ever be one\n , { \n // key doesn't matter. will only ever be one\n key: i, elClasses: ['fc-timegrid-now-indicator-line'], elStyle: {\n top: slatCoords.computeDateTop(seg.start, date),\n }, isAxis: false, date: date })));\n }\n computeSegHStyle(segHCoords) {\n let { isRtl, options } = this.context;\n let shouldOverlap = options.slotEventOverlap;\n let nearCoord = segHCoords.levelCoord; // the left side if LTR. the right side if RTL. floating-point\n let farCoord = segHCoords.levelCoord + segHCoords.thickness; // the right side if LTR. the left side if RTL. floating-point\n let left; // amount of space from left edge, a fraction of the total width\n let right; // amount of space from right edge, a fraction of the total width\n if (shouldOverlap) {\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\n farCoord = Math.min(1, nearCoord + (farCoord - nearCoord) * 2);\n }\n if (isRtl) {\n left = 1 - farCoord;\n right = nearCoord;\n }\n else {\n left = nearCoord;\n right = 1 - farCoord;\n }\n let props = {\n zIndex: segHCoords.stackDepth + 1,\n left: left * 100 + '%',\n right: right * 100 + '%',\n };\n if (shouldOverlap && !segHCoords.stackForward) {\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\n props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n }\n return props;\n }\n}\nfunction renderPlainFgSegs(sortedFgSegs, { todayRange, nowDate, eventSelection, eventDrag, eventResize }) {\n let hiddenInstances = (eventDrag ? eventDrag.affectedInstances : null) ||\n (eventResize ? eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, sortedFgSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { key: instanceId, style: { visibility: hiddenInstances[instanceId] ? 'hidden' : '' } },\n createElement(TimeColEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === eventSelection, isShort: false }, getSegMeta(seg, todayRange, nowDate)))));\n })));\n}\nfunction computeSegVStyle(segVCoords) {\n if (!segVCoords) {\n return { top: '', bottom: '' };\n }\n return {\n top: segVCoords.start,\n bottom: -segVCoords.end,\n };\n}\nfunction compileSegsFromEntries(segEntries, allSegs) {\n return segEntries.map((segEntry) => allSegs[segEntry.index]);\n}\n\nclass TimeColsContent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.splitFgEventSegs = memoize(splitSegsByCol);\n this.splitBgEventSegs = memoize(splitSegsByCol);\n this.splitBusinessHourSegs = memoize(splitSegsByCol);\n this.splitNowIndicatorSegs = memoize(splitSegsByCol);\n this.splitDateSelectionSegs = memoize(splitSegsByCol);\n this.splitEventDrag = memoize(splitInteractionByCol);\n this.splitEventResize = memoize(splitInteractionByCol);\n this.rootElRef = createRef();\n this.cellElRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let nowIndicatorTop = context.options.nowIndicator &&\n props.slatCoords &&\n props.slatCoords.safeComputeTop(props.nowDate); // might return void\n let colCnt = props.cells.length;\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt);\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt);\n let nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);\n return (createElement(\"div\", { className: \"fc-timegrid-cols\", ref: this.rootElRef },\n createElement(\"table\", { role: \"presentation\", style: {\n minWidth: props.tableMinWidth,\n width: props.clientWidth,\n } },\n props.tableColGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(\"tr\", { role: \"row\" },\n props.axis && (createElement(\"td\", { \"aria-hidden\": true, className: \"fc-timegrid-col fc-timegrid-axis\" },\n createElement(\"div\", { className: \"fc-timegrid-col-frame\" },\n createElement(\"div\", { className: \"fc-timegrid-now-indicator-container\" }, typeof nowIndicatorTop === 'number' && (createElement(NowIndicatorContainer, { elClasses: ['fc-timegrid-now-indicator-arrow'], elStyle: { top: nowIndicatorTop }, isAxis: true, date: props.nowDate })))))),\n props.cells.map((cell, i) => (createElement(TimeCol, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), dateProfile: props.dateProfile, date: cell.date, nowDate: props.nowDate, todayRange: props.todayRange, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, fgEventSegs: fgEventSegsByRow[i], bgEventSegs: bgEventSegsByRow[i], businessHourSegs: businessHourSegsByRow[i], nowIndicatorSegs: nowIndicatorSegsByRow[i], dateSelectionSegs: dateSelectionSegsByRow[i], eventDrag: eventDragByRow[i], eventResize: eventResizeByRow[i], slatCoords: props.slatCoords, eventSelection: props.eventSelection, forPrint: props.forPrint }))))))));\n }\n componentDidMount() {\n this.updateCoords();\n }\n componentDidUpdate() {\n this.updateCoords();\n }\n updateCoords() {\n let { props } = this;\n if (props.onColCoords &&\n props.clientWidth !== null // means sizing has stabilized\n ) {\n props.onColCoords(new PositionCache(this.rootElRef.current, collectCellEls(this.cellElRefs.currentMap, props.cells), true, // horizontal\n false));\n }\n }\n}\nfunction collectCellEls(elMap, cells) {\n return cells.map((cell) => elMap[cell.key]);\n}\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\nclass TimeCols extends DateComponent {\n constructor() {\n super(...arguments);\n this.processSlotOptions = memoize(processSlotOptions);\n this.state = {\n slatCoords: null,\n };\n this.handleRootEl = (el) => {\n if (el) {\n this.context.registerInteractiveComponent(this, {\n el,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n else {\n this.context.unregisterInteractiveComponent(this);\n }\n };\n this.handleScrollRequest = (request) => {\n let { onScrollTopRequest } = this.props;\n let { slatCoords } = this.state;\n if (onScrollTopRequest && slatCoords) {\n if (request.time) {\n let top = slatCoords.computeTimeTop(request.time);\n top = Math.ceil(top); // zoom can give weird floating-point values. rather scroll a little bit further\n if (top) {\n top += 1; // to overcome top border that slots beyond the first have. looks better\n }\n onScrollTopRequest(top);\n }\n return true;\n }\n return false;\n };\n this.handleColCoords = (colCoords) => {\n this.colCoords = colCoords;\n };\n this.handleSlatCoords = (slatCoords) => {\n this.setState({ slatCoords });\n if (this.props.onSlatCoords) {\n this.props.onSlatCoords(slatCoords);\n }\n };\n }\n render() {\n let { props, state } = this;\n return (createElement(\"div\", { className: \"fc-timegrid-body\", ref: this.handleRootEl, style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(TimeColsSlats, { axis: props.axis, dateProfile: props.dateProfile, slatMetas: props.slatMetas, clientWidth: props.clientWidth, minHeight: props.expandRows ? props.clientHeight : '', tableMinWidth: props.tableMinWidth, tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */, onCoords: this.handleSlatCoords }),\n createElement(TimeColsContent, { cells: props.cells, axis: props.axis, dateProfile: props.dateProfile, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange, nowDate: props.nowDate, nowIndicatorSegs: props.nowIndicatorSegs, clientWidth: props.clientWidth, tableMinWidth: props.tableMinWidth, tableColGroupNode: props.tableColGroupNode, slatCoords: state.slatCoords, onColCoords: this.handleColCoords, forPrint: props.forPrint })));\n }\n componentDidMount() {\n this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);\n }\n componentDidUpdate(prevProps) {\n this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile);\n }\n componentWillUnmount() {\n this.scrollResponder.detach();\n }\n queryHit(positionLeft, positionTop) {\n let { dateEnv, options } = this.context;\n let { colCoords } = this;\n let { dateProfile } = this.props;\n let { slatCoords } = this.state;\n let { snapDuration, snapsPerSlot } = this.processSlotOptions(this.props.slotDuration, options.snapDuration);\n let colIndex = colCoords.leftToIndex(positionLeft);\n let slatIndex = slatCoords.positions.topToIndex(positionTop);\n if (colIndex != null && slatIndex != null) {\n let cell = this.props.cells[colIndex];\n let slatTop = slatCoords.positions.tops[slatIndex];\n let slatHeight = slatCoords.positions.getHeight(slatIndex);\n let partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n let localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n let snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n let dayDate = this.props.cells[colIndex].date;\n let time = addDurations(dateProfile.slotMinTime, multiplyDuration(snapDuration, snapIndex));\n let start = dateEnv.add(dayDate, time);\n let end = dateEnv.add(start, snapDuration);\n return {\n dateProfile,\n dateSpan: Object.assign({ range: { start, end }, allDay: false }, cell.extraDateSpan),\n dayEl: colCoords.els[colIndex],\n rect: {\n left: colCoords.lefts[colIndex],\n right: colCoords.rights[colIndex],\n top: slatTop,\n bottom: slatTop + slatHeight,\n },\n layer: 0,\n };\n }\n return null;\n }\n}\nfunction processSlotOptions(slotDuration, snapDurationOverride) {\n let snapDuration = snapDurationOverride || slotDuration;\n let snapsPerSlot = wholeDivideDurations(slotDuration, snapDuration);\n if (snapsPerSlot === null) {\n snapDuration = slotDuration;\n snapsPerSlot = 1;\n // TODO: say warning?\n }\n return { snapDuration, snapsPerSlot };\n}\n\nclass DayTimeColsSlicer extends Slicer {\n sliceRange(range, dayRanges) {\n let segs = [];\n for (let col = 0; col < dayRanges.length; col += 1) {\n let segRange = intersectRanges(range, dayRanges[col]);\n if (segRange) {\n segs.push({\n start: segRange.start,\n end: segRange.end,\n isStart: segRange.start.valueOf() === range.start.valueOf(),\n isEnd: segRange.end.valueOf() === range.end.valueOf(),\n col,\n });\n }\n }\n return segs;\n }\n}\n\nclass DayTimeCols extends DateComponent {\n constructor() {\n super(...arguments);\n this.buildDayRanges = memoize(buildDayRanges);\n this.slicer = new DayTimeColsSlicer();\n this.timeColsRef = createRef();\n }\n render() {\n let { props, context } = this;\n let { dateProfile, dayTableModel } = props;\n let { nowIndicator, nextDayThreshold } = context.options;\n let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);\n // give it the first row of cells\n // TODO: would move this further down hierarchy, but sliceNowDate needs it\n return (createElement(NowTimer, { unit: nowIndicator ? 'minute' : 'day' }, (nowDate, todayRange) => (createElement(TimeCols, Object.assign({ ref: this.timeColsRef }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), { forPrint: props.forPrint, axis: props.axis, dateProfile: dateProfile, slatMetas: props.slatMetas, slotDuration: props.slotDuration, cells: dayTableModel.cells[0], tableColGroupNode: props.tableColGroupNode, tableMinWidth: props.tableMinWidth, clientWidth: props.clientWidth, clientHeight: props.clientHeight, expandRows: props.expandRows, nowDate: nowDate, nowIndicatorSegs: nowIndicator && this.slicer.sliceNowDate(nowDate, dateProfile, nextDayThreshold, context, dayRanges), todayRange: todayRange, onScrollTopRequest: props.onScrollTopRequest, onSlatCoords: props.onSlatCoords })))));\n }\n}\nfunction buildDayRanges(dayTableModel, dateProfile, dateEnv) {\n let ranges = [];\n for (let date of dayTableModel.headerDates) {\n ranges.push({\n start: dateEnv.add(date, dateProfile.slotMinTime),\n end: dateEnv.add(date, dateProfile.slotMaxTime),\n });\n }\n return ranges;\n}\n\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nconst STOCK_SUB_DURATIONS = [\n { hours: 1 },\n { minutes: 30 },\n { minutes: 15 },\n { seconds: 30 },\n { seconds: 15 },\n];\nfunction buildSlatMetas(slotMinTime, slotMaxTime, explicitLabelInterval, slotDuration, dateEnv) {\n let dayStart = new Date(0);\n let slatTime = slotMinTime;\n let slatIterator = createDuration(0);\n let labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration);\n let metas = [];\n while (asRoughMs(slatTime) < asRoughMs(slotMaxTime)) {\n let date = dateEnv.add(dayStart, slatTime);\n let isLabeled = wholeDivideDurations(slatIterator, labelInterval) !== null;\n metas.push({\n date,\n time: slatTime,\n key: date.toISOString(),\n isoTimeStr: formatIsoTimeString(date),\n isLabeled,\n });\n slatTime = addDurations(slatTime, slotDuration);\n slatIterator = addDurations(slatIterator, slotDuration);\n }\n return metas;\n}\n// Computes an automatic value for slotLabelInterval\nfunction computeLabelInterval(slotDuration) {\n let i;\n let labelInterval;\n let slotsPerLabel;\n // find the smallest stock label interval that results in more than one slots-per-label\n for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n labelInterval = createDuration(STOCK_SUB_DURATIONS[i]);\n slotsPerLabel = wholeDivideDurations(labelInterval, slotDuration);\n if (slotsPerLabel !== null && slotsPerLabel > 1) {\n return labelInterval;\n }\n }\n return slotDuration; // fall back\n}\n\nclass DayTimeColsView extends TimeColsView {\n constructor() {\n super(...arguments);\n this.buildTimeColsModel = memoize(buildTimeColsModel);\n this.buildSlatMetas = memoize(buildSlatMetas);\n }\n render() {\n let { options, dateEnv, dateProfileGenerator } = this.context;\n let { props } = this;\n let { dateProfile } = props;\n let dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator);\n let splitProps = this.allDaySplitter.splitProps(props);\n let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);\n let { dayMinWidth } = options;\n let hasAttachedAxis = !dayMinWidth;\n let hasDetachedAxis = dayMinWidth;\n let headerContent = options.dayHeaders && (createElement(DayHeader, { dates: dayTableModel.headerDates, dateProfile: dateProfile, datesRepDistinctDays: true, renderIntro: hasAttachedAxis ? this.renderHeadAxis : null }));\n let allDayContent = (options.allDaySlot !== false) && ((contentArg) => (createElement(DayTable, Object.assign({}, splitProps.allDay, { dateProfile: dateProfile, dayTableModel: dayTableModel, nextDayThreshold: options.nextDayThreshold, tableMinWidth: contentArg.tableMinWidth, colGroupNode: contentArg.tableColGroupNode, renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null, showWeekNumbers: false, expandRows: false, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }, this.getAllDayMaxEventProps()))));\n let timeGridContent = (contentArg) => (createElement(DayTimeCols, Object.assign({}, splitProps.timed, { dayTableModel: dayTableModel, dateProfile: dateProfile, axis: hasAttachedAxis, slotDuration: options.slotDuration, slatMetas: slatMetas, forPrint: props.forPrint, tableColGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, onSlatCoords: this.handleSlatCoords, expandRows: contentArg.expandRows, onScrollTopRequest: this.handleScrollTopRequest })));\n return hasDetachedAxis\n ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords)\n : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);\n }\n}\nfunction buildTimeColsModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, false);\n}\n\nvar css_248z = \".fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:\\\"\\\\00a0\\\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:\\\"\\\\00a0-\\\\00a0\\\"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-arrow,.fc .fc-timegrid-now-indicator-line{pointer-events:none}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}\";\ninjectStyles(css_248z);\n\nexport { DayTimeCols, DayTimeColsSlicer, DayTimeColsView, TimeCols, TimeColsSlatsCoords, TimeColsView, buildDayRanges, buildSlatMetas, buildTimeColsModel };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayTimeColsView } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\nimport '@fullcalendar/daygrid/internal.js';\n\nconst OPTION_REFINERS = {\n allDaySlot: Boolean,\n};\n\nvar index = createPlugin({\n name: '@fullcalendar/timegrid',\n initialView: 'timeGridWeek',\n optionRefiners: OPTION_REFINERS,\n views: {\n timeGrid: {\n component: DayTimeColsView,\n usesMinMaxTime: true,\n allDaySlot: true,\n slotDuration: '00:30:00',\n slotEventOverlap: true, // a bad name. confused with overlap/constraint system\n },\n timeGridDay: {\n type: 'timeGrid',\n duration: { days: 1 },\n },\n timeGridWeek: {\n type: 'timeGrid',\n duration: { weeks: 1 },\n },\n },\n});\n\nexport { index as default };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { config, Emitter, elementClosest, applyStyle, whenTransitionDone, removeElement, ScrollController, ElementScrollController, computeInnerRect, WindowScrollController, ElementDragging, preventSelection, preventContextMenu, allowSelection, allowContextMenu, computeRect, getClippingParents, pointInsideRect, constrainPoint, intersectRects, getRectCenter, diffPoints, mapHash, rangeContainsRange, isDateSpansEqual, Interaction, interactionSettingsToStore, isDateSelectionValid, enableCursor, disableCursor, triggerDateSelect, compareNumbers, getElSeg, getRelevantEvents, EventImpl, createEmptyEventStore, applyMutationToEventStore, isInteractionValid, buildEventApis, interactionSettingsStore, startOfDay, diffDates, createDuration, getEventTargetViaRoot, identity, eventTupleToStore, parseDragMeta, elementMatches, refineEventDef, parseEventDef, getDefaultEventEnd, createEventInstance, BASE_OPTION_DEFAULTS } from '@fullcalendar/core/internal.js';\n\nconfig.touchMouseIgnoreWait = 500;\nlet ignoreMouseDepth = 0;\nlet listenerCnt = 0;\nlet isWindowTouchMoveCancelled = false;\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nclass PointerDragging {\n constructor(containerEl) {\n this.subjectEl = null;\n // options that can be directly assigned by caller\n this.selector = ''; // will cause subjectEl in all emitted events to be this element\n this.handleSelector = '';\n this.shouldIgnoreMove = false;\n this.shouldWatchScroll = true; // for simulating pointermove on scroll\n // internal states\n this.isDragging = false;\n this.isTouchDragging = false;\n this.wasTouchScroll = false;\n // Mouse\n // ----------------------------------------------------------------------------------------------------\n this.handleMouseDown = (ev) => {\n if (!this.shouldIgnoreMouse() &&\n isPrimaryMouseButton(ev) &&\n this.tryStart(ev)) {\n let pev = this.createEventFromMouse(ev, true);\n this.emitter.trigger('pointerdown', pev);\n this.initScrollWatch(pev);\n if (!this.shouldIgnoreMove) {\n document.addEventListener('mousemove', this.handleMouseMove);\n }\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n };\n this.handleMouseMove = (ev) => {\n let pev = this.createEventFromMouse(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleMouseUp = (ev) => {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n this.emitter.trigger('pointerup', this.createEventFromMouse(ev));\n this.cleanup(); // call last so that pointerup has access to props\n };\n // Touch\n // ----------------------------------------------------------------------------------------------------\n this.handleTouchStart = (ev) => {};\n // (ev) => {\n // if (this.tryStart(ev)) {\n // this.isTouchDragging = true;\n // let pev = this.createEventFromTouch(ev, true);\n // this.emitter.trigger('pointerdown', pev);\n // this.initScrollWatch(pev);\n // // unlike mouse, need to attach to target, not document\n // // https://stackoverflow.com/a/45760014\n // let targetEl = ev.target;\n // if (!this.shouldIgnoreMove) {\n // targetEl.addEventListener('touchmove', this.handleTouchMove);\n // }\n // targetEl.addEventListener('touchend', this.handleTouchEnd);\n // targetEl.addEventListener('touchcancel', this.handleTouchEnd); // treat it as a touch end\n // // attach a handler to get called when ANY scroll action happens on the page.\n // // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n // // http://stackoverflow.com/a/32954565/96342\n // window.addEventListener('scroll', this.handleTouchScroll, true);\n // }\n // };\n this.handleTouchMove = (ev) => {\n let pev = this.createEventFromTouch(ev);\n this.recordCoords(pev);\n this.emitter.trigger('pointermove', pev);\n };\n this.handleTouchEnd = (ev) => {\n if (this.isDragging) { // done to guard against touchend followed by touchcancel\n let targetEl = ev.target;\n targetEl.removeEventListener('touchmove', this.handleTouchMove);\n targetEl.removeEventListener('touchend', this.handleTouchEnd);\n targetEl.removeEventListener('touchcancel', this.handleTouchEnd);\n window.removeEventListener('scroll', this.handleTouchScroll, true); // useCaptured=true\n this.emitter.trigger('pointerup', this.createEventFromTouch(ev));\n this.cleanup(); // call last so that pointerup has access to props\n this.isTouchDragging = false;\n startIgnoringMouse();\n }\n };\n this.handleTouchScroll = () => {\n this.wasTouchScroll = true;\n };\n this.handleScroll = (ev) => {\n if (!this.shouldIgnoreMove) {\n let pageX = (window.scrollX - this.prevScrollX) + this.prevPageX;\n let pageY = (window.scrollY - this.prevScrollY) + this.prevPageY;\n this.emitter.trigger('pointermove', {\n origEvent: ev,\n isTouch: this.isTouchDragging,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX: pageX - this.origPageX,\n deltaY: pageY - this.origPageY,\n });\n }\n };\n this.containerEl = containerEl;\n this.emitter = new Emitter();\n containerEl.addEventListener('mousedown', this.handleMouseDown);\n containerEl.addEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerCreated();\n }\n destroy() {\n this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n this.containerEl.removeEventListener('touchstart', this.handleTouchStart, { passive: true });\n listenerDestroyed();\n }\n tryStart(ev) {\n let subjectEl = this.querySubjectEl(ev);\n let downEl = ev.target;\n if (subjectEl &&\n (!this.handleSelector || elementClosest(downEl, this.handleSelector))) {\n this.subjectEl = subjectEl;\n this.isDragging = true; // do this first so cancelTouchScroll will work\n this.wasTouchScroll = false;\n return true;\n }\n return false;\n }\n cleanup() {\n isWindowTouchMoveCancelled = false;\n this.isDragging = false;\n this.subjectEl = null;\n // keep wasTouchScroll around for later access\n this.destroyScrollWatch();\n }\n querySubjectEl(ev) {\n if (this.selector) {\n return elementClosest(ev.target, this.selector);\n }\n return this.containerEl;\n }\n shouldIgnoreMouse() {\n return ignoreMouseDepth || this.isTouchDragging;\n }\n // can be called by user of this class, to cancel touch-based scrolling for the current drag\n cancelTouchScroll() {\n if (this.isDragging) {\n isWindowTouchMoveCancelled = true;\n }\n }\n // Scrolling that simulates pointermoves\n // ----------------------------------------------------------------------------------------------------\n initScrollWatch(ev) {\n if (this.shouldWatchScroll) {\n this.recordCoords(ev);\n window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n }\n }\n recordCoords(ev) {\n if (this.shouldWatchScroll) {\n this.prevPageX = ev.pageX;\n this.prevPageY = ev.pageY;\n this.prevScrollX = window.scrollX;\n this.prevScrollY = window.scrollY;\n }\n }\n destroyScrollWatch() {\n if (this.shouldWatchScroll) {\n window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n }\n }\n // Event Normalization\n // ----------------------------------------------------------------------------------------------------\n createEventFromMouse(ev, isFirst) {\n let deltaX = 0;\n let deltaY = 0;\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = ev.pageX;\n this.origPageY = ev.pageY;\n }\n else {\n deltaX = ev.pageX - this.origPageX;\n deltaY = ev.pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: false,\n subjectEl: this.subjectEl,\n pageX: ev.pageX,\n pageY: ev.pageY,\n deltaX,\n deltaY,\n };\n }\n createEventFromTouch(ev, isFirst) {\n let touches = ev.touches;\n let pageX;\n let pageY;\n let deltaX = 0;\n let deltaY = 0;\n // if touch coords available, prefer,\n // because FF would give bad ev.pageX ev.pageY\n if (touches && touches.length) {\n pageX = touches[0].pageX;\n pageY = touches[0].pageY;\n }\n else {\n pageX = ev.pageX;\n pageY = ev.pageY;\n }\n // TODO: repeat code\n if (isFirst) {\n this.origPageX = pageX;\n this.origPageY = pageY;\n }\n else {\n deltaX = pageX - this.origPageX;\n deltaY = pageY - this.origPageY;\n }\n return {\n origEvent: ev,\n isTouch: true,\n subjectEl: this.subjectEl,\n pageX,\n pageY,\n deltaX,\n deltaY,\n };\n }\n}\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev) {\n return ev.button === 0 && !ev.ctrlKey;\n}\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\nfunction startIgnoringMouse() {\n ignoreMouseDepth += 1;\n setTimeout(() => {\n ignoreMouseDepth -= 1;\n }, config.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n listenerCnt += 1;\n if (listenerCnt === 1) {\n window.addEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction listenerDestroyed() {\n listenerCnt -= 1;\n if (!listenerCnt) {\n window.removeEventListener('touchmove', onWindowTouchMove, { passive: false });\n }\n}\nfunction onWindowTouchMove(ev) {\n if (isWindowTouchMoveCancelled) {\n ev.preventDefault();\n }\n}\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nclass ElementMirror {\n constructor() {\n this.isVisible = false; // must be explicitly enabled\n this.sourceEl = null;\n this.mirrorEl = null;\n this.sourceElRect = null; // screen coords relative to viewport\n // options that can be set directly by caller\n this.parentNode = document.body; // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues\n this.zIndex = 9999;\n this.revertDuration = 0;\n }\n start(sourceEl, pageX, pageY) {\n this.sourceEl = sourceEl;\n this.sourceElRect = this.sourceEl.getBoundingClientRect();\n this.origScreenX = pageX - window.scrollX;\n this.origScreenY = pageY - window.scrollY;\n this.deltaX = 0;\n this.deltaY = 0;\n this.updateElPosition();\n }\n handleMove(pageX, pageY) {\n this.deltaX = (pageX - window.scrollX) - this.origScreenX;\n this.deltaY = (pageY - window.scrollY) - this.origScreenY;\n this.updateElPosition();\n }\n // can be called before start\n setIsVisible(bool) {\n if (bool) {\n if (!this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = '';\n }\n this.isVisible = bool; // needs to happen before updateElPosition\n this.updateElPosition(); // because was not updating the position while invisible\n }\n }\n else if (this.isVisible) {\n if (this.mirrorEl) {\n this.mirrorEl.style.display = 'none';\n }\n this.isVisible = bool;\n }\n }\n // always async\n stop(needsRevertAnimation, callback) {\n let done = () => {\n this.cleanup();\n callback();\n };\n if (needsRevertAnimation &&\n this.mirrorEl &&\n this.isVisible &&\n this.revertDuration && // if 0, transition won't work\n (this.deltaX || this.deltaY) // if same coords, transition won't work\n ) {\n this.doRevertAnimation(done, this.revertDuration);\n }\n else {\n setTimeout(done, 0);\n }\n }\n doRevertAnimation(callback, revertDuration) {\n let mirrorEl = this.mirrorEl;\n let finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n mirrorEl.style.transition =\n 'top ' + revertDuration + 'ms,' +\n 'left ' + revertDuration + 'ms';\n applyStyle(mirrorEl, {\n left: finalSourceElRect.left,\n top: finalSourceElRect.top,\n });\n whenTransitionDone(mirrorEl, () => {\n mirrorEl.style.transition = '';\n callback();\n });\n }\n cleanup() {\n if (this.mirrorEl) {\n removeElement(this.mirrorEl);\n this.mirrorEl = null;\n }\n this.sourceEl = null;\n }\n updateElPosition() {\n if (this.sourceEl && this.isVisible) {\n applyStyle(this.getMirrorEl(), {\n left: this.sourceElRect.left + this.deltaX,\n top: this.sourceElRect.top + this.deltaY,\n });\n }\n }\n getMirrorEl() {\n let sourceElRect = this.sourceElRect;\n let mirrorEl = this.mirrorEl;\n if (!mirrorEl) {\n mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n // we don't want long taps or any mouse interaction causing selection/menus.\n // would use preventSelection(), but that prevents selectstart, causing problems.\n mirrorEl.style.userSelect = 'none';\n mirrorEl.style.webkitUserSelect = 'none';\n mirrorEl.style.pointerEvents = 'none';\n mirrorEl.classList.add('fc-event-dragging');\n applyStyle(mirrorEl, {\n position: 'fixed',\n zIndex: this.zIndex,\n visibility: '',\n boxSizing: 'border-box',\n width: sourceElRect.right - sourceElRect.left,\n height: sourceElRect.bottom - sourceElRect.top,\n right: 'auto',\n bottom: 'auto',\n margin: 0,\n });\n this.parentNode.appendChild(mirrorEl);\n }\n return mirrorEl;\n }\n}\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nclass ScrollGeomCache extends ScrollController {\n constructor(scrollController, doesListening) {\n super();\n this.handleScroll = () => {\n this.scrollTop = this.scrollController.getScrollTop();\n this.scrollLeft = this.scrollController.getScrollLeft();\n this.handleScrollChange();\n };\n this.scrollController = scrollController;\n this.doesListening = doesListening;\n this.scrollTop = this.origScrollTop = scrollController.getScrollTop();\n this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft();\n this.scrollWidth = scrollController.getScrollWidth();\n this.scrollHeight = scrollController.getScrollHeight();\n this.clientWidth = scrollController.getClientWidth();\n this.clientHeight = scrollController.getClientHeight();\n this.clientRect = this.computeClientRect(); // do last in case it needs cached values\n if (this.doesListening) {\n this.getEventTarget().addEventListener('scroll', this.handleScroll);\n }\n }\n destroy() {\n if (this.doesListening) {\n this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n }\n }\n getScrollTop() {\n return this.scrollTop;\n }\n getScrollLeft() {\n return this.scrollLeft;\n }\n setScrollTop(top) {\n this.scrollController.setScrollTop(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n this.handleScrollChange();\n }\n }\n setScrollLeft(top) {\n this.scrollController.setScrollLeft(top);\n if (!this.doesListening) {\n // we are not relying on the element to normalize out-of-bounds scroll values\n // so we need to sanitize ourselves\n this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n this.handleScrollChange();\n }\n }\n getClientWidth() {\n return this.clientWidth;\n }\n getClientHeight() {\n return this.clientHeight;\n }\n getScrollWidth() {\n return this.scrollWidth;\n }\n getScrollHeight() {\n return this.scrollHeight;\n }\n handleScrollChange() {\n }\n}\n\nclass ElementScrollGeomCache extends ScrollGeomCache {\n constructor(el, doesListening) {\n super(new ElementScrollController(el), doesListening);\n }\n getEventTarget() {\n return this.scrollController.el;\n }\n computeClientRect() {\n return computeInnerRect(this.scrollController.el);\n }\n}\n\nclass WindowScrollGeomCache extends ScrollGeomCache {\n constructor(doesListening) {\n super(new WindowScrollController(), doesListening);\n }\n getEventTarget() {\n return window;\n }\n computeClientRect() {\n return {\n left: this.scrollLeft,\n right: this.scrollLeft + this.clientWidth,\n top: this.scrollTop,\n bottom: this.scrollTop + this.clientHeight,\n };\n }\n // the window is the only scroll object that changes it's rectangle relative\n // to the document's topleft as it scrolls\n handleScrollChange() {\n this.clientRect = this.computeClientRect();\n }\n}\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nconst getTime = typeof performance === 'function' ? performance.now : Date.now;\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nclass AutoScroller {\n constructor() {\n // options that can be set by caller\n this.isEnabled = true;\n this.scrollQuery = [window, '.fc-scroller'];\n this.edgeThreshold = 50; // pixels\n this.maxVelocity = 300; // pixels per second\n // internal state\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.isAnimating = false;\n this.scrollCaches = null;\n // protect against the initial pointerdown being too close to an edge and starting the scroll\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.animate = () => {\n if (this.isAnimating) { // wasn't cancelled between animation calls\n let edge = this.computeBestEdge(this.pointerScreenX + window.scrollX, this.pointerScreenY + window.scrollY);\n if (edge) {\n let now = getTime();\n this.handleSide(edge, (now - this.msSinceRequest) / 1000);\n this.requestAnimation(now);\n }\n else {\n this.isAnimating = false; // will stop animation\n }\n }\n };\n }\n start(pageX, pageY, scrollStartEl) {\n if (this.isEnabled) {\n this.scrollCaches = this.buildCaches(scrollStartEl);\n this.pointerScreenX = null;\n this.pointerScreenY = null;\n this.everMovedUp = false;\n this.everMovedDown = false;\n this.everMovedLeft = false;\n this.everMovedRight = false;\n this.handleMove(pageX, pageY);\n }\n }\n handleMove(pageX, pageY) {\n if (this.isEnabled) {\n let pointerScreenX = pageX - window.scrollX;\n let pointerScreenY = pageY - window.scrollY;\n let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n if (yDelta < 0) {\n this.everMovedUp = true;\n }\n else if (yDelta > 0) {\n this.everMovedDown = true;\n }\n if (xDelta < 0) {\n this.everMovedLeft = true;\n }\n else if (xDelta > 0) {\n this.everMovedRight = true;\n }\n this.pointerScreenX = pointerScreenX;\n this.pointerScreenY = pointerScreenY;\n if (!this.isAnimating) {\n this.isAnimating = true;\n this.requestAnimation(getTime());\n }\n }\n }\n stop() {\n if (this.isEnabled) {\n this.isAnimating = false; // will stop animation\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n this.scrollCaches = null;\n }\n }\n requestAnimation(now) {\n this.msSinceRequest = now;\n requestAnimationFrame(this.animate);\n }\n handleSide(edge, seconds) {\n let { scrollCache } = edge;\n let { edgeThreshold } = this;\n let invDistance = edgeThreshold - edge.distance;\n let velocity = // the closer to the edge, the faster we scroll\n ((invDistance * invDistance) / (edgeThreshold * edgeThreshold)) * // quadratic\n this.maxVelocity * seconds;\n let sign = 1;\n switch (edge.name) {\n case 'left':\n sign = -1;\n // falls through\n case 'right':\n scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n break;\n case 'top':\n sign = -1;\n // falls through\n case 'bottom':\n scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n break;\n }\n }\n // left/top are relative to document topleft\n computeBestEdge(left, top) {\n let { edgeThreshold } = this;\n let bestSide = null;\n let scrollCaches = this.scrollCaches || [];\n for (let scrollCache of scrollCaches) {\n let rect = scrollCache.clientRect;\n let leftDist = left - rect.left;\n let rightDist = rect.right - left;\n let topDist = top - rect.top;\n let bottomDist = rect.bottom - top;\n // completely within the rect?\n if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() &&\n (!bestSide || bestSide.distance > topDist)) {\n bestSide = { scrollCache, name: 'top', distance: topDist };\n }\n if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() &&\n (!bestSide || bestSide.distance > bottomDist)) {\n bestSide = { scrollCache, name: 'bottom', distance: bottomDist };\n }\n /*\n TODO: fix broken RTL scrolling. canScrollLeft always returning false\n https://github.com/fullcalendar/fullcalendar/issues/4837\n */\n if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() &&\n (!bestSide || bestSide.distance > leftDist)) {\n bestSide = { scrollCache, name: 'left', distance: leftDist };\n }\n if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() &&\n (!bestSide || bestSide.distance > rightDist)) {\n bestSide = { scrollCache, name: 'right', distance: rightDist };\n }\n }\n }\n return bestSide;\n }\n buildCaches(scrollStartEl) {\n return this.queryScrollEls(scrollStartEl).map((el) => {\n if (el === window) {\n return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n }\n return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n });\n }\n queryScrollEls(scrollStartEl) {\n let els = [];\n for (let query of this.scrollQuery) {\n if (typeof query === 'object') {\n els.push(query);\n }\n else {\n /*\n TODO: in the future, always have auto-scroll happen on element where current Hit came from\n Ticket: https://github.com/fullcalendar/fullcalendar/issues/4593\n */\n els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));\n }\n }\n return els;\n }\n}\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nclass FeaturefulElementDragging extends ElementDragging {\n constructor(containerEl, selector) {\n super(containerEl);\n this.containerEl = containerEl;\n // options that can be directly set by caller\n // the caller can also set the PointerDragging's options as well\n this.delay = null;\n this.minDistance = 0;\n this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n this.mirrorNeedsRevert = false;\n this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n this.delayTimeoutId = null;\n this.onPointerDown = (ev) => {\n if (!this.isDragging) { // so new drag doesn't happen while revert animation is going\n this.isInteracting = true;\n this.isDelayEnded = false;\n this.isDistanceSurpassed = false;\n preventSelection(document.body);\n preventContextMenu(document.body);\n // prevent links from being visited if there's an eventual drag.\n // also prevents selection in older browsers (maybe?).\n // not necessary for touch, besides, browser would complain about passiveness.\n if (!ev.isTouch) {\n ev.origEvent.preventDefault();\n }\n this.emitter.trigger('pointerdown', ev);\n if (this.isInteracting && // not destroyed via pointerdown handler\n !this.pointer.shouldIgnoreMove) {\n // actions related to initiating dragstart+dragmove+dragend...\n this.mirror.setIsVisible(false); // reset. caller must set-visible\n this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n this.startDelay(ev);\n if (!this.minDistance) {\n this.handleDistanceSurpassed(ev);\n }\n }\n }\n };\n this.onPointerMove = (ev) => {\n if (this.isInteracting) {\n this.emitter.trigger('pointermove', ev);\n if (!this.isDistanceSurpassed) {\n let minDistance = this.minDistance;\n let distanceSq; // current distance from the origin, squared\n let { deltaX, deltaY } = ev;\n distanceSq = deltaX * deltaX + deltaY * deltaY;\n if (distanceSq >= minDistance * minDistance) { // use pythagorean theorem\n this.handleDistanceSurpassed(ev);\n }\n }\n if (this.isDragging) {\n // a real pointer move? (not one simulated by scrolling)\n if (ev.origEvent.type !== 'scroll') {\n this.mirror.handleMove(ev.pageX, ev.pageY);\n this.autoScroller.handleMove(ev.pageX, ev.pageY);\n }\n this.emitter.trigger('dragmove', ev);\n }\n }\n };\n this.onPointerUp = (ev) => {\n if (this.isInteracting) {\n this.isInteracting = false;\n allowSelection(document.body);\n allowContextMenu(document.body);\n this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n if (this.isDragging) {\n this.autoScroller.stop();\n this.tryStopDrag(ev); // which will stop the mirror\n }\n if (this.delayTimeoutId) {\n clearTimeout(this.delayTimeoutId);\n this.delayTimeoutId = null;\n }\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.onPointerDown);\n pointer.emitter.on('pointermove', this.onPointerMove);\n pointer.emitter.on('pointerup', this.onPointerUp);\n if (selector) {\n pointer.selector = selector;\n }\n this.mirror = new ElementMirror();\n this.autoScroller = new AutoScroller();\n }\n destroy() {\n this.pointer.destroy();\n // HACK: simulate a pointer-up to end the current drag\n // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n this.onPointerUp({});\n }\n startDelay(ev) {\n if (typeof this.delay === 'number') {\n this.delayTimeoutId = setTimeout(() => {\n this.delayTimeoutId = null;\n this.handleDelayEnd(ev);\n }, this.delay); // not assignable to number!\n }\n else {\n this.handleDelayEnd(ev);\n }\n }\n handleDelayEnd(ev) {\n this.isDelayEnded = true;\n this.tryStartDrag(ev);\n }\n handleDistanceSurpassed(ev) {\n this.isDistanceSurpassed = true;\n this.tryStartDrag(ev);\n }\n tryStartDrag(ev) {\n if (this.isDelayEnded && this.isDistanceSurpassed) {\n if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n this.isDragging = true;\n this.mirrorNeedsRevert = false;\n this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl);\n this.emitter.trigger('dragstart', ev);\n if (this.touchScrollAllowed === false) {\n this.pointer.cancelTouchScroll();\n }\n }\n }\n }\n tryStopDrag(ev) {\n // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n // that come from the document to fire beforehand. much more convenient this way.\n this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));\n }\n stopDrag(ev) {\n this.isDragging = false;\n this.emitter.trigger('dragend', ev);\n }\n // fill in the implementations...\n setIgnoreMove(bool) {\n this.pointer.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n this.mirror.setIsVisible(bool);\n }\n setMirrorNeedsRevert(bool) {\n this.mirrorNeedsRevert = bool;\n }\n setAutoScrollEnabled(bool) {\n this.autoScroller.isEnabled = bool;\n }\n}\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nclass OffsetTracker {\n constructor(el) {\n this.el = el;\n this.origRect = computeRect(el);\n // will work fine for divs that have overflow:hidden\n this.scrollCaches = getClippingParents(el).map((scrollEl) => new ElementScrollGeomCache(scrollEl, true));\n }\n destroy() {\n for (let scrollCache of this.scrollCaches) {\n scrollCache.destroy();\n }\n }\n computeLeft() {\n let left = this.origRect.left;\n for (let scrollCache of this.scrollCaches) {\n left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n }\n return left;\n }\n computeTop() {\n let top = this.origRect.top;\n for (let scrollCache of this.scrollCaches) {\n top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n }\n return top;\n }\n isWithinClipping(pageX, pageY) {\n let point = { left: pageX, top: pageY };\n for (let scrollCache of this.scrollCaches) {\n if (!isIgnoredClipping(scrollCache.getEventTarget()) &&\n !pointInsideRect(point, scrollCache.clientRect)) {\n return false;\n }\n }\n return true;\n }\n}\n// certain clipping containers should never constrain interactions, like <html> and <body>\n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n let tagName = node.tagName;\n return tagName === 'HTML' || tagName === 'BODY';\n}\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nclass HitDragging {\n constructor(dragging, droppableStore) {\n // options that can be set by caller\n this.useSubjectCenter = false;\n this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n this.disablePointCheck = false;\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n this.initialHit = null;\n this.movingHit = null;\n this.finalHit = null;\n this.prepareHits();\n this.processFirstCoord(ev);\n if (this.initialHit || !this.requireInitial) {\n dragging.setIgnoreMove(false);\n // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n this.emitter.trigger('pointerdown', ev);\n }\n else {\n dragging.setIgnoreMove(true);\n }\n };\n this.handleDragStart = (ev) => {\n this.emitter.trigger('dragstart', ev);\n this.handleMove(ev, true); // force = fire even if initially null\n };\n this.handleDragMove = (ev) => {\n this.emitter.trigger('dragmove', ev);\n this.handleMove(ev);\n };\n this.handlePointerUp = (ev) => {\n this.releaseHits();\n this.emitter.trigger('pointerup', ev);\n };\n this.handleDragEnd = (ev) => {\n if (this.movingHit) {\n this.emitter.trigger('hitupdate', null, true, ev);\n }\n this.finalHit = this.movingHit;\n this.movingHit = null;\n this.emitter.trigger('dragend', ev);\n };\n this.droppableStore = droppableStore;\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n dragging.emitter.on('dragmove', this.handleDragMove);\n dragging.emitter.on('pointerup', this.handlePointerUp);\n dragging.emitter.on('dragend', this.handleDragEnd);\n this.dragging = dragging;\n this.emitter = new Emitter();\n }\n // sets initialHit\n // sets coordAdjust\n processFirstCoord(ev) {\n let origPoint = { left: ev.pageX, top: ev.pageY };\n let adjustedPoint = origPoint;\n let subjectEl = ev.subjectEl;\n let subjectRect;\n if (subjectEl instanceof HTMLElement) { // i.e. not a Document/ShadowRoot\n subjectRect = computeRect(subjectEl);\n adjustedPoint = constrainPoint(adjustedPoint, subjectRect);\n }\n let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n if (initialHit) {\n if (this.useSubjectCenter && subjectRect) {\n let slicedSubjectRect = intersectRects(subjectRect, initialHit.rect);\n if (slicedSubjectRect) {\n adjustedPoint = getRectCenter(slicedSubjectRect);\n }\n }\n this.coordAdjust = diffPoints(adjustedPoint, origPoint);\n }\n else {\n this.coordAdjust = { left: 0, top: 0 };\n }\n }\n handleMove(ev, forceHandle) {\n let hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n this.movingHit = hit;\n this.emitter.trigger('hitupdate', hit, false, ev);\n }\n }\n prepareHits() {\n this.offsetTrackers = mapHash(this.droppableStore, (interactionSettings) => {\n interactionSettings.component.prepareHits();\n return new OffsetTracker(interactionSettings.el);\n });\n }\n releaseHits() {\n let { offsetTrackers } = this;\n for (let id in offsetTrackers) {\n offsetTrackers[id].destroy();\n }\n this.offsetTrackers = {};\n }\n queryHitForOffset(offsetLeft, offsetTop) {\n let { droppableStore, offsetTrackers } = this;\n let bestHit = null;\n for (let id in droppableStore) {\n let component = droppableStore[id].component;\n let offsetTracker = offsetTrackers[id];\n if (offsetTracker && // wasn't destroyed mid-drag\n offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n let originLeft = offsetTracker.computeLeft();\n let originTop = offsetTracker.computeTop();\n let positionLeft = offsetLeft - originLeft;\n let positionTop = offsetTop - originTop;\n let { origRect } = offsetTracker;\n let width = origRect.right - origRect.left;\n let height = origRect.bottom - origRect.top;\n if (\n // must be within the element's bounds\n positionLeft >= 0 && positionLeft < width &&\n positionTop >= 0 && positionTop < height) {\n let hit = component.queryHit(positionLeft, positionTop, width, height);\n if (hit && (\n // make sure the hit is within activeRange, meaning it's not a dead cell\n rangeContainsRange(hit.dateProfile.activeRange, hit.dateSpan.range)) &&\n // Ensure the component we are querying for the hit is accessibly my the pointer\n // Prevents obscured calendars (ex: under a modal dialog) from accepting hit\n // https://github.com/fullcalendar/fullcalendar/issues/5026\n (this.disablePointCheck ||\n offsetTracker.el.contains(offsetTracker.el.getRootNode().elementFromPoint(\n // add-back origins to get coordinate relative to top-left of window viewport\n positionLeft + originLeft - window.scrollX, positionTop + originTop - window.scrollY))) &&\n (!bestHit || hit.layer > bestHit.layer)) {\n hit.componentId = id;\n hit.context = component.context;\n // TODO: better way to re-orient rectangle\n hit.rect.left += originLeft;\n hit.rect.right += originLeft;\n hit.rect.top += originTop;\n hit.rect.bottom += originTop;\n bestHit = hit;\n }\n }\n }\n }\n return bestHit;\n }\n}\nfunction isHitsEqual(hit0, hit1) {\n if (!hit0 && !hit1) {\n return true;\n }\n if (Boolean(hit0) !== Boolean(hit1)) {\n return false;\n }\n return isDateSpansEqual(hit0.dateSpan, hit1.dateSpan);\n}\n\nfunction buildDatePointApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.datePointTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDatePointApi(dateSpan, context.dateEnv));\n return props;\n}\nfunction buildDatePointApi(span, dateEnv) {\n return {\n date: dateEnv.toDate(span.range.start),\n dateStr: dateEnv.formatIso(span.range.start, { omitTime: span.allDay }),\n allDay: span.allDay,\n };\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nclass DateClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handlePointerDown = (pev) => {\n let { dragging } = this;\n let downEl = pev.origEvent.target;\n // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n dragging.setIgnoreMove(!this.component.isValidDateDownEl(downEl));\n };\n // won't even fire if moving was ignored\n this.handleDragEnd = (ev) => {\n let { component } = this;\n let { pointer } = this.dragging;\n if (!pointer.wasTouchScroll) {\n let { initialHit, finalHit } = this.hitDragging;\n if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n let { context } = component;\n let arg = Object.assign(Object.assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), { dayEl: initialHit.dayEl, jsEvent: ev.origEvent, view: context.viewApi || context.calendarApi.view });\n context.emitter.trigger('dateClick', arg);\n }\n }\n };\n // we DO want to watch pointer moves because otherwise finalHit won't get populated\n this.dragging = new FeaturefulElementDragging(settings.el);\n this.dragging.autoScroller.isEnabled = false;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nclass DateSelecting extends Interaction {\n constructor(settings) {\n super(settings);\n this.dragSelection = null;\n this.handlePointerDown = (ev) => {\n let { component, dragging } = this;\n let { options } = component.context;\n let canSelect = options.selectable &&\n component.isValidDateDownEl(ev.origEvent.target);\n // don't bother to watch expensive moves if component won't do selection\n dragging.setIgnoreMove(!canSelect);\n // if touch, require user to hold down\n dragging.delay = ev.isTouch ? getComponentTouchDelay$1(component) : null;\n };\n this.handleDragStart = (ev) => {\n this.component.context.calendarApi.unselect(ev); // unselect previous selections\n };\n this.handleHitUpdate = (hit, isFinal) => {\n let { context } = this.component;\n let dragSelection = null;\n let isInvalid = false;\n if (hit) {\n let initialHit = this.hitDragging.initialHit;\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n dragSelection = joinHitsIntoSelection(initialHit, hit, context.pluginHooks.dateSelectionTransformers);\n }\n if (!dragSelection || !isDateSelectionValid(dragSelection, hit.dateProfile, context)) {\n isInvalid = true;\n dragSelection = null;\n }\n }\n if (dragSelection) {\n context.dispatch({ type: 'SELECT_DATES', selection: dragSelection });\n }\n else if (!isFinal) { // only unselect if moved away while dragging\n context.dispatch({ type: 'UNSELECT_DATES' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n }\n };\n this.handlePointerUp = (pev) => {\n if (this.dragSelection) {\n // selection is already rendered, so just need to report selection\n triggerDateSelect(this.dragSelection, pev, this.component.context);\n this.dragSelection = null;\n }\n };\n let { component } = settings;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.touchScrollAllowed = false;\n dragging.minDistance = options.selectMinDistance || 0;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.dragging.destroy();\n }\n}\nfunction getComponentTouchDelay$1(component) {\n let { options } = component.context;\n let delay = options.selectLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let ms = [\n dateSpan0.range.start,\n dateSpan0.range.end,\n dateSpan1.range.start,\n dateSpan1.range.end,\n ];\n ms.sort(compareNumbers);\n let props = {};\n for (let transformer of dateSelectionTransformers) {\n let res = transformer(hit0, hit1);\n if (res === false) {\n return null;\n }\n if (res) {\n Object.assign(props, res);\n }\n }\n props.range = { start: ms[0], end: ms[3] };\n props.allDay = dateSpan0.allDay;\n return props;\n}\n\nclass EventDragging extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.subjectEl = null;\n this.subjectSeg = null; // the seg being selected/dragged\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null; // the events being dragged\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let origTarget = ev.origEvent.target;\n let { component, dragging } = this;\n let { mirror } = dragging;\n let { options } = component.context;\n let initialContext = component.context;\n this.subjectEl = ev.subjectEl;\n let subjectSeg = this.subjectSeg = getElSeg(ev.subjectEl);\n let eventRange = this.eventRange = subjectSeg.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n this.relevantEvents = getRelevantEvents(initialContext.getCurrentData().eventStore, eventInstanceId);\n dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n dragging.delay =\n // only do a touch delay if touch and this event hasn't been selected yet\n (ev.isTouch && eventInstanceId !== component.props.eventSelection) ?\n getComponentTouchDelay(component) :\n null;\n if (options.fixedMirrorParent) {\n mirror.parentNode = options.fixedMirrorParent;\n }\n else {\n mirror.parentNode = elementClosest(origTarget, '.fc');\n }\n mirror.revertDuration = options.dragRevertDuration;\n let isValid = component.isValidSegDownEl(origTarget) &&\n !elementClosest(origTarget, '.fc-event-resizer'); // NOT on a resizer\n dragging.setIgnoreMove(!isValid);\n // disable dragging for elements that are resizable (ie, selectable)\n // but are not draggable\n this.isDragging = isValid &&\n ev.subjectEl.classList.contains('fc-event-draggable');\n };\n this.handleDragStart = (ev) => {\n let initialContext = this.component.context;\n let eventRange = this.eventRange;\n let eventInstanceId = eventRange.instance.instanceId;\n if (ev.isTouch) {\n // need to select a different event?\n if (eventInstanceId !== this.component.props.eventSelection) {\n initialContext.dispatch({ type: 'SELECT_EVENT', eventInstanceId });\n }\n }\n else {\n // if now using mouse, but was previous touch interaction, clear selected event\n initialContext.dispatch({ type: 'UNSELECT_EVENT' });\n }\n if (this.isDragging) {\n initialContext.calendarApi.unselect(ev); // unselect *date* selection\n initialContext.emitter.trigger('eventDragStart', {\n el: this.subjectEl,\n event: new EventImpl(initialContext, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: initialContext.viewApi,\n });\n }\n };\n this.handleHitUpdate = (hit, isFinal) => {\n if (!this.isDragging) {\n return;\n }\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let initialContext = this.component.context;\n // states based on new hit\n let receivingContext = null;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n receivingContext = hit.context;\n let receivingOptions = receivingContext.options;\n if (initialContext === receivingContext ||\n (receivingOptions.editable && receivingOptions.droppable)) {\n mutation = computeEventMutation(initialHit, hit, this.eventRange.instance.range.start, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, receivingContext)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = createEmptyEventStore();\n }\n }\n }\n else {\n receivingContext = null;\n }\n }\n this.displayDrag(receivingContext, interaction);\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (initialContext === receivingContext && // TODO: write test for this\n isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.dragging.setMirrorNeedsRevert(!mutation);\n // render the mirror if no already-rendered mirror\n // TODO: wish we could somehow wait for dispatch to guarantee render\n this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));\n // assign states based on new hit\n this.receivingContext = receivingContext;\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handlePointerUp = () => {\n if (!this.isDragging) {\n this.cleanup(); // because handleDragEnd won't fire\n }\n };\n this.handleDragEnd = (ev) => {\n if (this.isDragging) {\n let initialContext = this.component.context;\n let initialView = initialContext.viewApi;\n let { receivingContext, validMutation } = this;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(initialContext, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n let { finalHit } = this.hitDragging;\n this.clearDrag(); // must happen after revert animation\n initialContext.emitter.trigger('eventDragStop', {\n el: this.subjectEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: initialView,\n });\n if (validMutation) {\n // dropped within same calendar\n if (receivingContext === initialContext) {\n let updatedEventApi = new EventImpl(initialContext, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change data\n });\n },\n };\n let transformed = {};\n for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {\n Object.assign(transformed, transformer(validMutation, initialContext));\n }\n initialContext.emitter.trigger('eventDrop', Object.assign(Object.assign(Object.assign({}, eventChangeArg), transformed), { el: ev.subjectEl, delta: validMutation.datesDelta, jsEvent: ev.origEvent, view: initialView }));\n initialContext.emitter.trigger('eventChange', eventChangeArg);\n // dropped in different calendar\n }\n else if (receivingContext) {\n let eventRemoveArg = {\n event: eventApi,\n relatedEvents: buildEventApis(relevantEvents, initialContext, eventInstance),\n revert() {\n initialContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n },\n };\n initialContext.emitter.trigger('eventLeave', Object.assign(Object.assign({}, eventRemoveArg), { draggedEl: ev.subjectEl, view: initialView }));\n initialContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: relevantEvents,\n });\n initialContext.emitter.trigger('eventRemove', eventRemoveArg);\n let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId];\n let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId];\n let addedEventApi = new EventImpl(receivingContext, addedEventDef, addedEventInstance);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventAddArg = {\n event: addedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, receivingContext, addedEventInstance),\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n },\n };\n receivingContext.emitter.trigger('eventAdd', eventAddArg);\n if (ev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: eventInstance.instanceId,\n });\n }\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: ev.subjectEl, jsEvent: ev.origEvent, view: finalHit.context.viewApi }));\n receivingContext.emitter.trigger('eventReceive', Object.assign(Object.assign({}, eventAddArg), { draggedEl: ev.subjectEl, view: finalHit.context.viewApi }));\n }\n }\n else {\n initialContext.emitter.trigger('_noEventDrop');\n }\n }\n this.cleanup();\n };\n let { component } = this;\n let { options } = component.context;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = EventDragging.SELECTOR;\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsStore);\n hitDragging.useSubjectCenter = settings.useEventCenter;\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('pointerup', this.handlePointerUp);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n // render a drag state on the next receivingCalendar\n displayDrag(nextContext, state) {\n let initialContext = this.component.context;\n let prevContext = this.receivingContext;\n // does the previous calendar need to be cleared?\n if (prevContext && prevContext !== nextContext) {\n // does the initial calendar need to be cleared?\n // if so, don't clear all the way. we still need to to hide the affectedEvents\n if (prevContext === initialContext) {\n prevContext.dispatch({\n type: 'SET_EVENT_DRAG',\n state: {\n affectedEvents: state.affectedEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n },\n });\n // completely clear the old calendar if it wasn't the initial\n }\n else {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n let initialCalendar = this.component.context;\n let { receivingContext } = this;\n if (receivingContext) {\n receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n // the initial calendar might have an dummy drag state from displayDrag\n if (initialCalendar !== receivingContext) {\n initialCalendar.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n cleanup() {\n this.subjectSeg = null;\n this.isDragging = false;\n this.eventRange = null;\n this.relevantEvents = null;\n this.receivingContext = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n }\n}\n// TODO: test this in IE11\n// QUESTION: why do we need it on the resizable???\nEventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';\nfunction computeEventMutation(hit0, hit1, eventInstanceStart, massagers) {\n let dateSpan0 = hit0.dateSpan;\n let dateSpan1 = hit1.dateSpan;\n let date0 = dateSpan0.range.start;\n let date1 = dateSpan1.range.start;\n let standardProps = {};\n if (dateSpan0.allDay !== dateSpan1.allDay) {\n standardProps.allDay = dateSpan1.allDay;\n standardProps.hasEnd = hit1.context.options.allDayMaintainDuration;\n if (dateSpan1.allDay) {\n // means date1 is already start-of-day,\n // but date0 needs to be converted\n date0 = startOfDay(eventInstanceStart);\n }\n else {\n // Moving from allDate->timed\n // Doesn't matter where on the event the drag began, mutate the event's start-date to date1\n date0 = eventInstanceStart;\n }\n }\n let delta = diffDates(date0, date1, hit0.context.dateEnv, hit0.componentId === hit1.componentId ?\n hit0.largeUnit :\n null);\n if (delta.milliseconds) { // has hours/minutes/seconds\n standardProps.allDay = false;\n }\n let mutation = {\n datesDelta: delta,\n standardProps,\n };\n for (let massager of massagers) {\n massager(mutation, hit0, hit1);\n }\n return mutation;\n}\nfunction getComponentTouchDelay(component) {\n let { options } = component.context;\n let delay = options.eventLongPressDelay;\n if (delay == null) {\n delay = options.longPressDelay;\n }\n return delay;\n}\n\nclass EventResizing extends Interaction {\n constructor(settings) {\n super(settings);\n // internal state\n this.draggingSegEl = null;\n this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n this.eventRange = null;\n this.relevantEvents = null;\n this.validMutation = null;\n this.mutatedRelevantEvents = null;\n this.handlePointerDown = (ev) => {\n let { component } = this;\n let segEl = this.querySegEl(ev);\n let seg = getElSeg(segEl);\n let eventRange = this.eventRange = seg.eventRange;\n this.dragging.minDistance = component.context.options.eventDragMinDistance;\n // if touch, need to be working with a selected event\n this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(ev.origEvent.target) ||\n (ev.isTouch && this.component.props.eventSelection !== eventRange.instance.instanceId));\n };\n this.handleDragStart = (ev) => {\n let { context } = this.component;\n let eventRange = this.eventRange;\n this.relevantEvents = getRelevantEvents(context.getCurrentData().eventStore, this.eventRange.instance.instanceId);\n let segEl = this.querySegEl(ev);\n this.draggingSegEl = segEl;\n this.draggingSeg = getElSeg(segEl);\n context.calendarApi.unselect();\n context.emitter.trigger('eventResizeStart', {\n el: segEl,\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { context } = this.component;\n let relevantEvents = this.relevantEvents;\n let initialHit = this.hitDragging.initialHit;\n let eventInstance = this.eventRange.instance;\n let mutation = null;\n let mutatedRelevantEvents = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: relevantEvents,\n mutatedEvents: createEmptyEventStore(),\n isEvent: true,\n };\n if (hit) {\n let disallowed = hit.componentId === initialHit.componentId\n && this.isHitComboAllowed\n && !this.isHitComboAllowed(initialHit, hit);\n if (!disallowed) {\n mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range);\n }\n }\n if (mutation) {\n mutatedRelevantEvents = applyMutationToEventStore(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);\n interaction.mutatedEvents = mutatedRelevantEvents;\n if (!isInteractionValid(interaction, hit.dateProfile, context)) {\n isInvalid = true;\n mutation = null;\n mutatedRelevantEvents = null;\n interaction.mutatedEvents = null;\n }\n }\n if (mutatedRelevantEvents) {\n context.dispatch({\n type: 'SET_EVENT_RESIZE',\n state: interaction,\n });\n }\n else {\n context.dispatch({ type: 'UNSET_EVENT_RESIZE' });\n }\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n if (mutation && isHitsEqual(initialHit, hit)) {\n mutation = null;\n }\n this.validMutation = mutation;\n this.mutatedRelevantEvents = mutatedRelevantEvents;\n }\n };\n this.handleDragEnd = (ev) => {\n let { context } = this.component;\n let eventDef = this.eventRange.def;\n let eventInstance = this.eventRange.instance;\n let eventApi = new EventImpl(context, eventDef, eventInstance);\n let relevantEvents = this.relevantEvents;\n let mutatedRelevantEvents = this.mutatedRelevantEvents;\n context.emitter.trigger('eventResizeStop', {\n el: this.draggingSegEl,\n event: eventApi,\n jsEvent: ev.origEvent,\n view: context.viewApi,\n });\n if (this.validMutation) {\n let updatedEventApi = new EventImpl(context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: mutatedRelevantEvents,\n });\n let eventChangeArg = {\n oldEvent: eventApi,\n event: updatedEventApi,\n relatedEvents: buildEventApis(mutatedRelevantEvents, context, eventInstance),\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents, // the pre-change events\n });\n },\n };\n context.emitter.trigger('eventResize', Object.assign(Object.assign({}, eventChangeArg), { el: this.draggingSegEl, startDelta: this.validMutation.startDelta || createDuration(0), endDelta: this.validMutation.endDelta || createDuration(0), jsEvent: ev.origEvent, view: context.viewApi }));\n context.emitter.trigger('eventChange', eventChangeArg);\n }\n else {\n context.emitter.trigger('_noEventResize');\n }\n // reset all internal state\n this.draggingSeg = null;\n this.relevantEvents = null;\n this.validMutation = null;\n // okay to keep eventInstance around. useful to set it in handlePointerDown\n };\n let { component } = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n dragging.pointer.selector = '.fc-event-resizer';\n dragging.touchScrollAllowed = false;\n dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n let hitDragging = this.hitDragging = new HitDragging(this.dragging, interactionSettingsToStore(settings));\n hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n }\n destroy() {\n this.dragging.destroy();\n }\n querySegEl(ev) {\n return elementClosest(ev.subjectEl, '.fc-event');\n }\n}\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange) {\n let dateEnv = hit0.context.dateEnv;\n let date0 = hit0.dateSpan.range.start;\n let date1 = hit1.dateSpan.range.start;\n let delta = diffDates(date0, date1, dateEnv, hit0.largeUnit);\n if (isFromStart) {\n if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n return { startDelta: delta };\n }\n }\n else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n return { endDelta: delta };\n }\n return null;\n}\n\nclass UnselectAuto {\n constructor(context) {\n this.context = context;\n this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n this.matchesCancel = false;\n this.matchesEvent = false;\n this.onSelect = (selectInfo) => {\n if (selectInfo.jsEvent) {\n this.isRecentPointerDateSelect = true;\n }\n };\n this.onDocumentPointerDown = (pev) => {\n let unselectCancel = this.context.options.unselectCancel;\n let downEl = getEventTargetViaRoot(pev.origEvent);\n this.matchesCancel = !!elementClosest(downEl, unselectCancel);\n this.matchesEvent = !!elementClosest(downEl, EventDragging.SELECTOR); // interaction started on an event?\n };\n this.onDocumentPointerUp = (pev) => {\n let { context } = this;\n let { documentPointer } = this;\n let calendarState = context.getCurrentData();\n // touch-scrolling should never unfocus any type of selection\n if (!documentPointer.wasTouchScroll) {\n if (calendarState.dateSelection && // an existing date selection?\n !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n ) {\n let unselectAuto = context.options.unselectAuto;\n if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {\n context.calendarApi.unselect(pev);\n }\n }\n if (calendarState.eventSelection && // an existing event selected?\n !this.matchesEvent // interaction DIDN'T start on an event\n ) {\n context.dispatch({ type: 'UNSELECT_EVENT' });\n }\n }\n this.isRecentPointerDateSelect = false;\n };\n let documentPointer = this.documentPointer = new PointerDragging(document);\n documentPointer.shouldIgnoreMove = true;\n documentPointer.shouldWatchScroll = false;\n documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);\n documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n /*\n TODO: better way to know about whether there was a selection with the pointer\n */\n context.emitter.on('select', this.onSelect);\n }\n destroy() {\n this.context.emitter.off('select', this.onSelect);\n this.documentPointer.destroy();\n }\n}\n\nconst OPTION_REFINERS = {\n fixedMirrorParent: identity,\n};\nconst LISTENER_REFINERS = {\n dateClick: identity,\n eventDragStart: identity,\n eventDragStop: identity,\n eventDrop: identity,\n eventResizeStart: identity,\n eventResizeStop: identity,\n eventResize: identity,\n drop: identity,\n eventReceive: identity,\n eventLeave: identity,\n};\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nclass ExternalElementDragging {\n constructor(dragging, suppliedDragMeta) {\n this.receivingContext = null;\n this.droppableEvent = null; // will exist for all drags, even if create:false\n this.suppliedDragMeta = null;\n this.dragMeta = null;\n this.handleDragStart = (ev) => {\n this.dragMeta = this.buildDragMeta(ev.subjectEl);\n };\n this.handleHitUpdate = (hit, isFinal, ev) => {\n let { dragging } = this.hitDragging;\n let receivingContext = null;\n let droppableEvent = null;\n let isInvalid = false;\n let interaction = {\n affectedEvents: createEmptyEventStore(),\n mutatedEvents: createEmptyEventStore(),\n isEvent: this.dragMeta.create,\n };\n if (hit) {\n receivingContext = hit.context;\n if (this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {\n droppableEvent = computeEventForDateSpan(hit.dateSpan, this.dragMeta, receivingContext);\n interaction.mutatedEvents = eventTupleToStore(droppableEvent);\n isInvalid = !isInteractionValid(interaction, hit.dateProfile, receivingContext);\n if (isInvalid) {\n interaction.mutatedEvents = createEmptyEventStore();\n droppableEvent = null;\n }\n }\n }\n this.displayDrag(receivingContext, interaction);\n // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n // TODO: wish we could somehow wait for dispatch to guarantee render\n dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));\n if (!isInvalid) {\n enableCursor();\n }\n else {\n disableCursor();\n }\n if (!isFinal) {\n dragging.setMirrorNeedsRevert(!droppableEvent);\n this.receivingContext = receivingContext;\n this.droppableEvent = droppableEvent;\n }\n };\n this.handleDragEnd = (pev) => {\n let { receivingContext, droppableEvent } = this;\n this.clearDrag();\n if (receivingContext && droppableEvent) {\n let finalHit = this.hitDragging.finalHit;\n let finalView = finalHit.context.viewApi;\n let dragMeta = this.dragMeta;\n receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), { draggedEl: pev.subjectEl, jsEvent: pev.origEvent, view: finalView }));\n if (dragMeta.create) {\n let addingEvents = eventTupleToStore(droppableEvent);\n receivingContext.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: addingEvents,\n });\n if (pev.isTouch) {\n receivingContext.dispatch({\n type: 'SELECT_EVENT',\n eventInstanceId: droppableEvent.instance.instanceId,\n });\n }\n // signal that an external event landed\n receivingContext.emitter.trigger('eventReceive', {\n event: new EventImpl(receivingContext, droppableEvent.def, droppableEvent.instance),\n relatedEvents: [],\n revert() {\n receivingContext.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: addingEvents,\n });\n },\n draggedEl: pev.subjectEl,\n view: finalView,\n });\n }\n }\n this.receivingContext = null;\n this.droppableEvent = null;\n };\n let hitDragging = this.hitDragging = new HitDragging(dragging, interactionSettingsStore);\n hitDragging.requireInitial = false; // will start outside of a component\n hitDragging.emitter.on('dragstart', this.handleDragStart);\n hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n hitDragging.emitter.on('dragend', this.handleDragEnd);\n this.suppliedDragMeta = suppliedDragMeta;\n }\n buildDragMeta(subjectEl) {\n if (typeof this.suppliedDragMeta === 'object') {\n return parseDragMeta(this.suppliedDragMeta);\n }\n if (typeof this.suppliedDragMeta === 'function') {\n return parseDragMeta(this.suppliedDragMeta(subjectEl));\n }\n return getDragMetaFromEl(subjectEl);\n }\n displayDrag(nextContext, state) {\n let prevContext = this.receivingContext;\n if (prevContext && prevContext !== nextContext) {\n prevContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n if (nextContext) {\n nextContext.dispatch({ type: 'SET_EVENT_DRAG', state });\n }\n }\n clearDrag() {\n if (this.receivingContext) {\n this.receivingContext.dispatch({ type: 'UNSET_EVENT_DRAG' });\n }\n }\n canDropElOnCalendar(el, receivingContext) {\n let dropAccept = receivingContext.options.dropAccept;\n if (typeof dropAccept === 'function') {\n return dropAccept.call(receivingContext.calendarApi, el);\n }\n if (typeof dropAccept === 'string' && dropAccept) {\n return Boolean(elementMatches(el, dropAccept));\n }\n return true;\n }\n}\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, context) {\n let defProps = Object.assign({}, dragMeta.leftoverProps);\n for (let transform of context.pluginHooks.externalDefTransforms) {\n Object.assign(defProps, transform(dateSpan, dragMeta));\n }\n let { refined, extra } = refineEventDef(defProps, context);\n let def = parseEventDef(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration), // hasEnd\n context);\n let start = dateSpan.range.start;\n // only rely on time info if drop zone is all-day,\n // otherwise, we already know the time\n if (dateSpan.allDay && dragMeta.startTime) {\n start = context.dateEnv.add(start, dragMeta.startTime);\n }\n let end = dragMeta.duration ?\n context.dateEnv.add(start, dragMeta.duration) :\n getDefaultEventEnd(dateSpan.allDay, start, context);\n let instance = createEventInstance(def.defId, { start, end });\n return { def, instance };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n let str = getEmbeddedElData(el, 'event');\n let obj = str ?\n JSON.parse(str) :\n { create: false }; // if no embedded data, assume no event creation\n return parseDragMeta(obj);\n}\nconfig.dataAttrPrefix = '';\nfunction getEmbeddedElData(el, name) {\n let prefix = config.dataAttrPrefix;\n let prefixedName = (prefix ? prefix + '-' : '') + name;\n return el.getAttribute('data-' + prefixedName) || '';\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nclass ExternalDraggable {\n constructor(el, settings = {}) {\n this.handlePointerDown = (ev) => {\n let { dragging } = this;\n let { minDistance, longPressDelay } = this.settings;\n dragging.minDistance =\n minDistance != null ?\n minDistance :\n (ev.isTouch ? 0 : BASE_OPTION_DEFAULTS.eventDragMinDistance);\n dragging.delay =\n ev.isTouch ? // TODO: eventually read eventLongPressDelay instead vvv\n (longPressDelay != null ? longPressDelay : BASE_OPTION_DEFAULTS.longPressDelay) :\n 0;\n };\n this.handleDragStart = (ev) => {\n if (ev.isTouch &&\n this.dragging.delay &&\n ev.subjectEl.classList.contains('fc-event')) {\n this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');\n }\n };\n this.settings = settings;\n let dragging = this.dragging = new FeaturefulElementDragging(el);\n dragging.touchScrollAllowed = false;\n if (settings.itemSelector != null) {\n dragging.pointer.selector = settings.itemSelector;\n }\n if (settings.appendTo != null) {\n dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n }\n dragging.emitter.on('pointerdown', this.handlePointerDown);\n dragging.emitter.on('dragstart', this.handleDragStart);\n new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nclass InferredElementDragging extends ElementDragging {\n constructor(containerEl) {\n super(containerEl);\n this.shouldIgnoreMove = false;\n this.mirrorSelector = '';\n this.currentMirrorEl = null;\n this.handlePointerDown = (ev) => {\n this.emitter.trigger('pointerdown', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragstart right away. does not support delay or min-distance\n this.emitter.trigger('dragstart', ev);\n }\n };\n this.handlePointerMove = (ev) => {\n if (!this.shouldIgnoreMove) {\n this.emitter.trigger('dragmove', ev);\n }\n };\n this.handlePointerUp = (ev) => {\n this.emitter.trigger('pointerup', ev);\n if (!this.shouldIgnoreMove) {\n // fire dragend right away. does not support a revert animation\n this.emitter.trigger('dragend', ev);\n }\n };\n let pointer = this.pointer = new PointerDragging(containerEl);\n pointer.emitter.on('pointerdown', this.handlePointerDown);\n pointer.emitter.on('pointermove', this.handlePointerMove);\n pointer.emitter.on('pointerup', this.handlePointerUp);\n }\n destroy() {\n this.pointer.destroy();\n }\n setIgnoreMove(bool) {\n this.shouldIgnoreMove = bool;\n }\n setMirrorIsVisible(bool) {\n if (bool) {\n // restore a previously hidden element.\n // use the reference in case the selector class has already been removed.\n if (this.currentMirrorEl) {\n this.currentMirrorEl.style.visibility = '';\n this.currentMirrorEl = null;\n }\n }\n else {\n let mirrorEl = this.mirrorSelector\n // TODO: somehow query FullCalendars WITHIN shadow-roots\n ? document.querySelector(this.mirrorSelector)\n : null;\n if (mirrorEl) {\n this.currentMirrorEl = mirrorEl;\n mirrorEl.style.visibility = 'hidden';\n }\n }\n }\n}\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nclass ThirdPartyDraggable {\n constructor(containerOrSettings, settings) {\n let containerEl = document;\n if (\n // wish we could just test instanceof EventTarget, but doesn't work in IE11\n containerOrSettings === document ||\n containerOrSettings instanceof Element) {\n containerEl = containerOrSettings;\n settings = settings || {};\n }\n else {\n settings = (containerOrSettings || {});\n }\n let dragging = this.dragging = new InferredElementDragging(containerEl);\n if (typeof settings.itemSelector === 'string') {\n dragging.pointer.selector = settings.itemSelector;\n }\n else if (containerEl === document) {\n dragging.pointer.selector = '[data-event]';\n }\n if (typeof settings.mirrorSelector === 'string') {\n dragging.mirrorSelector = settings.mirrorSelector;\n }\n let externalDragging = new ExternalElementDragging(dragging, settings.eventData);\n // The hit-detection system requires that the dnd-mirror-element be pointer-events:none,\n // but this can't be guaranteed for third-party draggables, so disable\n externalDragging.hitDragging.disablePointCheck = true;\n }\n destroy() {\n this.dragging.destroy();\n }\n}\n\nvar index = createPlugin({\n name: '@fullcalendar/interaction',\n componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n calendarInteractions: [UnselectAuto],\n elementDraggingImpl: FeaturefulElementDragging,\n optionRefiners: OPTION_REFINERS,\n listenerRefiners: LISTENER_REFINERS,\n});\n\nexport { ExternalDraggable as Draggable, ThirdPartyDraggable, index as default };\n","var m=/^(GTM|G)-[0-9A-Z]+$/;function s(r){if(typeof r!=\"string\"||!m.test(r)){let t=String(r).toUpperCase().replace(/.*-|[^0-9A-Z]/g,\"\"),a=t.length===0?\"\":` Did you mean 'GTM-${t}' or 'G-${t}'?`;throw new Error(`'${r}' is not a valid GTM-ID (${m}).${a}`)}}function n(r,t=\"dataLayer\"){return r[t]||(r[t]=[]),r[t]}function p(r,t){let a=document,e=a.createElement(\"script\"),o=g=>{t.onReady?.({id:r,script:e}),e.removeEventListener(\"load\",o)};e.addEventListener(\"load\",o);let i=t.dataLayerName??\"dataLayer\";if(n(window,i).push({event:\"gtm.js\",\"gtm.start\":new Date().getTime()}),!r)return e;e.async=!t.defer,e.defer=!!(t.defer||t.compatibility),t.nonce&&e.setAttribute(\"nonce\",t.nonce),t.scriptType&&(e.type=t.scriptType);let c=new URLSearchParams({id:r,...t.dataLayerName?{l:t.dataLayerName}:{},...t.queryParams??{}}),d=t.source??\"https://www.googletagmanager.com/gtm.js\";e.src=`${d}?${c}`;let l=t.parentElement??a.body;if(typeof l?.appendChild!=\"function\")throw new Error(\"parentElement must be a DOM element\");return l.appendChild(e),e}function y(r=\"https://www.googletagmanager.com/gtm.js\"){return Array.from(document.getElementsByTagName(\"script\")).some(t=>t.src.includes(r))}var u=class{id;options;scriptElements=[];constructor(t){if(Array.isArray(t.id))for(let a of t.id)typeof a==\"string\"?s(a):s(a.id);else s(t.id);this.id=t.id,this.options={enabled:!0,debug:!1,loadScript:!0,defer:!1,compatibility:!1,dataLayerName:\"dataLayer\",...t},delete this.options.id}isInBrowserContext=()=>typeof window<\"u\";enabled(){return this.options.enabled??!0}enable(t=!0,a){if(this.options.enabled=t,this.isInBrowserContext()&&t&&!y(a)&&this.options.loadScript)if(Array.isArray(this.id))this.id.forEach(e=>{let o;typeof e==\"string\"?o=p(e,{...this.options}):o=p(e.id,{...this.options,queryParams:e.queryParams}),this.scriptElements.push(o)});else{let e=p(this.id,{...this.options});this.scriptElements.push(e)}}debugEnabled(){return this.options.debug??!1}debug(t){this.options.debug=t}dataLayer(){return this.isInBrowserContext()&&this.options.enabled?n(window,this.options.dataLayerName):!1}trackView(t,a,e={}){let o=this.isInBrowserContext()&&(this.options.enabled??!1);this.options.debug&&console.log(`[GTM-Support${o?\"\":\"(disabled)\"}]: Dispatching TrackView`,{screenName:t,path:a}),o&&n(window,this.options.dataLayerName).push({...e,event:this.options.trackViewEventProperty??\"content-view\",\"content-name\":a,\"content-view-name\":t})}trackEvent({event:t,category:a=null,action:e=null,label:o=null,value:i=null,noninteraction:b=!1,...c}={}){let d=this.isInBrowserContext()&&(this.options.enabled??!1);this.options.debug&&console.log(`[GTM-Support${d?\"\":\"(disabled)\"}]: Dispatching event`,{event:t,category:a,action:e,label:o,value:i,...c}),d&&n(window,this.options.dataLayerName).push({event:t??\"interaction\",target:a,action:e,\"target-properties\":o,value:i,\"interaction-type\":b,...c})}push(t){let a=this.isInBrowserContext()&&(this.options.enabled??!1);this.options.debug&&console.log(`[GTM-Support${a?\"\":\"(disabled)\"}]: Dispatching event`,t),a&&n(window,this.options.dataLayerName).push(t)}};export{m as GTM_ID_PATTERN,u as GtmSupport,s as assertIsGtmId,y as hasScript,p as loadScript};\n//# sourceMappingURL=index.js.map","import{GtmSupport as f,loadScript as m}from\"@gtm-support/core\";import{getCurrentInstance as y,nextTick as G}from\"vue\";import{assertIsGtmId as b,GtmSupport as I,hasScript as k,loadScript as L}from\"@gtm-support/core\";var i;function c(a,t={id:\"\"}){t={trackOnNextTick:!1,...t},i=new f(t),a.config.globalProperties.$gtm=i,i.isInBrowserContext()&&(t.vueRouter&&v(a,t.vueRouter,t.ignoredViews,t.trackOnNextTick,t.vueRouterAdditionalEventData),i.options.enabled&&i.options.loadScript&&(Array.isArray(t.id)?t.id.forEach(r=>{if(typeof r==\"string\")m(r,t);else{let n={...t};r.queryParams!=null&&(n.queryParams={...n.queryParams,...r.queryParams}),m(r.id,n)}}):m(t.id,t))),a.provide(\"gtm\",t)}function v(a,t,r=[],n,g=()=>({})){function p(e,u){return e instanceof Error?!!(e.type&u):!1}t.afterEach(async(e,u,l)=>{if(typeof e.name!=\"string\"||Array.isArray(r)&&r.includes(e.name)||typeof r==\"function\"&&r(e,u))return;let s=e.meta&&typeof e.meta.gtm==\"string\"&&e.meta.gtm?e.meta.gtm:e.name;p(l,4)?i?.debugEnabled()&&console.log(`[VueGtm]: '${s}' not tracked due to navigation aborted`):p(l,8)&&i?.debugEnabled()&&console.log(`[VueGtm]: '${s}' not tracked due to navigation cancelled`);let d={...await g(e,u),...e.meta?.gtmAdditionalEventData},o=t.options?.history?.base??\"\";o.endsWith(\"/\")||(o+=\"/\"),o+=e.fullPath.startsWith(\"/\")?e.fullPath.substring(1):e.fullPath,n?G(()=>{i?.trackView(s,o,d)}):i?.trackView(s,o,d)})}function V(a){return{install:t=>c(t,a)}}var O={install:c};var E=O;function R(){return y()?.appContext?.app?.config?.globalProperties?.$gtm??i}export{f as GtmPlugin,I as GtmSupport,b as assertIsGtmId,V as createGtm,E as default,k as hasScript,L as loadScript,R as useGtm};\n//# sourceMappingURL=index.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occured on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occured. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n//# sourceMappingURL=Errors.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n//# sourceMappingURL=HttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n//# sourceMappingURL=Loggers.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"6.0.25\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, options) {\r\n let headers = {};\r\n if (accessTokenFactory) {\r\n const token = await accessTokenFactory();\r\n if (token) {\r\n headers = {\r\n [\"Authorization\"]: `Bearer ${token}`,\r\n };\r\n }\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n//# sourceMappingURL=Utils.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"Content-Type\": \"text/plain;charset=UTF-8\",\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n//# sourceMappingURL=FetchHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n//# sourceMappingURL=Subject.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n constructor(connection, logger, protocol, reconnectPolicy) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise<void>} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise<void>} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new Error(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult<T>} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise<void>} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise<T>} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n _invokeClientMethod(invocationMessage) {\r\n const methods = this._methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n try {\r\n methods.forEach((m) => m.apply(this, invocationMessage.arguments));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `A callback for the method ${invocationMessage.target.toLowerCase()} threw error '${e}'.`);\r\n }\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n const message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We don't want to wait on the stop itself.\r\n this._stopPromise = this._stopInternal(new Error(message));\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${invocationMessage.target}' found.`);\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new Error(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=HubConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n//# sourceMappingURL=DefaultReconnectPolicy.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n//# sourceMappingURL=HeaderNames.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n//# sourceMappingURL=AbortController.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n constructor(httpClient, accessTokenFactory, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(pollOptions, token);\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _getAccessToken() {\r\n if (this._accessTokenFactory) {\r\n return await this._accessTokenFactory();\r\n }\r\n return null;\r\n }\r\n _updateHeaderToken(request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n return;\r\n }\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n // We have to get the access token on each poll, in case it changes\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(pollOptions, token);\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, this._accessTokenFactory, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n const token = await this._getAccessToken();\r\n this._updateHeaderToken(deleteOptions, token);\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessTokenFactory, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, this._accessTokenFactory, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = `${cookies}`;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError } from \"./Errors\";\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = options.httpClient || new DefaultHttpClient(this._logger);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new Error(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new Error(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */ || this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n throw new Error(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n if (this._accessTokenFactory) {\r\n const token = await this._accessTokenFactory();\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new Error(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// DEFLATE is a complex format; to read this code, you should probably check the RFC first:\n// https://tools.ietf.org/html/rfc1951\n// You may also wish to take a look at the guide I made about this program:\n// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad\n// Some of the following code is similar to that of UZIP.js:\n// https://github.com/photopea/UZIP.js\n// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.\n// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint\n// is better for memory in most engines (I *think*).\nvar ch2 = {};\nvar wk = (function (c, id, msg, transfer, cb) {\n var w = new Worker(ch2[id] || (ch2[id] = URL.createObjectURL(new Blob([\n c + ';addEventListener(\"error\",function(e){e=e.error;postMessage({$e$:[e.message,e.code,e.stack]})})'\n ], { type: 'text/javascript' }))));\n w.onmessage = function (e) {\n var d = e.data, ed = d.$e$;\n if (ed) {\n var err = new Error(ed[0]);\n err['code'] = ed[1];\n err.stack = ed[2];\n cb(err, null);\n }\n else\n cb(null, d);\n };\n w.postMessage(msg, transfer);\n return w;\n});\n\n// aliases for shorter compressed code (most minifers don't do this)\nvar u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;\n// fixed length extra bits\nvar fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\n// fixed distance extra bits\nvar fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\n// code length index map\nvar clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\n// get base, reverse index map from extra bits\nvar freb = function (eb, start) {\n var b = new u16(31);\n for (var i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n var r = new i32(b[30]);\n for (var i = 1; i < 30; ++i) {\n for (var j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return { b: b, r: r };\n};\nvar _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;\n// we can ignore the fact that the other numbers are wrong; they never happen anyway\nfl[28] = 258, revfl[258] = 28;\nvar _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;\n// map of value to reverse (assuming 16 bits)\nvar rev = new u16(32768);\nfor (var i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;\n}\n// create huffman tree from u8 \"map\": index -> code length for code index\n// mb (max bits) must be at most 15\n// TODO: optimize/split up?\nvar hMap = (function (cd, mb, r) {\n var s = cd.length;\n // index\n var i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n var l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n var le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n var co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n var rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n var sv = (i << 4) | cd[i];\n // free bits\n var r_1 = mb - cd[i];\n // start value\n var v = le[cd[i] - 1]++ << r_1;\n // m is end value\n for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\n// fixed length tree\nvar flt = new u8(288);\nfor (var i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (var i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (var i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (var i = 280; i < 288; ++i)\n flt[i] = 8;\n// fixed distance tree\nvar fdt = new u8(32);\nfor (var i = 0; i < 32; ++i)\n fdt[i] = 5;\n// fixed length map\nvar flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);\n// fixed distance map\nvar fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);\n// find max of array\nvar max = function (a) {\n var m = a[0];\n for (var i = 1; i < a.length; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\n// read d, starting at bit p and mask with m\nvar bits = function (d, p, m) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;\n};\n// read d, starting at bit p continuing for at least 16 bits\nvar bits16 = function (d, p) {\n var o = (p / 8) | 0;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));\n};\n// get end of byte\nvar shft = function (p) { return ((p + 7) / 8) | 0; };\n// typed array slice - allows garbage collector to free original reference,\n// while being more compatible than .slice\nvar slc = function (v, s, e) {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n return new u8(v.subarray(s, e));\n};\n/**\n * Codes for errors generated within this library\n */\nexport var FlateErrorCode = {\n UnexpectedEOF: 0,\n InvalidBlockType: 1,\n InvalidLengthLiteral: 2,\n InvalidDistance: 3,\n StreamFinished: 4,\n NoStreamHandler: 5,\n InvalidHeader: 6,\n NoCallback: 7,\n InvalidUTF8: 8,\n ExtraFieldTooLong: 9,\n InvalidDate: 10,\n FilenameTooLong: 11,\n StreamFinishing: 12,\n InvalidZipData: 13,\n UnknownCompressionMethod: 14\n};\n// error codes\nvar ec = [\n 'unexpected EOF',\n 'invalid block type',\n 'invalid length/literal',\n 'invalid distance',\n 'stream finished',\n 'no stream handler',\n ,\n 'no callback',\n 'invalid UTF-8 data',\n 'extra field too long',\n 'date not in range 1980-2099',\n 'filename too long',\n 'stream finishing',\n 'invalid zip data'\n // determined by unknown compression method\n];\n;\nvar err = function (ind, msg, nt) {\n var e = new Error(msg || ec[ind]);\n e.code = ind;\n if (Error.captureStackTrace)\n Error.captureStackTrace(e, err);\n if (!nt)\n throw e;\n return e;\n};\n// expands raw DEFLATE data\nvar inflt = function (dat, st, buf, dict) {\n // source length dict length\n var sl = dat.length, dl = dict ? dict.length : 0;\n if (!sl || st.f && !st.l)\n return buf || new u8(0);\n var noBuf = !buf;\n // have to estimate size\n var resize = noBuf || st.i != 2;\n // no state\n var noSt = st.i;\n // Assumes roughly 33% compression ratio average\n if (noBuf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n var cbuf = function (l) {\n var bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n var nbuf = new u8(Math.max(bl * 2, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n // total bits\n var tbts = sl * 8;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n var type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n err(0);\n break;\n }\n // ensure size\n if (resize)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t * 8, st.f = final;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n var tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n var ldt = new u8(tl);\n // code length tree\n var clt = new u8(19);\n for (var i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n var clb = max(clt), clbmsk = (1 << clb) - 1;\n // code lengths map\n var clm = hMap(clt, clb, 1);\n for (var i = 0; i < tl;) {\n var r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n var s = r >> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n var c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n err(1);\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n }\n // Make sure the buffer can hold this + the largest possible addition\n // Maximum chunk size (practically, theoretically infinite) is 2^17\n if (resize)\n cbuf(bt + 131072);\n var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n var lpos = pos;\n for (;; lpos = pos) {\n // bits read, code\n var c = lm[bits16(dat, pos) & lms], sym = c >> 4;\n pos += c & 15;\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (!c)\n err(2);\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lpos = pos, lm = null;\n break;\n }\n else {\n var add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n var i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;\n if (!d)\n err(3);\n pos += d & 15;\n var dt = fd[dsym];\n if (dsym > 3) {\n var b = fdeb[dsym];\n dt += bits16(dat, pos) & (1 << b) - 1, pos += b;\n }\n if (pos > tbts) {\n if (noSt)\n err(0);\n break;\n }\n if (resize)\n cbuf(bt + 131072);\n var end = bt + add;\n if (bt < dt) {\n var shift = dl - dt, dend = Math.min(dt, end);\n if (shift + bt < 0)\n err(3);\n for (; bt < dend; ++bt)\n buf[bt] = dict[shift + bt];\n }\n for (; bt < end; ++bt)\n buf[bt] = buf[bt - dt];\n }\n }\n st.l = lm, st.p = lpos, st.b = bt, st.f = final;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n // don't reallocate for streams or user buffers\n return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);\n};\n// starting at p, write the minimum number of bits that can hold v to d\nvar wbits = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n};\n// starting at p, write the minimum number of bits (>8) that can hold v to d\nvar wbits16 = function (d, p, v) {\n v <<= p & 7;\n var o = (p / 8) | 0;\n d[o] |= v;\n d[o + 1] |= v >> 8;\n d[o + 2] |= v >> 16;\n};\n// creates code lengths from a frequency table\nvar hTree = function (d, mb) {\n // Need extra info to make a tree\n var t = [];\n for (var i = 0; i < d.length; ++i) {\n if (d[i])\n t.push({ s: i, f: d[i] });\n }\n var s = t.length;\n var t2 = t.slice();\n if (!s)\n return { t: et, l: 0 };\n if (s == 1) {\n var v = new u8(t[0].s + 1);\n v[t[0].s] = 1;\n return { t: v, l: 1 };\n }\n t.sort(function (a, b) { return a.f - b.f; });\n // after i2 reaches last ind, will be stopped\n // freq must be greater than largest possible number of symbols\n t.push({ s: -1, f: 25001 });\n var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;\n t[0] = { s: -1, f: l.f + r.f, l: l, r: r };\n // efficient algorithm from UZIP.js\n // i0 is lookbehind, i2 is lookahead - after processing two low-freq\n // symbols that combined have high freq, will start processing i2 (high-freq,\n // non-composite) symbols instead\n // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/\n while (i1 != s - 1) {\n l = t[t[i0].f < t[i2].f ? i0++ : i2++];\n r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];\n t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };\n }\n var maxSym = t2[0].s;\n for (var i = 1; i < s; ++i) {\n if (t2[i].s > maxSym)\n maxSym = t2[i].s;\n }\n // code lengths\n var tr = new u16(maxSym + 1);\n // max bits in tree\n var mbt = ln(t[i1 - 1], tr, 0);\n if (mbt > mb) {\n // more algorithms from UZIP.js\n // TODO: find out how this code works (debt)\n // ind debt\n var i = 0, dt = 0;\n // left cost\n var lft = mbt - mb, cst = 1 << lft;\n t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });\n for (; i < s; ++i) {\n var i2_1 = t2[i].s;\n if (tr[i2_1] > mb) {\n dt += cst - (1 << (mbt - tr[i2_1]));\n tr[i2_1] = mb;\n }\n else\n break;\n }\n dt >>= lft;\n while (dt > 0) {\n var i2_2 = t2[i].s;\n if (tr[i2_2] < mb)\n dt -= 1 << (mb - tr[i2_2]++ - 1);\n else\n ++i;\n }\n for (; i >= 0 && dt; --i) {\n var i2_3 = t2[i].s;\n if (tr[i2_3] == mb) {\n --tr[i2_3];\n ++dt;\n }\n }\n mbt = mb;\n }\n return { t: new u8(tr), l: mbt };\n};\n// get the max length and assign length codes\nvar ln = function (n, l, d) {\n return n.s == -1\n ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))\n : (l[n.s] = d);\n};\n// length codes generation\nvar lc = function (c) {\n var s = c.length;\n // Note that the semicolon was intentional\n while (s && !c[--s])\n ;\n var cl = new u16(++s);\n // ind num streak\n var cli = 0, cln = c[0], cls = 1;\n var w = function (v) { cl[cli++] = v; };\n for (var i = 1; i <= s; ++i) {\n if (c[i] == cln && i != s)\n ++cls;\n else {\n if (!cln && cls > 2) {\n for (; cls > 138; cls -= 138)\n w(32754);\n if (cls > 2) {\n w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);\n cls = 0;\n }\n }\n else if (cls > 3) {\n w(cln), --cls;\n for (; cls > 6; cls -= 6)\n w(8304);\n if (cls > 2)\n w(((cls - 3) << 5) | 8208), cls = 0;\n }\n while (cls--)\n w(cln);\n cls = 1;\n cln = c[i];\n }\n }\n return { c: cl.subarray(0, cli), n: s };\n};\n// calculate the length of output from tree, code lengths\nvar clen = function (cf, cl) {\n var l = 0;\n for (var i = 0; i < cl.length; ++i)\n l += cf[i] * cl[i];\n return l;\n};\n// writes a fixed block\n// returns the new bit pos\nvar wfblk = function (out, pos, dat) {\n // no need to write 00 as type: TypedArray defaults to 0\n var s = dat.length;\n var o = shft(pos + 2);\n out[o] = s & 255;\n out[o + 1] = s >> 8;\n out[o + 2] = out[o] ^ 255;\n out[o + 3] = out[o + 1] ^ 255;\n for (var i = 0; i < s; ++i)\n out[o + i + 4] = dat[i];\n return (o + 4 + s) * 8;\n};\n// writes a block\nvar wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {\n wbits(out, p++, final);\n ++lf[256];\n var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;\n var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;\n var _c = lc(dlt), lclt = _c.c, nlc = _c.n;\n var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;\n var lcfreq = new u16(19);\n for (var i = 0; i < lclt.length; ++i)\n ++lcfreq[lclt[i] & 31];\n for (var i = 0; i < lcdt.length; ++i)\n ++lcfreq[lcdt[i] & 31];\n var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;\n var nlcc = 19;\n for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)\n ;\n var flen = (bl + 5) << 3;\n var ftlen = clen(lf, flt) + clen(df, fdt) + eb;\n var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];\n if (bs >= 0 && flen <= ftlen && flen <= dtlen)\n return wfblk(out, p, dat.subarray(bs, bs + bl));\n var lm, ll, dm, dl;\n wbits(out, p, 1 + (dtlen < ftlen)), p += 2;\n if (dtlen < ftlen) {\n lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;\n var llm = hMap(lct, mlcb, 0);\n wbits(out, p, nlc - 257);\n wbits(out, p + 5, ndc - 1);\n wbits(out, p + 10, nlcc - 4);\n p += 14;\n for (var i = 0; i < nlcc; ++i)\n wbits(out, p + 3 * i, lct[clim[i]]);\n p += 3 * nlcc;\n var lcts = [lclt, lcdt];\n for (var it = 0; it < 2; ++it) {\n var clct = lcts[it];\n for (var i = 0; i < clct.length; ++i) {\n var len = clct[i] & 31;\n wbits(out, p, llm[len]), p += lct[len];\n if (len > 15)\n wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;\n }\n }\n }\n else {\n lm = flm, ll = flt, dm = fdm, dl = fdt;\n }\n for (var i = 0; i < li; ++i) {\n var sym = syms[i];\n if (sym > 255) {\n var len = (sym >> 18) & 31;\n wbits16(out, p, lm[len + 257]), p += ll[len + 257];\n if (len > 7)\n wbits(out, p, (sym >> 23) & 31), p += fleb[len];\n var dst = sym & 31;\n wbits16(out, p, dm[dst]), p += dl[dst];\n if (dst > 3)\n wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];\n }\n else {\n wbits16(out, p, lm[sym]), p += ll[sym];\n }\n }\n wbits16(out, p, lm[256]);\n return p + ll[256];\n};\n// deflate options (nice << 13) | chain\nvar deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);\n// empty\nvar et = /*#__PURE__*/ new u8(0);\n// compresses data into a raw DEFLATE buffer\nvar dflt = function (dat, lvl, plvl, pre, post, st) {\n var s = st.z || dat.length;\n var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);\n // writing to this writes to the output buffer\n var w = o.subarray(pre, o.length - post);\n var lst = st.l;\n var pos = (st.r || 0) & 7;\n if (lvl) {\n if (pos)\n w[0] = st.r >> 3;\n var opt = deo[lvl - 1];\n var n = opt >> 13, c = opt & 8191;\n var msk_1 = (1 << plvl) - 1;\n // prev 2-byte val map curr 2-byte val map\n var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);\n var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;\n var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };\n // 24576 is an arbitrary number of maximum symbols per block\n // 424 buffer for last block\n var syms = new i32(25000);\n // length/literal freq distance freq\n var lf = new u16(288), df = new u16(32);\n // l/lcnt exbits index l/lind waitdx blkpos\n var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;\n for (; i + 2 < s; ++i) {\n // hash value\n var hv = hsh(i);\n // index mod 32768 previous index mod\n var imod = i & 32767, pimod = head[hv];\n prev[imod] = pimod;\n head[hv] = imod;\n // We always should modify head and prev, but only add symbols if\n // this data is not yet processed (\"wait\" for wait index)\n if (wi <= i) {\n // bytes remaining\n var rem = s - i;\n if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {\n pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);\n li = lc_1 = eb = 0, bs = i;\n for (var j = 0; j < 286; ++j)\n lf[j] = 0;\n for (var j = 0; j < 30; ++j)\n df[j] = 0;\n }\n // len dist chain\n var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;\n if (rem > 2 && hv == hsh(i - dif)) {\n var maxn = Math.min(n, rem) - 1;\n var maxd = Math.min(32767, i);\n // max possible length\n // not capped at dif because decompressors implement \"rolling\" index population\n var ml = Math.min(258, rem);\n while (dif <= maxd && --ch_1 && imod != pimod) {\n if (dat[i + l] == dat[i + l - dif]) {\n var nl = 0;\n for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)\n ;\n if (nl > l) {\n l = nl, d = dif;\n // break out early when we reach \"nice\" (we are satisfied enough)\n if (nl > maxn)\n break;\n // now, find the rarest 2-byte sequence within this\n // length of literals and search for that instead.\n // Much faster than just using the start\n var mmd = Math.min(dif, nl - 2);\n var md = 0;\n for (var j = 0; j < mmd; ++j) {\n var ti = i - dif + j & 32767;\n var pti = prev[ti];\n var cd = ti - pti & 32767;\n if (cd > md)\n md = cd, pimod = ti;\n }\n }\n }\n // check the previous match\n imod = pimod, pimod = prev[imod];\n dif += imod - pimod & 32767;\n }\n }\n // d will be nonzero only when a match was found\n if (d) {\n // store both dist and len data in one int32\n // Make sure this is recognized as a len/dist with 28th bit (2^28)\n syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];\n var lin = revfl[l] & 31, din = revfd[d] & 31;\n eb += fleb[lin] + fdeb[din];\n ++lf[257 + lin];\n ++df[din];\n wi = i + l;\n ++lc_1;\n }\n else {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n }\n }\n for (i = Math.max(i, wi); i < s; ++i) {\n syms[li++] = dat[i];\n ++lf[dat[i]];\n }\n pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);\n if (!lst) {\n st.r = (pos & 7) | w[(pos / 8) | 0] << 3;\n // shft(pos) now 1 less if pos & 7 != 0\n pos -= 7;\n st.h = head, st.p = prev, st.i = i, st.w = wi;\n }\n }\n else {\n for (var i = st.w || 0; i < s + lst; i += 65535) {\n // end\n var e = i + 65535;\n if (e >= s) {\n // write final block\n w[(pos / 8) | 0] = lst;\n e = s;\n }\n pos = wfblk(w, pos + 1, dat.subarray(i, e));\n }\n st.i = s;\n }\n return slc(o, 0, pre + shft(pos) + post);\n};\n// CRC32 table\nvar crct = /*#__PURE__*/ (function () {\n var t = new Int32Array(256);\n for (var i = 0; i < 256; ++i) {\n var c = i, k = 9;\n while (--k)\n c = ((c & 1) && -306674912) ^ (c >>> 1);\n t[i] = c;\n }\n return t;\n})();\n// CRC32\nvar crc = function () {\n var c = -1;\n return {\n p: function (d) {\n // closures have awful performance\n var cr = c;\n for (var i = 0; i < d.length; ++i)\n cr = crct[(cr & 255) ^ d[i]] ^ (cr >>> 8);\n c = cr;\n },\n d: function () { return ~c; }\n };\n};\n// Adler32\nvar adler = function () {\n var a = 1, b = 0;\n return {\n p: function (d) {\n // closures have awful performance\n var n = a, m = b;\n var l = d.length | 0;\n for (var i = 0; i != l;) {\n var e = Math.min(i + 2655, l);\n for (; i < e; ++i)\n m += n += d[i];\n n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);\n }\n a = n, b = m;\n },\n d: function () {\n a %= 65521, b %= 65521;\n return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);\n }\n };\n};\n;\n// deflate with opts\nvar dopt = function (dat, opt, pre, post, st) {\n if (!st) {\n st = { l: 1 };\n if (opt.dictionary) {\n var dict = opt.dictionary.subarray(-32768);\n var newDat = new u8(dict.length + dat.length);\n newDat.set(dict);\n newDat.set(dat, dict.length);\n dat = newDat;\n st.w = dict.length;\n }\n }\n return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);\n};\n// Walmart object spread\nvar mrg = function (a, b) {\n var o = {};\n for (var k in a)\n o[k] = a[k];\n for (var k in b)\n o[k] = b[k];\n return o;\n};\n// worker clone\n// This is possibly the craziest part of the entire codebase, despite how simple it may seem.\n// The only parameter to this function is a closure that returns an array of variables outside of the function scope.\n// We're going to try to figure out the variable names used in the closure as strings because that is crucial for workerization.\n// We will return an object mapping of true variable name to value (basically, the current scope as a JS object).\n// The reason we can't just use the original variable names is minifiers mangling the toplevel scope.\n// This took me three weeks to figure out how to do.\nvar wcln = function (fn, fnStr, td) {\n var dt = fn();\n var st = fn.toString();\n var ks = st.slice(st.indexOf('[') + 1, st.lastIndexOf(']')).replace(/\\s+/g, '').split(',');\n for (var i = 0; i < dt.length; ++i) {\n var v = dt[i], k = ks[i];\n if (typeof v == 'function') {\n fnStr += ';' + k + '=';\n var st_1 = v.toString();\n if (v.prototype) {\n // for global objects\n if (st_1.indexOf('[native code]') != -1) {\n var spInd = st_1.indexOf(' ', 8) + 1;\n fnStr += st_1.slice(spInd, st_1.indexOf('(', spInd));\n }\n else {\n fnStr += st_1;\n for (var t in v.prototype)\n fnStr += ';' + k + '.prototype.' + t + '=' + v.prototype[t].toString();\n }\n }\n else\n fnStr += st_1;\n }\n else\n td[k] = v;\n }\n return fnStr;\n};\nvar ch = [];\n// clone bufs\nvar cbfs = function (v) {\n var tl = [];\n for (var k in v) {\n if (v[k].buffer) {\n tl.push((v[k] = new v[k].constructor(v[k])).buffer);\n }\n }\n return tl;\n};\n// use a worker to execute code\nvar wrkr = function (fns, init, id, cb) {\n if (!ch[id]) {\n var fnStr = '', td_1 = {}, m = fns.length - 1;\n for (var i = 0; i < m; ++i)\n fnStr = wcln(fns[i], fnStr, td_1);\n ch[id] = { c: wcln(fns[m], fnStr, td_1), e: td_1 };\n }\n var td = mrg({}, ch[id].e);\n return wk(ch[id].c + ';onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage=' + init.toString() + '}', id, td, cbfs(td), cb);\n};\n// base async inflate fn\nvar bInflt = function () { return [u8, u16, i32, fleb, fdeb, clim, fl, fd, flrm, fdrm, rev, ec, hMap, max, bits, bits16, shft, slc, err, inflt, inflateSync, pbf, gopt]; };\nvar bDflt = function () { return [u8, u16, i32, fleb, fdeb, clim, revfl, revfd, flm, flt, fdm, fdt, rev, deo, et, hMap, wbits, wbits16, hTree, ln, lc, clen, wfblk, wblk, shft, slc, dflt, dopt, deflateSync, pbf]; };\n// gzip extra\nvar gze = function () { return [gzh, gzhl, wbytes, crc, crct]; };\n// gunzip extra\nvar guze = function () { return [gzs, gzl]; };\n// zlib extra\nvar zle = function () { return [zlh, wbytes, adler]; };\n// unzlib extra\nvar zule = function () { return [zls]; };\n// post buf\nvar pbf = function (msg) { return postMessage(msg, [msg.buffer]); };\n// get opts\nvar gopt = function (o) { return o && {\n out: o.size && new u8(o.size),\n dictionary: o.dictionary\n}; };\n// async helper\nvar cbify = function (dat, opts, fns, init, id, cb) {\n var w = wrkr(fns, init, id, function (err, dat) {\n w.terminate();\n cb(err, dat);\n });\n w.postMessage([dat, opts], opts.consume ? [dat.buffer] : []);\n return function () { w.terminate(); };\n};\n// auto stream\nvar astrm = function (strm) {\n strm.ondata = function (dat, final) { return postMessage([dat, final], [dat.buffer]); };\n return function (ev) {\n if (ev.data.length) {\n strm.push(ev.data[0], ev.data[1]);\n postMessage([ev.data[0].length]);\n }\n else\n strm.flush();\n };\n};\n// async stream attach\nvar astrmify = function (fns, strm, opts, init, id, flush, ext) {\n var t;\n var w = wrkr(fns, init, id, function (err, dat) {\n if (err)\n w.terminate(), strm.ondata.call(strm, err);\n else if (!Array.isArray(dat))\n ext(dat);\n else if (dat.length == 1) {\n strm.queuedSize -= dat[0];\n if (strm.ondrain)\n strm.ondrain(dat[0]);\n }\n else {\n if (dat[1])\n w.terminate();\n strm.ondata.call(strm, err, dat[0], dat[1]);\n }\n });\n w.postMessage(opts);\n strm.queuedSize = 0;\n strm.push = function (d, f) {\n if (!strm.ondata)\n err(5);\n if (t)\n strm.ondata(err(4, 0, 1), null, !!f);\n strm.queuedSize += d.length;\n w.postMessage([d, t = f], [d.buffer]);\n };\n strm.terminate = function () { w.terminate(); };\n if (flush) {\n strm.flush = function () { w.postMessage([]); };\n }\n};\n// read 2 bytes\nvar b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };\n// read 4 bytes\nvar b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };\nvar b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };\n// write bytes\nvar wbytes = function (d, b, v) {\n for (; v; ++b)\n d[b] = v, v >>>= 8;\n};\n// gzip header\nvar gzh = function (c, o) {\n var fn = o.filename;\n c[0] = 31, c[1] = 139, c[2] = 8, c[8] = o.level < 2 ? 4 : o.level == 9 ? 2 : 0, c[9] = 3; // assume Unix\n if (o.mtime != 0)\n wbytes(c, 4, Math.floor(new Date(o.mtime || Date.now()) / 1000));\n if (fn) {\n c[3] = 8;\n for (var i = 0; i <= fn.length; ++i)\n c[i + 10] = fn.charCodeAt(i);\n }\n};\n// gzip footer: -8 to -4 = CRC, -4 to -0 is length\n// gzip start\nvar gzs = function (d) {\n if (d[0] != 31 || d[1] != 139 || d[2] != 8)\n err(6, 'invalid gzip data');\n var flg = d[3];\n var st = 10;\n if (flg & 4)\n st += (d[10] | d[11] << 8) + 2;\n for (var zs = (flg >> 3 & 1) + (flg >> 4 & 1); zs > 0; zs -= !d[st++])\n ;\n return st + (flg & 2);\n};\n// gzip length\nvar gzl = function (d) {\n var l = d.length;\n return (d[l - 4] | d[l - 3] << 8 | d[l - 2] << 16 | d[l - 1] << 24) >>> 0;\n};\n// gzip header length\nvar gzhl = function (o) { return 10 + (o.filename ? o.filename.length + 1 : 0); };\n// zlib header\nvar zlh = function (c, o) {\n var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;\n c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);\n c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;\n if (o.dictionary) {\n var h = adler();\n h.p(o.dictionary);\n wbytes(c, 2, h.d());\n }\n};\n// zlib start\nvar zls = function (d, dict) {\n if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n err(6, 'invalid zlib data');\n if ((d[1] >> 5 & 1) == +!dict)\n err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');\n return (d[1] >> 3 & 4) + 2;\n};\nfunction StrmOpt(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n return opts;\n}\n/**\n * Streaming DEFLATE compression\n */\nvar Deflate = /*#__PURE__*/ (function () {\n function Deflate(opts, cb) {\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n this.o = opts || {};\n this.s = { l: 0, i: 32768, w: 32768, z: 32768 };\n // Buffer length must always be 0 mod 32768 for index calculations to be correct when modifying head and prev\n // 98304 = 32768 (lookback) + 65536 (common chunk size)\n this.b = new u8(98304);\n if (this.o.dictionary) {\n var dict = this.o.dictionary.subarray(-32768);\n this.b.set(dict, 32768 - dict.length);\n this.s.i = 32768 - dict.length;\n }\n }\n Deflate.prototype.p = function (c, f) {\n this.ondata(dopt(c, this.o, 0, 0, this.s), f);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Deflate.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n var endLen = chunk.length + this.s.z;\n if (endLen > this.b.length) {\n if (endLen > 2 * this.b.length - 32768) {\n var newBuf = new u8(endLen & -32768);\n newBuf.set(this.b.subarray(0, this.s.z));\n this.b = newBuf;\n }\n var split = this.b.length - this.s.z;\n this.b.set(chunk.subarray(0, split), this.s.z);\n this.s.z = this.b.length;\n this.p(this.b, false);\n this.b.set(this.b.subarray(-32768));\n this.b.set(chunk.subarray(split), 32768);\n this.s.z = chunk.length - split + 32768;\n this.s.i = 32766, this.s.w = 32768;\n }\n else {\n this.b.set(chunk, this.s.z);\n this.s.z += chunk.length;\n }\n this.s.l = final & 1;\n if (this.s.z > this.s.w + 8191 || final) {\n this.p(this.b, final || false);\n this.s.w = this.s.i, this.s.i -= 2;\n }\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * deflated output for small inputs.\n */\n Deflate.prototype.flush = function () {\n if (!this.ondata)\n err(5);\n if (this.s.l)\n err(4);\n this.p(this.b, false);\n this.s.w = this.s.i, this.s.i -= 2;\n };\n return Deflate;\n}());\nexport { Deflate };\n/**\n * Asynchronous streaming DEFLATE compression\n */\nvar AsyncDeflate = /*#__PURE__*/ (function () {\n function AsyncDeflate(opts, cb) {\n astrmify([\n bDflt,\n function () { return [astrm, Deflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Deflate(ev.data);\n onmessage = astrm(strm);\n }, 6, 1);\n }\n return AsyncDeflate;\n}());\nexport { AsyncDeflate };\nexport function deflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n ], function (ev) { return pbf(deflateSync(ev.data[0], ev.data[1])); }, 0, cb);\n}\n/**\n * Compresses data with DEFLATE without any wrapper\n * @param data The data to compress\n * @param opts The compression options\n * @returns The deflated version of the data\n */\nexport function deflateSync(data, opts) {\n return dopt(data, opts || {}, 0, 0);\n}\n/**\n * Streaming DEFLATE decompression\n */\nvar Inflate = /*#__PURE__*/ (function () {\n function Inflate(opts, cb) {\n // no StrmOpt here to avoid adding to workerizer\n if (typeof opts == 'function')\n cb = opts, opts = {};\n this.ondata = cb;\n var dict = opts && opts.dictionary && opts.dictionary.subarray(-32768);\n this.s = { i: 0, b: dict ? dict.length : 0 };\n this.o = new u8(32768);\n this.p = new u8(0);\n if (dict)\n this.o.set(dict);\n }\n Inflate.prototype.e = function (c) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n if (!this.p.length)\n this.p = c;\n else if (c.length) {\n var n = new u8(this.p.length + c.length);\n n.set(this.p), n.set(c, this.p.length), this.p = n;\n }\n };\n Inflate.prototype.c = function (final) {\n this.s.i = +(this.d = final || false);\n var bts = this.s.b;\n var dt = inflt(this.p, this.s, this.o);\n this.ondata(slc(dt, bts, this.s.b), this.d);\n this.o = slc(dt, this.s.b - 32768), this.s.b = this.o.length;\n this.p = slc(this.p, (this.s.p / 8) | 0), this.s.p &= 7;\n };\n /**\n * Pushes a chunk to be inflated\n * @param chunk The chunk to push\n * @param final Whether this is the final chunk\n */\n Inflate.prototype.push = function (chunk, final) {\n this.e(chunk), this.c(final);\n };\n return Inflate;\n}());\nexport { Inflate };\n/**\n * Asynchronous streaming DEFLATE decompression\n */\nvar AsyncInflate = /*#__PURE__*/ (function () {\n function AsyncInflate(opts, cb) {\n astrmify([\n bInflt,\n function () { return [astrm, Inflate]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Inflate(ev.data);\n onmessage = astrm(strm);\n }, 7, 0);\n }\n return AsyncInflate;\n}());\nexport { AsyncInflate };\nexport function inflate(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt\n ], function (ev) { return pbf(inflateSync(ev.data[0], gopt(ev.data[1]))); }, 1, cb);\n}\n/**\n * Expands DEFLATE data with no wrapper\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function inflateSync(data, opts) {\n return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// before you yell at me for not just using extends, my reason is that TS inheritance is hard to workerize.\n/**\n * Streaming GZIP compression\n */\nvar Gzip = /*#__PURE__*/ (function () {\n function Gzip(opts, cb) {\n this.c = crc();\n this.l = 0;\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gzip.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n this.l += chunk.length;\n Deflate.prototype.push.call(this, chunk, final);\n };\n Gzip.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && gzhl(this.o), f && 8, this.s);\n if (this.v)\n gzh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 8, this.c.d()), wbytes(raw, raw.length - 4, this.l);\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * GZIPped output for small inputs.\n */\n Gzip.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Gzip;\n}());\nexport { Gzip };\n/**\n * Asynchronous streaming GZIP compression\n */\nvar AsyncGzip = /*#__PURE__*/ (function () {\n function AsyncGzip(opts, cb) {\n astrmify([\n bDflt,\n gze,\n function () { return [astrm, Deflate, Gzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gzip(ev.data);\n onmessage = astrm(strm);\n }, 8, 1);\n }\n return AsyncGzip;\n}());\nexport { AsyncGzip };\nexport function gzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n gze,\n function () { return [gzipSync]; }\n ], function (ev) { return pbf(gzipSync(ev.data[0], ev.data[1])); }, 2, cb);\n}\n/**\n * Compresses data with GZIP\n * @param data The data to compress\n * @param opts The compression options\n * @returns The gzipped version of the data\n */\nexport function gzipSync(data, opts) {\n if (!opts)\n opts = {};\n var c = crc(), l = data.length;\n c.p(data);\n var d = dopt(data, opts, gzhl(opts), 8), s = d.length;\n return gzh(d, opts), wbytes(d, s - 8, c.d()), wbytes(d, s - 4, l), d;\n}\n/**\n * Streaming single or multi-member GZIP decompression\n */\nvar Gunzip = /*#__PURE__*/ (function () {\n function Gunzip(opts, cb) {\n this.v = 1;\n this.r = 0;\n Inflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be GUNZIPped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Gunzip.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n this.r += chunk.length;\n if (this.v) {\n var p = this.p.subarray(this.v - 1);\n var s = p.length > 3 ? gzs(p) : 4;\n if (s > p.length) {\n if (!final)\n return;\n }\n else if (this.v > 1 && this.onmember) {\n this.onmember(this.r - p.length);\n }\n this.p = p.subarray(s), this.v = 0;\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n // process concatenated GZIP\n if (this.s.f && !this.s.l && !final) {\n this.v = shft(this.s.p) + 9;\n this.s = { i: 0 };\n this.o = new u8(0);\n this.push(new u8(0), final);\n }\n };\n return Gunzip;\n}());\nexport { Gunzip };\n/**\n * Asynchronous streaming single or multi-member GZIP decompression\n */\nvar AsyncGunzip = /*#__PURE__*/ (function () {\n function AsyncGunzip(opts, cb) {\n var _this = this;\n astrmify([\n bInflt,\n guze,\n function () { return [astrm, Inflate, Gunzip]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Gunzip(ev.data);\n strm.onmember = function (offset) { return postMessage(offset); };\n onmessage = astrm(strm);\n }, 9, 0, function (offset) { return _this.onmember && _this.onmember(offset); });\n }\n return AsyncGunzip;\n}());\nexport { AsyncGunzip };\nexport function gunzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n guze,\n function () { return [gunzipSync]; }\n ], function (ev) { return pbf(gunzipSync(ev.data[0], ev.data[1])); }, 3, cb);\n}\n/**\n * Expands GZIP data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function gunzipSync(data, opts) {\n var st = gzs(data);\n if (st + 8 > data.length)\n err(6, 'invalid gzip data');\n return inflt(data.subarray(st, -8), { i: 2 }, opts && opts.out || new u8(gzl(data)), opts && opts.dictionary);\n}\n/**\n * Streaming Zlib compression\n */\nvar Zlib = /*#__PURE__*/ (function () {\n function Zlib(opts, cb) {\n this.c = adler();\n this.v = 1;\n Deflate.call(this, opts, cb);\n }\n /**\n * Pushes a chunk to be zlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Zlib.prototype.push = function (chunk, final) {\n this.c.p(chunk);\n Deflate.prototype.push.call(this, chunk, final);\n };\n Zlib.prototype.p = function (c, f) {\n var raw = dopt(c, this.o, this.v && (this.o.dictionary ? 6 : 2), f && 4, this.s);\n if (this.v)\n zlh(raw, this.o), this.v = 0;\n if (f)\n wbytes(raw, raw.length - 4, this.c.d());\n this.ondata(raw, f);\n };\n /**\n * Flushes buffered uncompressed data. Useful to immediately retrieve the\n * zlibbed output for small inputs.\n */\n Zlib.prototype.flush = function () {\n Deflate.prototype.flush.call(this);\n };\n return Zlib;\n}());\nexport { Zlib };\n/**\n * Asynchronous streaming Zlib compression\n */\nvar AsyncZlib = /*#__PURE__*/ (function () {\n function AsyncZlib(opts, cb) {\n astrmify([\n bDflt,\n zle,\n function () { return [astrm, Deflate, Zlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Zlib(ev.data);\n onmessage = astrm(strm);\n }, 10, 1);\n }\n return AsyncZlib;\n}());\nexport { AsyncZlib };\nexport function zlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bDflt,\n zle,\n function () { return [zlibSync]; }\n ], function (ev) { return pbf(zlibSync(ev.data[0], ev.data[1])); }, 4, cb);\n}\n/**\n * Compress data with Zlib\n * @param data The data to compress\n * @param opts The compression options\n * @returns The zlib-compressed version of the data\n */\nexport function zlibSync(data, opts) {\n if (!opts)\n opts = {};\n var a = adler();\n a.p(data);\n var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);\n return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;\n}\n/**\n * Streaming Zlib decompression\n */\nvar Unzlib = /*#__PURE__*/ (function () {\n function Unzlib(opts, cb) {\n Inflate.call(this, opts, cb);\n this.v = opts && opts.dictionary ? 2 : 1;\n }\n /**\n * Pushes a chunk to be unzlibbed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzlib.prototype.push = function (chunk, final) {\n Inflate.prototype.e.call(this, chunk);\n if (this.v) {\n if (this.p.length < 6 && !final)\n return;\n this.p = this.p.subarray(zls(this.p, this.v - 1)), this.v = 0;\n }\n if (final) {\n if (this.p.length < 4)\n err(6, 'invalid zlib data');\n this.p = this.p.subarray(0, -4);\n }\n // necessary to prevent TS from using the closure value\n // This allows for workerization to function correctly\n Inflate.prototype.c.call(this, final);\n };\n return Unzlib;\n}());\nexport { Unzlib };\n/**\n * Asynchronous streaming Zlib decompression\n */\nvar AsyncUnzlib = /*#__PURE__*/ (function () {\n function AsyncUnzlib(opts, cb) {\n astrmify([\n bInflt,\n zule,\n function () { return [astrm, Inflate, Unzlib]; }\n ], this, StrmOpt.call(this, opts, cb), function (ev) {\n var strm = new Unzlib(ev.data);\n onmessage = astrm(strm);\n }, 11, 0);\n }\n return AsyncUnzlib;\n}());\nexport { AsyncUnzlib };\nexport function unzlib(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return cbify(data, opts, [\n bInflt,\n zule,\n function () { return [unzlibSync]; }\n ], function (ev) { return pbf(unzlibSync(ev.data[0], gopt(ev.data[1]))); }, 5, cb);\n}\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, opts) {\n return inflt(data.subarray(zls(data, opts && opts.dictionary), -4), { i: 2 }, opts && opts.out, opts && opts.dictionary);\n}\n// Default algorithm for compression (used because having a known output size allows faster decompression)\nexport { gzip as compress, AsyncGzip as AsyncCompress };\nexport { gzipSync as compressSync, Gzip as Compress };\n/**\n * Streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar Decompress = /*#__PURE__*/ (function () {\n function Decompress(opts, cb) {\n this.o = StrmOpt.call(this, opts, cb) || {};\n this.G = Gunzip;\n this.I = Inflate;\n this.Z = Unzlib;\n }\n // init substream\n // overriden by AsyncDecompress\n Decompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (dat, final) {\n _this.ondata(dat, final);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Decompress.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (!this.s) {\n if (this.p && this.p.length) {\n var n = new u8(this.p.length + chunk.length);\n n.set(this.p), n.set(chunk, this.p.length);\n }\n else\n this.p = chunk;\n if (this.p.length > 2) {\n this.s = (this.p[0] == 31 && this.p[1] == 139 && this.p[2] == 8)\n ? new this.G(this.o)\n : ((this.p[0] & 15) != 8 || (this.p[0] >> 4) > 7 || ((this.p[0] << 8 | this.p[1]) % 31))\n ? new this.I(this.o)\n : new this.Z(this.o);\n this.i();\n this.s.push(this.p, final);\n this.p = null;\n }\n }\n else\n this.s.push(chunk, final);\n };\n return Decompress;\n}());\nexport { Decompress };\n/**\n * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression\n */\nvar AsyncDecompress = /*#__PURE__*/ (function () {\n function AsyncDecompress(opts, cb) {\n Decompress.call(this, opts, cb);\n this.queuedSize = 0;\n this.G = AsyncGunzip;\n this.I = AsyncInflate;\n this.Z = AsyncUnzlib;\n }\n AsyncDecompress.prototype.i = function () {\n var _this = this;\n this.s.ondata = function (err, dat, final) {\n _this.ondata(err, dat, final);\n };\n this.s.ondrain = function (size) {\n _this.queuedSize -= size;\n if (_this.ondrain)\n _this.ondrain(size);\n };\n };\n /**\n * Pushes a chunk to be decompressed\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncDecompress.prototype.push = function (chunk, final) {\n this.queuedSize += chunk.length;\n Decompress.prototype.push.call(this, chunk, final);\n };\n return AsyncDecompress;\n}());\nexport { AsyncDecompress };\nexport function decompress(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzip(data, opts, cb)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflate(data, opts, cb)\n : unzlib(data, opts, cb);\n}\n/**\n * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format\n * @param data The data to decompress\n * @param opts The decompression options\n * @returns The decompressed version of the data\n */\nexport function decompressSync(data, opts) {\n return (data[0] == 31 && data[1] == 139 && data[2] == 8)\n ? gunzipSync(data, opts)\n : ((data[0] & 15) != 8 || (data[0] >> 4) > 7 || ((data[0] << 8 | data[1]) % 31))\n ? inflateSync(data, opts)\n : unzlibSync(data, opts);\n}\n// flatten a directory structure\nvar fltn = function (d, p, t, o) {\n for (var k in d) {\n var val = d[k], n = p + k, op = o;\n if (Array.isArray(val))\n op = mrg(o, val[1]), val = val[0];\n if (val instanceof u8)\n t[n] = [val, op];\n else {\n t[n += '/'] = [new u8(0), op];\n fltn(val, n, t, o);\n }\n }\n};\n// text encoder\nvar te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();\n// text decoder\nvar td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();\n// text decoder stream\nvar tds = 0;\ntry {\n td.decode(et, { stream: true });\n tds = 1;\n}\ncatch (e) { }\n// decode UTF8\nvar dutf8 = function (d) {\n for (var r = '', i = 0;;) {\n var c = d[i++];\n var eb = (c > 127) + (c > 223) + (c > 239);\n if (i + eb > d.length)\n return { s: r, r: slc(d, i - 1) };\n if (!eb)\n r += String.fromCharCode(c);\n else if (eb == 3) {\n c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,\n r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));\n }\n else if (eb & 1)\n r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));\n else\n r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));\n }\n};\n/**\n * Streaming UTF-8 decoding\n */\nvar DecodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is decoded\n */\n function DecodeUTF8(cb) {\n this.ondata = cb;\n if (tds)\n this.t = new TextDecoder();\n else\n this.p = et;\n }\n /**\n * Pushes a chunk to be decoded from UTF-8 binary\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n DecodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n final = !!final;\n if (this.t) {\n this.ondata(this.t.decode(chunk, { stream: true }), final);\n if (final) {\n if (this.t.decode().length)\n err(8);\n this.t = null;\n }\n return;\n }\n if (!this.p)\n err(4);\n var dat = new u8(this.p.length + chunk.length);\n dat.set(this.p);\n dat.set(chunk, this.p.length);\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (final) {\n if (r.length)\n err(8);\n this.p = null;\n }\n else\n this.p = r;\n this.ondata(s, final);\n };\n return DecodeUTF8;\n}());\nexport { DecodeUTF8 };\n/**\n * Streaming UTF-8 encoding\n */\nvar EncodeUTF8 = /*#__PURE__*/ (function () {\n /**\n * Creates a UTF-8 decoding stream\n * @param cb The callback to call whenever data is encoded\n */\n function EncodeUTF8(cb) {\n this.ondata = cb;\n }\n /**\n * Pushes a chunk to be encoded to UTF-8\n * @param chunk The string data to push\n * @param final Whether this is the last chunk\n */\n EncodeUTF8.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n if (this.d)\n err(4);\n this.ondata(strToU8(chunk), this.d = final || false);\n };\n return EncodeUTF8;\n}());\nexport { EncodeUTF8 };\n/**\n * Converts a string into a Uint8Array for use with compression/decompression methods\n * @param str The string to encode\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless decoding a binary string.\n * @returns The string encoded in UTF-8/Latin-1 binary\n */\nexport function strToU8(str, latin1) {\n if (latin1) {\n var ar_1 = new u8(str.length);\n for (var i = 0; i < str.length; ++i)\n ar_1[i] = str.charCodeAt(i);\n return ar_1;\n }\n if (te)\n return te.encode(str);\n var l = str.length;\n var ar = new u8(str.length + (str.length >> 1));\n var ai = 0;\n var w = function (v) { ar[ai++] = v; };\n for (var i = 0; i < l; ++i) {\n if (ai + 5 > ar.length) {\n var n = new u8(ai + 8 + ((l - i) << 1));\n n.set(ar);\n ar = n;\n }\n var c = str.charCodeAt(i);\n if (c < 128 || latin1)\n w(c);\n else if (c < 2048)\n w(192 | (c >> 6)), w(128 | (c & 63));\n else if (c > 55295 && c < 57344)\n c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),\n w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n else\n w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));\n }\n return slc(ar, 0, ai);\n}\n/**\n * Converts a Uint8Array to a string\n * @param dat The data to decode to string\n * @param latin1 Whether or not to interpret the data as Latin-1. This should\n * not need to be true unless encoding to binary string.\n * @returns The original UTF-8/Latin-1 string\n */\nexport function strFromU8(dat, latin1) {\n if (latin1) {\n var r = '';\n for (var i = 0; i < dat.length; i += 16384)\n r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));\n return r;\n }\n else if (td) {\n return td.decode(dat);\n }\n else {\n var _a = dutf8(dat), s = _a.s, r = _a.r;\n if (r.length)\n err(8);\n return s;\n }\n}\n;\n// deflate bit flag\nvar dbf = function (l) { return l == 1 ? 3 : l < 6 ? 2 : l == 9 ? 1 : 0; };\n// skip local zip header\nvar slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };\n// read zip header\nvar zh = function (d, b, z) {\n var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);\n var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];\n return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];\n};\n// read zip64 extra field\nvar z64e = function (d, b) {\n for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))\n ;\n return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];\n};\n// extra field length\nvar exfl = function (ex) {\n var le = 0;\n if (ex) {\n for (var k in ex) {\n var l = ex[k].length;\n if (l > 65535)\n err(9);\n le += l + 4;\n }\n }\n return le;\n};\n// write zip header\nvar wzh = function (d, b, f, fn, u, c, ce, co) {\n var fl = fn.length, ex = f.extra, col = co && co.length;\n var exl = exfl(ex);\n wbytes(d, b, ce != null ? 0x2014B50 : 0x4034B50), b += 4;\n if (ce != null)\n d[b++] = 20, d[b++] = f.os;\n d[b] = 20, b += 2; // spec compliance? what's that?\n d[b++] = (f.flag << 1) | (c < 0 && 8), d[b++] = u && 8;\n d[b++] = f.compression & 255, d[b++] = f.compression >> 8;\n var dt = new Date(f.mtime == null ? Date.now() : f.mtime), y = dt.getFullYear() - 1980;\n if (y < 0 || y > 119)\n err(10);\n wbytes(d, b, (y << 25) | ((dt.getMonth() + 1) << 21) | (dt.getDate() << 16) | (dt.getHours() << 11) | (dt.getMinutes() << 5) | (dt.getSeconds() >> 1)), b += 4;\n if (c != -1) {\n wbytes(d, b, f.crc);\n wbytes(d, b + 4, c < 0 ? -c - 2 : c);\n wbytes(d, b + 8, f.size);\n }\n wbytes(d, b + 12, fl);\n wbytes(d, b + 14, exl), b += 16;\n if (ce != null) {\n wbytes(d, b, col);\n wbytes(d, b + 6, f.attrs);\n wbytes(d, b + 10, ce), b += 14;\n }\n d.set(fn, b);\n b += fl;\n if (exl) {\n for (var k in ex) {\n var exf = ex[k], l = exf.length;\n wbytes(d, b, +k);\n wbytes(d, b + 2, l);\n d.set(exf, b + 4), b += 4 + l;\n }\n }\n if (col)\n d.set(co, b), b += col;\n return b;\n};\n// write zip footer (end of central directory)\nvar wzf = function (o, b, c, d, e) {\n wbytes(o, b, 0x6054B50); // skip disk\n wbytes(o, b + 8, c);\n wbytes(o, b + 10, c);\n wbytes(o, b + 12, d);\n wbytes(o, b + 16, e);\n};\n/**\n * A pass-through stream to keep data uncompressed in a ZIP archive.\n */\nvar ZipPassThrough = /*#__PURE__*/ (function () {\n /**\n * Creates a pass-through stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n */\n function ZipPassThrough(filename) {\n this.filename = filename;\n this.c = crc();\n this.size = 0;\n this.compression = 0;\n }\n /**\n * Processes a chunk and pushes to the output stream. You can override this\n * method in a subclass for custom behavior, but by default this passes\n * the data through. You must call this.ondata(err, chunk, final) at some\n * point in this method.\n * @param chunk The chunk to process\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.process = function (chunk, final) {\n this.ondata(null, chunk, final);\n };\n /**\n * Pushes a chunk to be added. If you are subclassing this with a custom\n * compression algorithm, note that you must push data from the source\n * file only, pre-compression.\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipPassThrough.prototype.push = function (chunk, final) {\n if (!this.ondata)\n err(5);\n this.c.p(chunk);\n this.size += chunk.length;\n if (final)\n this.crc = this.c.d();\n this.process(chunk, final || false);\n };\n return ZipPassThrough;\n}());\nexport { ZipPassThrough };\n// I don't extend because TypeScript extension adds 1kB of runtime bloat\n/**\n * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate\n * for better performance\n */\nvar ZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function ZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new Deflate(opts, function (dat, final) {\n _this.ondata(null, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n }\n ZipDeflate.prototype.process = function (chunk, final) {\n try {\n this.d.push(chunk, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n ZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return ZipDeflate;\n}());\nexport { ZipDeflate };\n/**\n * Asynchronous streaming DEFLATE compression for ZIP archives\n */\nvar AsyncZipDeflate = /*#__PURE__*/ (function () {\n /**\n * Creates an asynchronous DEFLATE stream that can be added to ZIP archives\n * @param filename The filename to associate with this data stream\n * @param opts The compression options\n */\n function AsyncZipDeflate(filename, opts) {\n var _this = this;\n if (!opts)\n opts = {};\n ZipPassThrough.call(this, filename);\n this.d = new AsyncDeflate(opts, function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.compression = 8;\n this.flag = dbf(opts.level);\n this.terminate = this.d.terminate;\n }\n AsyncZipDeflate.prototype.process = function (chunk, final) {\n this.d.push(chunk, final);\n };\n /**\n * Pushes a chunk to be deflated\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n AsyncZipDeflate.prototype.push = function (chunk, final) {\n ZipPassThrough.prototype.push.call(this, chunk, final);\n };\n return AsyncZipDeflate;\n}());\nexport { AsyncZipDeflate };\n// TODO: Better tree shaking\n/**\n * A zippable archive to which files can incrementally be added\n */\nvar Zip = /*#__PURE__*/ (function () {\n /**\n * Creates an empty ZIP archive to which files can be added\n * @param cb The callback to call whenever data for the generated ZIP archive\n * is available\n */\n function Zip(cb) {\n this.ondata = cb;\n this.u = [];\n this.d = 1;\n }\n /**\n * Adds a file to the ZIP archive\n * @param file The file stream to add\n */\n Zip.prototype.add = function (file) {\n var _this = this;\n if (!this.ondata)\n err(5);\n // finishing or finished\n if (this.d & 2)\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, false);\n else {\n var f = strToU8(file.filename), fl_1 = f.length;\n var com = file.comment, o = com && strToU8(com);\n var u = fl_1 != file.filename.length || (o && (com.length != o.length));\n var hl_1 = fl_1 + exfl(file.extra) + 30;\n if (fl_1 > 65535)\n this.ondata(err(11, 0, 1), null, false);\n var header = new u8(hl_1);\n wzh(header, 0, file, f, u, -1);\n var chks_1 = [header];\n var pAll_1 = function () {\n for (var _i = 0, chks_2 = chks_1; _i < chks_2.length; _i++) {\n var chk = chks_2[_i];\n _this.ondata(null, chk, false);\n }\n chks_1 = [];\n };\n var tr_1 = this.d;\n this.d = 0;\n var ind_1 = this.u.length;\n var uf_1 = mrg(file, {\n f: f,\n u: u,\n o: o,\n t: function () {\n if (file.terminate)\n file.terminate();\n },\n r: function () {\n pAll_1();\n if (tr_1) {\n var nxt = _this.u[ind_1 + 1];\n if (nxt)\n nxt.r();\n else\n _this.d = 1;\n }\n tr_1 = 1;\n }\n });\n var cl_1 = 0;\n file.ondata = function (err, dat, final) {\n if (err) {\n _this.ondata(err, dat, final);\n _this.terminate();\n }\n else {\n cl_1 += dat.length;\n chks_1.push(dat);\n if (final) {\n var dd = new u8(16);\n wbytes(dd, 0, 0x8074B50);\n wbytes(dd, 4, file.crc);\n wbytes(dd, 8, cl_1);\n wbytes(dd, 12, file.size);\n chks_1.push(dd);\n uf_1.c = cl_1, uf_1.b = hl_1 + cl_1 + 16, uf_1.crc = file.crc, uf_1.size = file.size;\n if (tr_1)\n uf_1.r();\n tr_1 = 1;\n }\n else if (tr_1)\n pAll_1();\n }\n };\n this.u.push(uf_1);\n }\n };\n /**\n * Ends the process of adding files and prepares to emit the final chunks.\n * This *must* be called after adding all desired files for the resulting\n * ZIP file to work properly.\n */\n Zip.prototype.end = function () {\n var _this = this;\n if (this.d & 2) {\n this.ondata(err(4 + (this.d & 1) * 8, 0, 1), null, true);\n return;\n }\n if (this.d)\n this.e();\n else\n this.u.push({\n r: function () {\n if (!(_this.d & 1))\n return;\n _this.u.splice(-1, 1);\n _this.e();\n },\n t: function () { }\n });\n this.d = 3;\n };\n Zip.prototype.e = function () {\n var bt = 0, l = 0, tl = 0;\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n tl += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0);\n }\n var out = new u8(tl + 22);\n for (var _b = 0, _c = this.u; _b < _c.length; _b++) {\n var f = _c[_b];\n wzh(out, bt, f, f.f, f.u, -f.c - 2, l, f.o);\n bt += 46 + f.f.length + exfl(f.extra) + (f.o ? f.o.length : 0), l += f.b;\n }\n wzf(out, bt, this.u.length, tl, l);\n this.ondata(null, out, true);\n this.d = 2;\n };\n /**\n * A method to terminate any internal workers used by the stream. Subsequent\n * calls to add() will fail.\n */\n Zip.prototype.terminate = function () {\n for (var _i = 0, _a = this.u; _i < _a.length; _i++) {\n var f = _a[_i];\n f.t();\n }\n this.d = 2;\n };\n return Zip;\n}());\nexport { Zip };\nexport function zip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var r = {};\n fltn(data, '', r, opts);\n var k = Object.keys(r);\n var lft = k.length, o = 0, tot = 0;\n var slft = lft, files = new Array(lft);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var cbf = function () {\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n tot = 0;\n for (var i = 0; i < slft; ++i) {\n var f = files[i];\n try {\n var l = f.c.length;\n wzh(out, tot, f, f.f, f.u, l);\n var badd = 30 + f.f.length + exfl(f.extra);\n var loc = tot + badd;\n out.set(f.c, loc);\n wzh(out, o, f, f.f, f.u, l, tot, f.m), o += 16 + badd + (f.m ? f.m.length : 0), tot = loc + l;\n }\n catch (e) {\n return cbd(e, null);\n }\n }\n wzf(out, o, files.length, cdl, oe);\n cbd(null, out);\n };\n if (!lft)\n cbf();\n var _loop_1 = function (i) {\n var fn = k[i];\n var _a = r[fn], file = _a[0], p = _a[1];\n var c = crc(), size = file.length;\n c.p(file);\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n var compression = p.level == 0 ? 0 : 8;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n var l = d.length;\n files[i] = mrg(p, {\n size: size,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n compression: compression\n });\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n if (!--lft)\n cbf();\n }\n };\n if (s > 65535)\n cbl(err(11, 0, 1), null);\n if (!compression)\n cbl(null, file);\n else if (size < 160000) {\n try {\n cbl(null, deflateSync(file, p));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(deflate(file, p, cbl));\n };\n // Cannot use lft because it can decrease\n for (var i = 0; i < slft; ++i) {\n _loop_1(i);\n }\n return tAll;\n}\n/**\n * Synchronously creates a ZIP file. Prefer using `zip` for better performance\n * with more than one file.\n * @param data The directory structure for the ZIP archive\n * @param opts The main options, merged with per-file options\n * @returns The generated ZIP archive\n */\nexport function zipSync(data, opts) {\n if (!opts)\n opts = {};\n var r = {};\n var files = [];\n fltn(data, '', r, opts);\n var o = 0;\n var tot = 0;\n for (var fn in r) {\n var _a = r[fn], file = _a[0], p = _a[1];\n var compression = p.level == 0 ? 0 : 8;\n var f = strToU8(fn), s = f.length;\n var com = p.comment, m = com && strToU8(com), ms = m && m.length;\n var exl = exfl(p.extra);\n if (s > 65535)\n err(11);\n var d = compression ? deflateSync(file, p) : file, l = d.length;\n var c = crc();\n c.p(file);\n files.push(mrg(p, {\n size: file.length,\n crc: c.d(),\n c: d,\n f: f,\n m: m,\n u: s != fn.length || (m && (com.length != ms)),\n o: o,\n compression: compression\n }));\n o += 30 + s + exl + l;\n tot += 76 + 2 * (s + exl) + (ms || 0) + l;\n }\n var out = new u8(tot + 22), oe = o, cdl = tot - o;\n for (var i = 0; i < files.length; ++i) {\n var f = files[i];\n wzh(out, f.o, f, f.f, f.u, f.c.length);\n var badd = 30 + f.f.length + exfl(f.extra);\n out.set(f.c, f.o + badd);\n wzh(out, o, f, f.f, f.u, f.c.length, f.o, f.m), o += 16 + badd + (f.m ? f.m.length : 0);\n }\n wzf(out, o, files.length, cdl, oe);\n return out;\n}\n/**\n * Streaming pass-through decompression for ZIP archives\n */\nvar UnzipPassThrough = /*#__PURE__*/ (function () {\n function UnzipPassThrough() {\n }\n UnzipPassThrough.prototype.push = function (data, final) {\n this.ondata(null, data, final);\n };\n UnzipPassThrough.compression = 0;\n return UnzipPassThrough;\n}());\nexport { UnzipPassThrough };\n/**\n * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for\n * better performance.\n */\nvar UnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function UnzipInflate() {\n var _this = this;\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n UnzipInflate.prototype.push = function (data, final) {\n try {\n this.i.push(data, final);\n }\n catch (e) {\n this.ondata(e, null, final);\n }\n };\n UnzipInflate.compression = 8;\n return UnzipInflate;\n}());\nexport { UnzipInflate };\n/**\n * Asynchronous streaming DEFLATE decompression for ZIP archives\n */\nvar AsyncUnzipInflate = /*#__PURE__*/ (function () {\n /**\n * Creates a DEFLATE decompression that can be used in ZIP archives\n */\n function AsyncUnzipInflate(_, sz) {\n var _this = this;\n if (sz < 320000) {\n this.i = new Inflate(function (dat, final) {\n _this.ondata(null, dat, final);\n });\n }\n else {\n this.i = new AsyncInflate(function (err, dat, final) {\n _this.ondata(err, dat, final);\n });\n this.terminate = this.i.terminate;\n }\n }\n AsyncUnzipInflate.prototype.push = function (data, final) {\n if (this.i.terminate)\n data = slc(data, 0);\n this.i.push(data, final);\n };\n AsyncUnzipInflate.compression = 8;\n return AsyncUnzipInflate;\n}());\nexport { AsyncUnzipInflate };\n/**\n * A ZIP archive decompression stream that emits files as they are discovered\n */\nvar Unzip = /*#__PURE__*/ (function () {\n /**\n * Creates a ZIP decompression stream\n * @param cb The callback to call whenever a file in the ZIP archive is found\n */\n function Unzip(cb) {\n this.onfile = cb;\n this.k = [];\n this.o = {\n 0: UnzipPassThrough\n };\n this.p = et;\n }\n /**\n * Pushes a chunk to be unzipped\n * @param chunk The chunk to push\n * @param final Whether this is the last chunk\n */\n Unzip.prototype.push = function (chunk, final) {\n var _this = this;\n if (!this.onfile)\n err(5);\n if (!this.p)\n err(4);\n if (this.c > 0) {\n var len = Math.min(this.c, chunk.length);\n var toAdd = chunk.subarray(0, len);\n this.c -= len;\n if (this.d)\n this.d.push(toAdd, !this.c);\n else\n this.k[0].push(toAdd);\n chunk = chunk.subarray(len);\n if (chunk.length)\n return this.push(chunk, final);\n }\n else {\n var f = 0, i = 0, is = void 0, buf = void 0;\n if (!this.p.length)\n buf = chunk;\n else if (!chunk.length)\n buf = this.p;\n else {\n buf = new u8(this.p.length + chunk.length);\n buf.set(this.p), buf.set(chunk, this.p.length);\n }\n var l = buf.length, oc = this.c, add = oc && this.d;\n var _loop_2 = function () {\n var _a;\n var sig = b4(buf, i);\n if (sig == 0x4034B50) {\n f = 1, is = i;\n this_1.d = null;\n this_1.c = 0;\n var bf = b2(buf, i + 6), cmp_1 = b2(buf, i + 8), u = bf & 2048, dd = bf & 8, fnl = b2(buf, i + 26), es = b2(buf, i + 28);\n if (l > i + 30 + fnl + es) {\n var chks_3 = [];\n this_1.k.unshift(chks_3);\n f = 2;\n var sc_1 = b4(buf, i + 18), su_1 = b4(buf, i + 22);\n var fn_1 = strFromU8(buf.subarray(i + 30, i += 30 + fnl), !u);\n if (sc_1 == 4294967295) {\n _a = dd ? [-2] : z64e(buf, i), sc_1 = _a[0], su_1 = _a[1];\n }\n else if (dd)\n sc_1 = -1;\n i += es;\n this_1.c = sc_1;\n var d_1;\n var file_1 = {\n name: fn_1,\n compression: cmp_1,\n start: function () {\n if (!file_1.ondata)\n err(5);\n if (!sc_1)\n file_1.ondata(null, et, true);\n else {\n var ctr = _this.o[cmp_1];\n if (!ctr)\n file_1.ondata(err(14, 'unknown compression type ' + cmp_1, 1), null, false);\n d_1 = sc_1 < 0 ? new ctr(fn_1) : new ctr(fn_1, sc_1, su_1);\n d_1.ondata = function (err, dat, final) { file_1.ondata(err, dat, final); };\n for (var _i = 0, chks_4 = chks_3; _i < chks_4.length; _i++) {\n var dat = chks_4[_i];\n d_1.push(dat, false);\n }\n if (_this.k[0] == chks_3 && _this.c)\n _this.d = d_1;\n else\n d_1.push(et, true);\n }\n },\n terminate: function () {\n if (d_1 && d_1.terminate)\n d_1.terminate();\n }\n };\n if (sc_1 >= 0)\n file_1.size = sc_1, file_1.originalSize = su_1;\n this_1.onfile(file_1);\n }\n return \"break\";\n }\n else if (oc) {\n if (sig == 0x8074B50) {\n is = i += 12 + (oc == -2 && 8), f = 3, this_1.c = 0;\n return \"break\";\n }\n else if (sig == 0x2014B50) {\n is = i -= 4, f = 3, this_1.c = 0;\n return \"break\";\n }\n }\n };\n var this_1 = this;\n for (; i < l - 4; ++i) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n this.p = et;\n if (oc < 0) {\n var dat = f ? buf.subarray(0, is - 12 - (oc == -2 && 8) - (b4(buf, is - 16) == 0x8074B50 && 4)) : buf.subarray(0, i);\n if (add)\n add.push(dat, !!f);\n else\n this.k[+(f == 2)].push(dat);\n }\n if (f & 2)\n return this.push(buf.subarray(i), final);\n this.p = buf.subarray(i);\n }\n if (final) {\n if (this.c)\n err(13);\n this.p = null;\n }\n };\n /**\n * Registers a decoder with the stream, allowing for files compressed with\n * the compression type provided to be expanded correctly\n * @param decoder The decoder constructor\n */\n Unzip.prototype.register = function (decoder) {\n this.o[decoder.compression] = decoder;\n };\n return Unzip;\n}());\nexport { Unzip };\nvar mt = typeof queueMicrotask == 'function' ? queueMicrotask : typeof setTimeout == 'function' ? setTimeout : function (fn) { fn(); };\nexport function unzip(data, opts, cb) {\n if (!cb)\n cb = opts, opts = {};\n if (typeof cb != 'function')\n err(7);\n var term = [];\n var tAll = function () {\n for (var i = 0; i < term.length; ++i)\n term[i]();\n };\n var files = {};\n var cbd = function (a, b) {\n mt(function () { cb(a, b); });\n };\n mt(function () { cbd = cb; });\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558) {\n cbd(err(13, 0, 1), null);\n return tAll;\n }\n }\n ;\n var lft = b2(data, e + 8);\n if (lft) {\n var c = lft;\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = lft = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n var _loop_3 = function (i) {\n var _a = zh(data, o, z), c_1 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n var cbl = function (e, d) {\n if (e) {\n tAll();\n cbd(e, null);\n }\n else {\n if (d)\n files[fn] = d;\n if (!--lft)\n cbd(null, files);\n }\n };\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_1\n })) {\n if (!c_1)\n cbl(null, slc(data, b, b + sc));\n else if (c_1 == 8) {\n var infl = data.subarray(b, b + sc);\n // Synchronously decompress under 512KB, or barely-compressed data\n if (su < 524288 || sc > 0.8 * su) {\n try {\n cbl(null, inflateSync(infl, { out: new u8(su) }));\n }\n catch (e) {\n cbl(e, null);\n }\n }\n else\n term.push(inflate(infl, { size: su }, cbl));\n }\n else\n cbl(err(14, 'unknown compression type ' + c_1, 1), null);\n }\n else\n cbl(null, null);\n };\n for (var i = 0; i < c; ++i) {\n _loop_3(i);\n }\n }\n else\n cbd(null, {});\n return tAll;\n}\n/**\n * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better\n * performance with more than one file.\n * @param data The raw compressed ZIP file\n * @param opts The ZIP extraction options\n * @returns The decompressed files\n */\nexport function unzipSync(data, opts) {\n var files = {};\n var e = data.length - 22;\n for (; b4(data, e) != 0x6054B50; --e) {\n if (!e || data.length - e > 65558)\n err(13);\n }\n ;\n var c = b2(data, e + 8);\n if (!c)\n return {};\n var o = b4(data, e + 16);\n var z = o == 4294967295 || c == 65535;\n if (z) {\n var ze = b4(data, e - 12);\n z = b4(data, ze) == 0x6064B50;\n if (z) {\n c = b4(data, ze + 32);\n o = b4(data, ze + 48);\n }\n }\n var fltr = opts && opts.filter;\n for (var i = 0; i < c; ++i) {\n var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);\n o = no;\n if (!fltr || fltr({\n name: fn,\n size: sc,\n originalSize: su,\n compression: c_2\n })) {\n if (!c_2)\n files[fn] = slc(data, b, b + sc);\n else if (c_2 == 8)\n files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });\n else\n err(14, 'unknown compression type ' + c_2);\n }\n }\n return files;\n}\n","/** @license\n *\n * jsPDF - PDF Document creation from JavaScript\n * Version 2.5.2 Built on 2024-09-17T13:29:57.859Z\n * CommitID 00000000\n *\n * Copyright (c) 2010-2021 James Hall <james@parall.ax>, https://github.com/MrRio/jsPDF\n * 2015-2021 yWorks GmbH, http://www.yworks.com\n * 2015-2021 Lukas Holländer <lukas.hollaender@yworks.com>, https://github.com/HackbrettXXX\n * 2016-2018 Aras Abbasi <aras.abbasi@gmail.com>\n * 2010 Aaron Spike, https://github.com/acspike\n * 2012 Willow Systems Corporation, https://github.com/willowsystems\n * 2012 Pablo Hess, https://github.com/pablohess\n * 2012 Florian Jenett, https://github.com/fjenett\n * 2013 Warren Weckesser, https://github.com/warrenweckesser\n * 2013 Youssef Beddad, https://github.com/lifof\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2013 Stefan Slonevskiy, https://github.com/stefslon\n * 2013 Jeremy Morel, https://github.com/jmorel\n * 2013 Christoph Hartmann, https://github.com/chris-rock\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Makes, https://github.com/dollaruw\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 Steven Spungin, https://github.com/Flamenco\n * 2014 Kenneth Glassey, https://github.com/Gavvers\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n *\n * Contributor(s):\n * siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,\n * kim3er, mfo, alnorth, Flamenco\n */\n\nimport t from\"@babel/runtime/helpers/typeof\";import{zlibSync as e,unzlibSync as r}from\"fflate\";var n=function(){return\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this}();function i(){n.console&&\"function\"==typeof n.console.log&&n.console.log.apply(n.console,arguments)}var a={log:i,warn:function(t){n.console&&(\"function\"==typeof n.console.warn?n.console.warn.apply(n.console,arguments):i.call(null,arguments))},error:function(t){n.console&&(\"function\"==typeof n.console.error?n.console.error.apply(n.console,arguments):i(t))}};function o(t,e,r){var n=new XMLHttpRequest;n.open(\"GET\",t),n.responseType=\"blob\",n.onload=function(){l(n.response,e,r)},n.onerror=function(){a.error(\"could not download file\")},n.send()}function s(t){var e=new XMLHttpRequest;e.open(\"HEAD\",t,!1);try{e.send()}catch(t){}return e.status>=200&&e.status<=299}function c(t){try{t.dispatchEvent(new MouseEvent(\"click\"))}catch(r){var e=document.createEvent(\"MouseEvents\");e.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var u,h,l=n.saveAs||(\"object\"!==(\"undefined\"==typeof window?\"undefined\":t(window))||window!==n?function(){}:\"undefined\"!=typeof HTMLAnchorElement&&\"download\"in HTMLAnchorElement.prototype?function(t,e,r){var i=n.URL||n.webkitURL,a=document.createElement(\"a\");e=e||t.name||\"download\",a.download=e,a.rel=\"noopener\",\"string\"==typeof t?(a.href=t,a.origin!==location.origin?s(a.href)?o(t,e,r):c(a,a.target=\"_blank\"):c(a)):(a.href=i.createObjectURL(t),setTimeout((function(){i.revokeObjectURL(a.href)}),4e4),setTimeout((function(){c(a)}),0))}:\"msSaveOrOpenBlob\"in navigator?function(e,r,n){if(r=r||e.name||\"download\",\"string\"==typeof e)if(s(e))o(e,r,n);else{var i=document.createElement(\"a\");i.href=e,i.target=\"_blank\",setTimeout((function(){c(i)}))}else navigator.msSaveOrOpenBlob(function(e,r){return void 0===r?r={autoBom:!1}:\"object\"!==t(r)&&(a.warn(\"Deprecated: Expected third argument to be a object\"),r={autoBom:!r}),r.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,n),r)}:function(e,r,i,a){if((a=a||open(\"\",\"_blank\"))&&(a.document.title=a.document.body.innerText=\"downloading...\"),\"string\"==typeof e)return o(e,r,i);var s=\"application/octet-stream\"===e.type,c=/constructor/i.test(n.HTMLElement)||n.safari,u=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((u||s&&c)&&\"object\"===(\"undefined\"==typeof FileReader?\"undefined\":t(FileReader))){var h=new FileReader;h.onloadend=function(){var t=h.result;t=u?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"),a?a.location.href=t:location=t,a=null},h.readAsDataURL(e)}else{var l=n.URL||n.webkitURL,f=l.createObjectURL(e);a?a.location=f:location.href=f,a=null,setTimeout((function(){l.revokeObjectURL(f)}),4e4)}});\n/**\n * A class to parse color values\n * @author Stoyan Stefanov <sstoo@gmail.com>\n * {@link http://www.phpied.com/rgb-color-parser-in-javascript/}\n * @license Use it if you like it\n */function f(t){var e;t=t||\"\",this.ok=!1,\"#\"==t.charAt(0)&&(t=t.substr(1,6));t={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"00ffff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000000\",blanchedalmond:\"ffebcd\",blue:\"0000ff\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"00ffff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dodgerblue:\"1e90ff\",feldspar:\"d19275\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"ff00ff\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgrey:\"d3d3d3\",lightgreen:\"90ee90\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslateblue:\"8470ff\",lightslategray:\"778899\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"00ff00\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"ff00ff\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370d8\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"d87093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",red:\"ff0000\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",violetred:\"d02090\",wheat:\"f5deb3\",white:\"ffffff\",whitesmoke:\"f5f5f5\",yellow:\"ffff00\",yellowgreen:\"9acd32\"}[t=(t=t.replace(/ /g,\"\")).toLowerCase()]||t;for(var r=[{re:/^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,example:[\"rgb(123, 234, 45)\",\"rgb(255,234,245)\"],process:function(t){return[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]}},{re:/^(\\w{2})(\\w{2})(\\w{2})$/,example:[\"#00ff00\",\"336699\"],process:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/^(\\w{1})(\\w{1})(\\w{1})$/,example:[\"#fb0\",\"f0f\"],process:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}}],n=0;n<r.length;n++){var i=r[n].re,a=r[n].process,o=i.exec(t);o&&(e=a(o),this.r=e[0],this.g=e[1],this.b=e[2],this.ok=!0)}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.toRGB=function(){return\"rgb(\"+this.r+\", \"+this.g+\", \"+this.b+\")\"},this.toHex=function(){var t=this.r.toString(16),e=this.g.toString(16),r=this.b.toString(16);return 1==t.length&&(t=\"0\"+t),1==e.length&&(e=\"0\"+e),1==r.length&&(r=\"0\"+r),\"#\"+t+e+r}}\n/**\n * @license\n * Joseph Myers does not specify a particular license for his work.\n *\n * Author: Joseph Myers\n * Accessed from: http://www.myersdaily.org/joseph/javascript/md5.js\n *\n * Modified by: Owen Leong\n */\nfunction d(t,e){var r=t[0],n=t[1],i=t[2],a=t[3];r=g(r,n,i,a,e[0],7,-680876936),a=g(a,r,n,i,e[1],12,-389564586),i=g(i,a,r,n,e[2],17,606105819),n=g(n,i,a,r,e[3],22,-1044525330),r=g(r,n,i,a,e[4],7,-176418897),a=g(a,r,n,i,e[5],12,1200080426),i=g(i,a,r,n,e[6],17,-1473231341),n=g(n,i,a,r,e[7],22,-45705983),r=g(r,n,i,a,e[8],7,1770035416),a=g(a,r,n,i,e[9],12,-1958414417),i=g(i,a,r,n,e[10],17,-42063),n=g(n,i,a,r,e[11],22,-1990404162),r=g(r,n,i,a,e[12],7,1804603682),a=g(a,r,n,i,e[13],12,-40341101),i=g(i,a,r,n,e[14],17,-1502002290),r=m(r,n=g(n,i,a,r,e[15],22,1236535329),i,a,e[1],5,-165796510),a=m(a,r,n,i,e[6],9,-1069501632),i=m(i,a,r,n,e[11],14,643717713),n=m(n,i,a,r,e[0],20,-373897302),r=m(r,n,i,a,e[5],5,-701558691),a=m(a,r,n,i,e[10],9,38016083),i=m(i,a,r,n,e[15],14,-660478335),n=m(n,i,a,r,e[4],20,-405537848),r=m(r,n,i,a,e[9],5,568446438),a=m(a,r,n,i,e[14],9,-1019803690),i=m(i,a,r,n,e[3],14,-187363961),n=m(n,i,a,r,e[8],20,1163531501),r=m(r,n,i,a,e[13],5,-1444681467),a=m(a,r,n,i,e[2],9,-51403784),i=m(i,a,r,n,e[7],14,1735328473),r=v(r,n=m(n,i,a,r,e[12],20,-1926607734),i,a,e[5],4,-378558),a=v(a,r,n,i,e[8],11,-2022574463),i=v(i,a,r,n,e[11],16,1839030562),n=v(n,i,a,r,e[14],23,-35309556),r=v(r,n,i,a,e[1],4,-1530992060),a=v(a,r,n,i,e[4],11,1272893353),i=v(i,a,r,n,e[7],16,-155497632),n=v(n,i,a,r,e[10],23,-1094730640),r=v(r,n,i,a,e[13],4,681279174),a=v(a,r,n,i,e[0],11,-358537222),i=v(i,a,r,n,e[3],16,-722521979),n=v(n,i,a,r,e[6],23,76029189),r=v(r,n,i,a,e[9],4,-640364487),a=v(a,r,n,i,e[12],11,-421815835),i=v(i,a,r,n,e[15],16,530742520),r=b(r,n=v(n,i,a,r,e[2],23,-995338651),i,a,e[0],6,-198630844),a=b(a,r,n,i,e[7],10,1126891415),i=b(i,a,r,n,e[14],15,-1416354905),n=b(n,i,a,r,e[5],21,-57434055),r=b(r,n,i,a,e[12],6,1700485571),a=b(a,r,n,i,e[3],10,-1894986606),i=b(i,a,r,n,e[10],15,-1051523),n=b(n,i,a,r,e[1],21,-2054922799),r=b(r,n,i,a,e[8],6,1873313359),a=b(a,r,n,i,e[15],10,-30611744),i=b(i,a,r,n,e[6],15,-1560198380),n=b(n,i,a,r,e[13],21,1309151649),r=b(r,n,i,a,e[4],6,-145523070),a=b(a,r,n,i,e[11],10,-1120210379),i=b(i,a,r,n,e[2],15,718787259),n=b(n,i,a,r,e[9],21,-343485551),t[0]=_(r,t[0]),t[1]=_(n,t[1]),t[2]=_(i,t[2]),t[3]=_(a,t[3])}function p(t,e,r,n,i,a){return e=_(_(e,t),_(n,a)),_(e<<i|e>>>32-i,r)}function g(t,e,r,n,i,a,o){return p(e&r|~e&n,t,e,i,a,o)}function m(t,e,r,n,i,a,o){return p(e&n|r&~n,t,e,i,a,o)}function v(t,e,r,n,i,a,o){return p(e^r^n,t,e,i,a,o)}function b(t,e,r,n,i,a,o){return p(r^(e|~n),t,e,i,a,o)}function y(t){var e,r=t.length,n=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=t.length;e+=64)d(n,w(t.substring(e-64,e)));t=t.substring(e-64);var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(e=0;e<t.length;e++)i[e>>2]|=t.charCodeAt(e)<<(e%4<<3);if(i[e>>2]|=128<<(e%4<<3),e>55)for(d(n,i),e=0;e<16;e++)i[e]=0;return i[14]=8*r,d(n,i),n}function w(t){var e,r=[];for(e=0;e<64;e+=4)r[e>>2]=t.charCodeAt(e)+(t.charCodeAt(e+1)<<8)+(t.charCodeAt(e+2)<<16)+(t.charCodeAt(e+3)<<24);return r}u=n.atob.bind(n),h=n.btoa.bind(n);var N=\"0123456789abcdef\".split(\"\");function L(t){for(var e=\"\",r=0;r<4;r++)e+=N[t>>8*r+4&15]+N[t>>8*r&15];return e}function A(t){return String.fromCharCode((255&t)>>0,(65280&t)>>8,(16711680&t)>>16,(4278190080&t)>>24)}function x(t){return y(t).map(A).join(\"\")}var S=\"5d41402abc4b2a76b9719d911017c592\"!=function(t){for(var e=0;e<t.length;e++)t[e]=L(t[e]);return t.join(\"\")}(y(\"hello\"));function _(t,e){if(S){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}return t+e&4294967295}\n/**\n * @license\n * FPDF is released under a permissive license: there is no usage restriction.\n * You may embed it freely in your application (commercial or not), with or\n * without modifications.\n *\n * Reference: http://www.fpdf.org/en/script/script37.php\n */function P(t,e){var r,n,i,a;if(t!==r){for(var o=(i=t,a=1+(256/t.length>>0),new Array(a+1).join(i)),s=[],c=0;c<256;c++)s[c]=c;var u=0;for(c=0;c<256;c++){var h=s[c];u=(u+h+o.charCodeAt(c))%256,s[c]=s[u],s[u]=h}r=t,n=s}else s=n;var l=e.length,f=0,d=0,p=\"\";for(c=0;c<l;c++)d=(d+(h=s[f=(f+1)%256]))%256,s[f]=s[d],s[d]=h,o=s[(s[f]+s[d])%256],p+=String.fromCharCode(e.charCodeAt(c)^o);return p}\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n * Author: Owen Leong (@owenl131)\n * Date: 15 Oct 2020\n * References:\n * https://www.cs.cmu.edu/~dst/Adobe/Gallery/anon21jul01-pdf-encryption.txt\n * https://github.com/foliojs/pdfkit/blob/master/lib/security.js\n * http://www.fpdf.org/en/script/script37.php\n */var k={print:4,modify:8,copy:16,\"annot-forms\":32};function I(t,e,r,n){this.v=1,this.r=2;var i=192;t.forEach((function(t){if(void 0!==k.perm)throw new Error(\"Invalid permission: \"+t);i+=k[t]})),this.padding=\"(¿N^NuŠAd\\0NVÿú\u0001\\b..\\0¶Ãh>€/\\f©þdSiz\";var a=(e+this.padding).substr(0,32),o=(r+this.padding).substr(0,32);this.O=this.processOwnerPassword(a,o),this.P=-(1+(255^i)),this.encryptionKey=x(a+this.O+this.lsbFirstWord(this.P)+this.hexToBytes(n)).substr(0,5),this.U=P(this.encryptionKey,this.padding)}function F(t){if(/[^\\u0000-\\u00ff]/.test(t))throw new Error(\"Invalid PDF Name Object: \"+t+\", Only accept ASCII characters.\");for(var e=\"\",r=t.length,n=0;n<r;n++){var i=t.charCodeAt(n);if(i<33||35===i||37===i||40===i||41===i||47===i||60===i||62===i||91===i||93===i||123===i||125===i||i>126)e+=\"#\"+(\"0\"+i.toString(16)).slice(-2);else e+=t[n]}return e}function C(e){if(\"object\"!==t(e))throw new Error(\"Invalid Context passed to initialize PubSub (jsPDF-module)\");var r={};this.subscribe=function(t,e,n){if(n=n||!1,\"string\"!=typeof t||\"function\"!=typeof e||\"boolean\"!=typeof n)throw new Error(\"Invalid arguments passed to PubSub.subscribe (jsPDF-module)\");r.hasOwnProperty(t)||(r[t]={});var i=Math.random().toString(35);return r[t][i]=[e,!!n],i},this.unsubscribe=function(t){for(var e in r)if(r[e][t])return delete r[e][t],0===Object.keys(r[e]).length&&delete r[e],!0;return!1},this.publish=function(t){if(r.hasOwnProperty(t)){var i=Array.prototype.slice.call(arguments,1),o=[];for(var s in r[t]){var c=r[t][s];try{c[0].apply(e,i)}catch(t){n.console&&a.error(\"jsPDF PubSub Error\",t.message,t)}c[1]&&o.push(s)}o.length&&o.forEach(this.unsubscribe)}},this.getTopics=function(){return r}}function j(t){if(!(this instanceof j))return new j(t);var e=\"opacity,stroke-opacity\".split(\",\");for(var r in t)t.hasOwnProperty(r)&&e.indexOf(r)>=0&&(this[r]=t[r]);this.id=\"\",this.objectNumber=-1}function O(t,e){this.gState=t,this.matrix=e,this.id=\"\",this.objectNumber=-1}function B(t,e,r,n,i){if(!(this instanceof B))return new B(t,e,r,n,i);this.type=\"axial\"===t?2:3,this.coords=e,this.colors=r,O.call(this,n,i)}function M(t,e,r,n,i){if(!(this instanceof M))return new M(t,e,r,n,i);this.boundingBox=t,this.xStep=e,this.yStep=r,this.stream=\"\",this.cloneIndex=0,O.call(this,n,i)}function E(e){var r,i=\"string\"==typeof arguments[0]?arguments[0]:\"p\",o=arguments[1],s=arguments[2],c=arguments[3],u=[],d=1,p=16,g=\"S\",m=null;\"object\"===t(e=e||{})&&(i=e.orientation,o=e.unit||o,s=e.format||s,c=e.compress||e.compressPdf||c,null!==(m=e.encryption||null)&&(m.userPassword=m.userPassword||\"\",m.ownerPassword=m.ownerPassword||\"\",m.userPermissions=m.userPermissions||[]),d=\"number\"==typeof e.userUnit?Math.abs(e.userUnit):1,void 0!==e.precision&&(r=e.precision),void 0!==e.floatPrecision&&(p=e.floatPrecision),g=e.defaultPathOperation||\"S\"),u=e.filters||(!0===c?[\"FlateEncode\"]:u),o=o||\"mm\",i=(\"\"+(i||\"P\")).toLowerCase();var v=e.putOnlyUsedFonts||!1,b={},y={internal:{},__private__:{}};y.__private__.PubSub=C;var w=\"1.3\",N=y.__private__.getPdfVersion=function(){return w};y.__private__.setPdfVersion=function(t){w=t};var L={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};y.__private__.getPageFormats=function(){return L};var A=y.__private__.getPageFormat=function(t){return L[t]};s=s||\"a4\";var x={COMPAT:\"compat\",ADVANCED:\"advanced\"},S=x.COMPAT;function _(){this.saveGraphicsState(),lt(new Vt(_t,0,0,-_t,0,Rr()*_t).toString()+\" cm\"),this.setFontSize(this.getFontSize()/_t),g=\"n\",S=x.ADVANCED}function P(){this.restoreGraphicsState(),g=\"S\",S=x.COMPAT}var k=y.__private__.combineFontStyleAndFontWeight=function(t,e){if(\"bold\"==t&&\"normal\"==e||\"bold\"==t&&400==e||\"normal\"==t&&\"italic\"==e||\"bold\"==t&&\"italic\"==e)throw new Error(\"Invalid Combination of fontweight and fontstyle\");return e&&(t=400==e||\"normal\"===e?\"italic\"===t?\"italic\":\"normal\":700!=e&&\"bold\"!==e||\"normal\"!==t?(700==e?\"bold\":e)+\"\"+t:\"bold\"),t};y.advancedAPI=function(t){var e=S===x.COMPAT;return e&&_.call(this),\"function\"!=typeof t||(t(this),e&&P.call(this)),this},y.compatAPI=function(t){var e=S===x.ADVANCED;return e&&P.call(this),\"function\"!=typeof t||(t(this),e&&_.call(this)),this},y.isAdvancedAPI=function(){return S===x.ADVANCED};var O,q=function(t){if(S!==x.ADVANCED)throw new Error(t+\" is only available in 'advanced' API mode. You need to call advancedAPI() first.\")},D=y.roundToPrecision=y.__private__.roundToPrecision=function(t,e){var n=r||e;if(isNaN(t)||isNaN(n))throw new Error(\"Invalid argument passed to jsPDF.roundToPrecision\");return t.toFixed(n).replace(/0+$/,\"\")};O=y.hpf=y.__private__.hpf=\"number\"==typeof p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,p)}:\"smart\"===p?function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,t>-1&&t<1?16:5)}:function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.hpf\");return D(t,16)};var R=y.f2=y.__private__.f2=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f2\");return D(t,2)},T=y.__private__.f3=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.f3\");return D(t,3)},U=y.scale=y.__private__.scale=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.scale\");return S===x.COMPAT?t*_t:S===x.ADVANCED?t:void 0},z=function(t){return S===x.COMPAT?Rr()-t:S===x.ADVANCED?t:void 0},H=function(t){return U(z(t))};y.__private__.setPrecision=y.setPrecision=function(t){\"number\"==typeof parseInt(t,10)&&(r=parseInt(t,10))};var W,V=\"00000000000000000000000000000000\",G=y.__private__.getFileId=function(){return V},Y=y.__private__.setFileId=function(t){return V=void 0!==t&&/^[a-fA-F0-9]{32}$/.test(t)?t.toUpperCase():V.split(\"\").map((function(){return\"ABCDEF0123456789\".charAt(Math.floor(16*Math.random()))})).join(\"\"),null!==m&&(Ye=new I(m.userPermissions,m.userPassword,m.ownerPassword,V)),V};y.setFileId=function(t){return Y(t),this},y.getFileId=function(){return G()};var J=y.__private__.convertDateToPDFDate=function(t){var e=t.getTimezoneOffset(),r=e<0?\"+\":\"-\",n=Math.floor(Math.abs(e/60)),i=Math.abs(e%60),a=[r,Q(n),\"'\",Q(i),\"'\"].join(\"\");return[\"D:\",t.getFullYear(),Q(t.getMonth()+1),Q(t.getDate()),Q(t.getHours()),Q(t.getMinutes()),Q(t.getSeconds()),a].join(\"\")},X=y.__private__.convertPDFDateToDate=function(t){var e=parseInt(t.substr(2,4),10),r=parseInt(t.substr(6,2),10)-1,n=parseInt(t.substr(8,2),10),i=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),o=parseInt(t.substr(14,2),10);return new Date(e,r,n,i,a,o,0)},K=y.__private__.setCreationDate=function(t){var e;if(void 0===t&&(t=new Date),t instanceof Date)e=J(t);else{if(!/^D:(20[0-2][0-9]|203[0-7]|19[7-9][0-9])(0[0-9]|1[0-2])([0-2][0-9]|3[0-1])(0[0-9]|1[0-9]|2[0-3])(0[0-9]|[1-5][0-9])(0[0-9]|[1-5][0-9])(\\+0[0-9]|\\+1[0-4]|-0[0-9]|-1[0-1])'(0[0-9]|[1-5][0-9])'?$/.test(t))throw new Error(\"Invalid argument passed to jsPDF.setCreationDate\");e=t}return W=e},Z=y.__private__.getCreationDate=function(t){var e=W;return\"jsDate\"===t&&(e=X(W)),e};y.setCreationDate=function(t){return K(t),this},y.getCreationDate=function(t){return Z(t)};var $,Q=y.__private__.padd2=function(t){return(\"0\"+parseInt(t)).slice(-2)},tt=y.__private__.padd2Hex=function(t){return(\"00\"+(t=t.toString())).substr(t.length)},et=0,rt=[],nt=[],it=0,at=[],ot=[],st=!1,ct=nt,ut=function(){et=0,it=0,nt=[],rt=[],at=[],Qt=Kt(),te=Kt()};y.__private__.setCustomOutputDestination=function(t){st=!0,ct=t};var ht=function(t){st||(ct=t)};y.__private__.resetCustomOutputDestination=function(){st=!1,ct=nt};var lt=y.__private__.out=function(t){return t=t.toString(),it+=t.length+1,ct.push(t),ct},ft=y.__private__.write=function(t){return lt(1===arguments.length?t.toString():Array.prototype.join.call(arguments,\" \"))},dt=y.__private__.getArrayBuffer=function(t){for(var e=t.length,r=new ArrayBuffer(e),n=new Uint8Array(r);e--;)n[e]=t.charCodeAt(e);return r},pt=[[\"Helvetica\",\"helvetica\",\"normal\",\"WinAnsiEncoding\"],[\"Helvetica-Bold\",\"helvetica\",\"bold\",\"WinAnsiEncoding\"],[\"Helvetica-Oblique\",\"helvetica\",\"italic\",\"WinAnsiEncoding\"],[\"Helvetica-BoldOblique\",\"helvetica\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Courier\",\"courier\",\"normal\",\"WinAnsiEncoding\"],[\"Courier-Bold\",\"courier\",\"bold\",\"WinAnsiEncoding\"],[\"Courier-Oblique\",\"courier\",\"italic\",\"WinAnsiEncoding\"],[\"Courier-BoldOblique\",\"courier\",\"bolditalic\",\"WinAnsiEncoding\"],[\"Times-Roman\",\"times\",\"normal\",\"WinAnsiEncoding\"],[\"Times-Bold\",\"times\",\"bold\",\"WinAnsiEncoding\"],[\"Times-Italic\",\"times\",\"italic\",\"WinAnsiEncoding\"],[\"Times-BoldItalic\",\"times\",\"bolditalic\",\"WinAnsiEncoding\"],[\"ZapfDingbats\",\"zapfdingbats\",\"normal\",null],[\"Symbol\",\"symbol\",\"normal\",null]];y.__private__.getStandardFonts=function(){return pt};var gt=e.fontSize||16;y.__private__.setFontSize=y.setFontSize=function(t){return gt=S===x.ADVANCED?t/_t:t,this};var mt,vt=y.__private__.getFontSize=y.getFontSize=function(){return S===x.COMPAT?gt:gt*_t},bt=e.R2L||!1;y.__private__.setR2L=y.setR2L=function(t){return bt=t,this},y.__private__.getR2L=y.getR2L=function(){return bt};var yt,wt=y.__private__.setZoomMode=function(t){var e=[void 0,null,\"fullwidth\",\"fullheight\",\"fullpage\",\"original\"];if(/^(?:\\d+\\.\\d*|\\d*\\.\\d+|\\d+)%$/.test(t))mt=t;else if(isNaN(t)){if(-1===e.indexOf(t))throw new Error('zoom must be Integer (e.g. 2), a percentage Value (e.g. 300%) or fullwidth, fullheight, fullpage, original. \"'+t+'\" is not recognized.');mt=t}else mt=parseInt(t,10)};y.__private__.getZoomMode=function(){return mt};var Nt,Lt=y.__private__.setPageMode=function(t){if(-1==[void 0,null,\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"FullScreen\"].indexOf(t))throw new Error('Page mode must be one of UseNone, UseOutlines, UseThumbs, or FullScreen. \"'+t+'\" is not recognized.');yt=t};y.__private__.getPageMode=function(){return yt};var At=y.__private__.setLayoutMode=function(t){if(-1==[void 0,null,\"continuous\",\"single\",\"twoleft\",\"tworight\",\"two\"].indexOf(t))throw new Error('Layout mode must be one of continuous, single, twoleft, tworight. \"'+t+'\" is not recognized.');Nt=t};y.__private__.getLayoutMode=function(){return Nt},y.__private__.setDisplayMode=y.setDisplayMode=function(t,e,r){return wt(t),At(e),Lt(r),this};var xt={title:\"\",subject:\"\",author:\"\",keywords:\"\",creator:\"\"};y.__private__.getDocumentProperty=function(t){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid argument passed to jsPDF.getDocumentProperty\");return xt[t]},y.__private__.getDocumentProperties=function(){return xt},y.__private__.setDocumentProperties=y.setProperties=y.setDocumentProperties=function(t){for(var e in xt)xt.hasOwnProperty(e)&&t[e]&&(xt[e]=t[e]);return this},y.__private__.setDocumentProperty=function(t,e){if(-1===Object.keys(xt).indexOf(t))throw new Error(\"Invalid arguments passed to jsPDF.setDocumentProperty\");return xt[t]=e};var St,_t,Pt,kt,It,Ft={},Ct={},jt=[],Ot={},Bt={},Mt={},Et={},qt=null,Dt=0,Rt=[],Tt=new C(y),Ut=e.hotfixes||[],zt={},Ht={},Wt=[],Vt=function t(e,r,n,i,a,o){if(!(this instanceof t))return new t(e,r,n,i,a,o);isNaN(e)&&(e=1),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=1),isNaN(a)&&(a=0),isNaN(o)&&(o=0),this._matrix=[e,r,n,i,a,o]};Object.defineProperty(Vt.prototype,\"sx\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"shy\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"shx\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"sy\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"tx\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"ty\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"a\",{get:function(){return this._matrix[0]},set:function(t){this._matrix[0]=t}}),Object.defineProperty(Vt.prototype,\"b\",{get:function(){return this._matrix[1]},set:function(t){this._matrix[1]=t}}),Object.defineProperty(Vt.prototype,\"c\",{get:function(){return this._matrix[2]},set:function(t){this._matrix[2]=t}}),Object.defineProperty(Vt.prototype,\"d\",{get:function(){return this._matrix[3]},set:function(t){this._matrix[3]=t}}),Object.defineProperty(Vt.prototype,\"e\",{get:function(){return this._matrix[4]},set:function(t){this._matrix[4]=t}}),Object.defineProperty(Vt.prototype,\"f\",{get:function(){return this._matrix[5]},set:function(t){this._matrix[5]=t}}),Object.defineProperty(Vt.prototype,\"rotation\",{get:function(){return Math.atan2(this.shx,this.sx)}}),Object.defineProperty(Vt.prototype,\"scaleX\",{get:function(){return this.decompose().scale.sx}}),Object.defineProperty(Vt.prototype,\"scaleY\",{get:function(){return this.decompose().scale.sy}}),Object.defineProperty(Vt.prototype,\"isIdentity\",{get:function(){return 1===this.sx&&(0===this.shy&&(0===this.shx&&(1===this.sy&&(0===this.tx&&0===this.ty))))}}),Vt.prototype.join=function(t){return[this.sx,this.shy,this.shx,this.sy,this.tx,this.ty].map(O).join(t)},Vt.prototype.multiply=function(t){var e=t.sx*this.sx+t.shy*this.shx,r=t.sx*this.shy+t.shy*this.sy,n=t.shx*this.sx+t.sy*this.shx,i=t.shx*this.shy+t.sy*this.sy,a=t.tx*this.sx+t.ty*this.shx+this.tx,o=t.tx*this.shy+t.ty*this.sy+this.ty;return new Vt(e,r,n,i,a,o)},Vt.prototype.decompose=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=Math.sqrt(t*t+e*e),s=(t/=o)*r+(e/=o)*n;r-=t*s,n-=e*s;var c=Math.sqrt(r*r+n*n);return s/=c,t*(n/=c)<e*(r/=c)&&(t=-t,e=-e,s=-s,o=-o),{scale:new Vt(o,0,0,c,0,0),translate:new Vt(1,0,0,1,i,a),rotate:new Vt(t,e,-e,t,0,0),skew:new Vt(1,0,s,1,0,0)}},Vt.prototype.toString=function(t){return this.join(\" \")},Vt.prototype.inversed=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty,o=1/(t*n-e*r),s=n*o,c=-e*o,u=-r*o,h=t*o;return new Vt(s,c,u,h,-s*i-u*a,-c*i-h*a)},Vt.prototype.applyToPoint=function(t){var e=t.x*this.sx+t.y*this.shx+this.tx,r=t.x*this.shy+t.y*this.sy+this.ty;return new Cr(e,r)},Vt.prototype.applyToRectangle=function(t){var e=this.applyToPoint(t),r=this.applyToPoint(new Cr(t.x+t.w,t.y+t.h));return new jr(e.x,e.y,r.x-e.x,r.y-e.y)},Vt.prototype.clone=function(){var t=this.sx,e=this.shy,r=this.shx,n=this.sy,i=this.tx,a=this.ty;return new Vt(t,e,r,n,i,a)},y.Matrix=Vt;var Gt=y.matrixMult=function(t,e){return e.multiply(t)},Yt=new Vt(1,0,0,1,0,0);y.unitMatrix=y.identityMatrix=Yt;var Jt=function(t,e){if(!Bt[t]){var r=(e instanceof B?\"Sh\":\"P\")+(Object.keys(Ot).length+1).toString(10);e.id=r,Bt[t]=r,Ot[r]=e,Tt.publish(\"addPattern\",e)}};y.ShadingPattern=B,y.TilingPattern=M,y.addShadingPattern=function(t,e){return q(\"addShadingPattern()\"),Jt(t,e),this},y.beginTilingPattern=function(t){q(\"beginTilingPattern()\"),Br(t.boundingBox[0],t.boundingBox[1],t.boundingBox[2]-t.boundingBox[0],t.boundingBox[3]-t.boundingBox[1],t.matrix)},y.endTilingPattern=function(t,e){q(\"endTilingPattern()\"),e.stream=ot[$].join(\"\\n\"),Jt(t,e),Tt.publish(\"endTilingPattern\",e),Wt.pop().restore()};var Xt=y.__private__.newObject=function(){var t=Kt();return Zt(t,!0),t},Kt=y.__private__.newObjectDeferred=function(){return et++,rt[et]=function(){return it},et},Zt=function(t,e){return e=\"boolean\"==typeof e&&e,rt[t]=it,e&<(t+\" 0 obj\"),t},$t=y.__private__.newAdditionalObject=function(){var t={objId:Kt(),content:\"\"};return at.push(t),t},Qt=Kt(),te=Kt(),ee=y.__private__.decodeColorString=function(t){var e=t.split(\" \");if(2!==e.length||\"g\"!==e[1]&&\"G\"!==e[1]){if(5===e.length&&(\"k\"===e[4]||\"K\"===e[4])){e=[(1-e[0])*(1-e[3]),(1-e[1])*(1-e[3]),(1-e[2])*(1-e[3]),\"r\"]}}else{var r=parseFloat(e[0]);e=[r,r,r,\"r\"]}for(var n=\"#\",i=0;i<3;i++)n+=(\"0\"+Math.floor(255*parseFloat(e[i])).toString(16)).slice(-2);return n},re=y.__private__.encodeColorString=function(e){var r;\"string\"==typeof e&&(e={ch1:e});var n=e.ch1,i=e.ch2,a=e.ch3,o=e.ch4,s=\"draw\"===e.pdfColorType?[\"G\",\"RG\",\"K\"]:[\"g\",\"rg\",\"k\"];if(\"string\"==typeof n&&\"#\"!==n.charAt(0)){var c=new f(n);if(c.ok)n=c.toHex();else if(!/^\\d*\\.?\\d*$/.test(n))throw new Error('Invalid color \"'+n+'\" passed to jsPDF.encodeColorString.')}if(\"string\"==typeof n&&/^#[0-9A-Fa-f]{3}$/.test(n)&&(n=\"#\"+n[1]+n[1]+n[2]+n[2]+n[3]+n[3]),\"string\"==typeof n&&/^#[0-9A-Fa-f]{6}$/.test(n)){var u=parseInt(n.substr(1),16);n=u>>16&255,i=u>>8&255,a=255&u}if(void 0===i||void 0===o&&n===i&&i===a)if(\"string\"==typeof n)r=n+\" \"+s[0];else switch(e.precision){case 2:r=R(n/255)+\" \"+s[0];break;case 3:default:r=T(n/255)+\" \"+s[0]}else if(void 0===o||\"object\"===t(o)){if(o&&!isNaN(o.a)&&0===o.a)return r=[\"1.\",\"1.\",\"1.\",s[1]].join(\" \");if(\"string\"==typeof n)r=[n,i,a,s[1]].join(\" \");else switch(e.precision){case 2:r=[R(n/255),R(i/255),R(a/255),s[1]].join(\" \");break;default:case 3:r=[T(n/255),T(i/255),T(a/255),s[1]].join(\" \")}}else if(\"string\"==typeof n)r=[n,i,a,o,s[2]].join(\" \");else switch(e.precision){case 2:r=[R(n),R(i),R(a),R(o),s[2]].join(\" \");break;case 3:default:r=[T(n),T(i),T(a),T(o),s[2]].join(\" \")}return r},ne=y.__private__.getFilters=function(){return u},ie=y.__private__.putStream=function(t){var e=(t=t||{}).data||\"\",r=t.filters||ne(),n=t.alreadyAppliedFilters||[],i=t.addLength1||!1,a=e.length,o=t.objectId,s=function(t){return t};if(null!==m&&void 0===o)throw new Error(\"ObjectId must be passed to putStream for file encryption\");null!==m&&(s=Ye.encryptor(o,0));var c={};!0===r&&(r=[\"FlateEncode\"]);var u=t.additionalKeyValues||[],h=(c=void 0!==E.API.processDataByFilters?E.API.processDataByFilters(e,r):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(n)?n.join(\" \"):n.toString());if(0!==c.data.length&&(u.push({key:\"Length\",value:c.data.length}),!0===i&&u.push({key:\"Length1\",value:a})),0!=h.length)if(h.split(\"/\").length-1==1)u.push({key:\"Filter\",value:h});else{u.push({key:\"Filter\",value:\"[\"+h+\"]\"});for(var l=0;l<u.length;l+=1)if(\"DecodeParms\"===u[l].key){for(var f=[],d=0;d<c.reverseChain.split(\"/\").length-1;d+=1)f.push(\"null\");f.push(u[l].value),u[l].value=\"[\"+f.join(\" \")+\"]\"}}lt(\"<<\");for(var p=0;p<u.length;p++)lt(\"/\"+u[p].key+\" \"+u[p].value);lt(\">>\"),0!==c.data.length&&(lt(\"stream\"),lt(s(c.data)),lt(\"endstream\"))},ae=y.__private__.putPage=function(t){var e=t.number,r=t.data,n=t.objId,i=t.contentsObjId;Zt(n,!0),lt(\"<</Type /Page\"),lt(\"/Parent \"+t.rootDictionaryObjId+\" 0 R\"),lt(\"/Resources \"+t.resourceDictionaryObjId+\" 0 R\"),lt(\"/MediaBox [\"+parseFloat(O(t.mediaBox.bottomLeftX))+\" \"+parseFloat(O(t.mediaBox.bottomLeftY))+\" \"+O(t.mediaBox.topRightX)+\" \"+O(t.mediaBox.topRightY)+\"]\"),null!==t.cropBox&<(\"/CropBox [\"+O(t.cropBox.bottomLeftX)+\" \"+O(t.cropBox.bottomLeftY)+\" \"+O(t.cropBox.topRightX)+\" \"+O(t.cropBox.topRightY)+\"]\"),null!==t.bleedBox&<(\"/BleedBox [\"+O(t.bleedBox.bottomLeftX)+\" \"+O(t.bleedBox.bottomLeftY)+\" \"+O(t.bleedBox.topRightX)+\" \"+O(t.bleedBox.topRightY)+\"]\"),null!==t.trimBox&<(\"/TrimBox [\"+O(t.trimBox.bottomLeftX)+\" \"+O(t.trimBox.bottomLeftY)+\" \"+O(t.trimBox.topRightX)+\" \"+O(t.trimBox.topRightY)+\"]\"),null!==t.artBox&<(\"/ArtBox [\"+O(t.artBox.bottomLeftX)+\" \"+O(t.artBox.bottomLeftY)+\" \"+O(t.artBox.topRightX)+\" \"+O(t.artBox.topRightY)+\"]\"),\"number\"==typeof t.userUnit&&1!==t.userUnit&<(\"/UserUnit \"+t.userUnit),Tt.publish(\"putPage\",{objId:n,pageContext:Rt[e],pageNumber:e,page:r}),lt(\"/Contents \"+i+\" 0 R\"),lt(\">>\"),lt(\"endobj\");var a=r.join(\"\\n\");return S===x.ADVANCED&&(a+=\"\\nQ\"),Zt(i,!0),ie({data:a,filters:ne(),objectId:i}),lt(\"endobj\"),n},oe=y.__private__.putPages=function(){var t,e,r=[];for(t=1;t<=Dt;t++)Rt[t].objId=Kt(),Rt[t].contentsObjId=Kt();for(t=1;t<=Dt;t++)r.push(ae({number:t,data:ot[t],objId:Rt[t].objId,contentsObjId:Rt[t].contentsObjId,mediaBox:Rt[t].mediaBox,cropBox:Rt[t].cropBox,bleedBox:Rt[t].bleedBox,trimBox:Rt[t].trimBox,artBox:Rt[t].artBox,userUnit:Rt[t].userUnit,rootDictionaryObjId:Qt,resourceDictionaryObjId:te}));Zt(Qt,!0),lt(\"<</Type /Pages\");var n=\"/Kids [\";for(e=0;e<Dt;e++)n+=r[e]+\" 0 R \";lt(n+\"]\"),lt(\"/Count \"+Dt),lt(\">>\"),lt(\"endobj\"),Tt.publish(\"postPutPages\")},se=function(t){Tt.publish(\"putFont\",{font:t,out:lt,newObject:Xt,putStream:ie}),!0!==t.isAlreadyPutted&&(t.objectNumber=Xt(),lt(\"<<\"),lt(\"/Type /Font\"),lt(\"/BaseFont /\"+F(t.postScriptName)),lt(\"/Subtype /Type1\"),\"string\"==typeof t.encoding&<(\"/Encoding /\"+t.encoding),lt(\"/FirstChar 32\"),lt(\"/LastChar 255\"),lt(\">>\"),lt(\"endobj\"))},ce=function(){for(var t in Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&&se(Ft[t])},ue=function(t){t.objectNumber=Xt();var e=[];e.push({key:\"Type\",value:\"/XObject\"}),e.push({key:\"Subtype\",value:\"/Form\"}),e.push({key:\"BBox\",value:\"[\"+[O(t.x),O(t.y),O(t.x+t.width),O(t.y+t.height)].join(\" \")+\"]\"}),e.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"});var r=t.pages[1].join(\"\\n\");ie({data:r,additionalKeyValues:e,objectId:t.objectNumber}),lt(\"endobj\")},he=function(){for(var t in zt)zt.hasOwnProperty(t)&&ue(zt[t])},le=function(t,e){var r,n=[],i=1/(e-1);for(r=0;r<1;r+=i)n.push(r);if(n.push(1),0!=t[0].offset){var a={offset:0,color:t[0].color};t.unshift(a)}if(1!=t[t.length-1].offset){var o={offset:1,color:t[t.length-1].color};t.push(o)}for(var s=\"\",c=0,u=0;u<n.length;u++){for(r=n[u];r>t[c+1].offset;)c++;var h=t[c].offset,l=(r-h)/(t[c+1].offset-h),f=t[c].color,d=t[c+1].color;s+=tt(Math.round((1-l)*f[0]+l*d[0]).toString(16))+tt(Math.round((1-l)*f[1]+l*d[1]).toString(16))+tt(Math.round((1-l)*f[2]+l*d[2]).toString(16))}return s.trim()},fe=function(t,e){e||(e=21);var r=Xt(),n=le(t.colors,e),i=[];i.push({key:\"FunctionType\",value:\"0\"}),i.push({key:\"Domain\",value:\"[0.0 1.0]\"}),i.push({key:\"Size\",value:\"[\"+e+\"]\"}),i.push({key:\"BitsPerSample\",value:\"8\"}),i.push({key:\"Range\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),i.push({key:\"Decode\",value:\"[0.0 1.0 0.0 1.0 0.0 1.0]\"}),ie({data:n,additionalKeyValues:i,alreadyAppliedFilters:[\"/ASCIIHexDecode\"],objectId:r}),lt(\"endobj\"),t.objectNumber=Xt(),lt(\"<< /ShadingType \"+t.type),lt(\"/ColorSpace /DeviceRGB\");var a=\"/Coords [\"+O(parseFloat(t.coords[0]))+\" \"+O(parseFloat(t.coords[1]))+\" \";2===t.type?a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3])):a+=O(parseFloat(t.coords[2]))+\" \"+O(parseFloat(t.coords[3]))+\" \"+O(parseFloat(t.coords[4]))+\" \"+O(parseFloat(t.coords[5])),lt(a+=\"]\"),t.matrix&<(\"/Matrix [\"+t.matrix.toString()+\"]\"),lt(\"/Function \"+r+\" 0 R\"),lt(\"/Extend [true true]\"),lt(\">>\"),lt(\"endobj\")},de=function(t,e){var r=Kt(),n=Xt();e.push({resourcesOid:r,objectOid:n}),t.objectNumber=n;var i=[];i.push({key:\"Type\",value:\"/Pattern\"}),i.push({key:\"PatternType\",value:\"1\"}),i.push({key:\"PaintType\",value:\"1\"}),i.push({key:\"TilingType\",value:\"1\"}),i.push({key:\"BBox\",value:\"[\"+t.boundingBox.map(O).join(\" \")+\"]\"}),i.push({key:\"XStep\",value:O(t.xStep)}),i.push({key:\"YStep\",value:O(t.yStep)}),i.push({key:\"Resources\",value:r+\" 0 R\"}),t.matrix&&i.push({key:\"Matrix\",value:\"[\"+t.matrix.toString()+\"]\"}),ie({data:t.stream,additionalKeyValues:i,objectId:t.objectNumber}),lt(\"endobj\")},pe=function(t){var e;for(e in Ot)Ot.hasOwnProperty(e)&&(Ot[e]instanceof B?fe(Ot[e]):Ot[e]instanceof M&&de(Ot[e],t))},ge=function(t){for(var e in t.objectNumber=Xt(),lt(\"<<\"),t)switch(e){case\"opacity\":lt(\"/ca \"+R(t[e]));break;case\"stroke-opacity\":lt(\"/CA \"+R(t[e]))}lt(\">>\"),lt(\"endobj\")},me=function(){var t;for(t in Mt)Mt.hasOwnProperty(t)&&ge(Mt[t])},ve=function(){for(var t in lt(\"/XObject <<\"),zt)zt.hasOwnProperty(t)&&zt[t].objectNumber>=0&<(\"/\"+t+\" \"+zt[t].objectNumber+\" 0 R\");Tt.publish(\"putXobjectDict\"),lt(\">>\")},be=function(){Ye.oid=Xt(),lt(\"<<\"),lt(\"/Filter /Standard\"),lt(\"/V \"+Ye.v),lt(\"/R \"+Ye.r),lt(\"/U <\"+Ye.toHexString(Ye.U)+\">\"),lt(\"/O <\"+Ye.toHexString(Ye.O)+\">\"),lt(\"/P \"+Ye.P),lt(\">>\"),lt(\"endobj\")},ye=function(){for(var t in lt(\"/Font <<\"),Ft)Ft.hasOwnProperty(t)&&(!1===v||!0===v&&b.hasOwnProperty(t))&<(\"/\"+t+\" \"+Ft[t].objectNumber+\" 0 R\");lt(\">>\")},we=function(){if(Object.keys(Ot).length>0){for(var t in lt(\"/Shading <<\"),Ot)Ot.hasOwnProperty(t)&&Ot[t]instanceof B&&Ot[t].objectNumber>=0&<(\"/\"+t+\" \"+Ot[t].objectNumber+\" 0 R\");Tt.publish(\"putShadingPatternDict\"),lt(\">>\")}},Ne=function(t){if(Object.keys(Ot).length>0){for(var e in lt(\"/Pattern <<\"),Ot)Ot.hasOwnProperty(e)&&Ot[e]instanceof y.TilingPattern&&Ot[e].objectNumber>=0&&Ot[e].objectNumber<t&<(\"/\"+e+\" \"+Ot[e].objectNumber+\" 0 R\");Tt.publish(\"putTilingPatternDict\"),lt(\">>\")}},Le=function(){if(Object.keys(Mt).length>0){var t;for(t in lt(\"/ExtGState <<\"),Mt)Mt.hasOwnProperty(t)&&Mt[t].objectNumber>=0&<(\"/\"+t+\" \"+Mt[t].objectNumber+\" 0 R\");Tt.publish(\"putGStateDict\"),lt(\">>\")}},Ae=function(t){Zt(t.resourcesOid,!0),lt(\"<<\"),lt(\"/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]\"),ye(),we(),Ne(t.objectOid),Le(),ve(),lt(\">>\"),lt(\"endobj\")},xe=function(){var t=[];ce(),me(),he(),pe(t),Tt.publish(\"putResources\"),t.forEach(Ae),Ae({resourcesOid:te,objectOid:Number.MAX_SAFE_INTEGER}),Tt.publish(\"postPutResources\")},Se=function(){Tt.publish(\"putAdditionalObjects\");for(var t=0;t<at.length;t++){var e=at[t];Zt(e.objId,!0),lt(e.content),lt(\"endobj\")}Tt.publish(\"postPutAdditionalObjects\")},_e=function(t){Ct[t.fontName]=Ct[t.fontName]||{},Ct[t.fontName][t.fontStyle]=t.id},Pe=function(t,e,r,n,i){var a={id:\"F\"+(Object.keys(Ft).length+1).toString(10),postScriptName:t,fontName:e,fontStyle:r,encoding:n,isStandardFont:i||!1,metadata:{}};return Tt.publish(\"addFont\",{font:a,instance:this}),Ft[a.id]=a,_e(a),a.id},ke=function(t){for(var e=0,r=pt.length;e<r;e++){var n=Pe.call(this,t[e][0],t[e][1],t[e][2],pt[e][3],!0);!1===v&&(b[n]=!0);var i=t[e][0].split(\"-\");_e({id:n,fontName:i[0],fontStyle:i[1]||\"\"})}Tt.publish(\"addFonts\",{fonts:Ft,dictionary:Ct})},Ie=function(t){return t.foo=function(){try{return t.apply(this,arguments)}catch(t){var e=t.stack||\"\";~e.indexOf(\" at \")&&(e=e.split(\" at \")[1]);var r=\"Error in function \"+e.split(\"\\n\")[0].split(\"<\")[0]+\": \"+t.message;if(!n.console)throw new Error(r);n.console.error(r,t),n.alert&&alert(r)}},t.foo.bar=t,t.foo},Fe=function(t,e){var r,n,i,a,o,s,c,u,h;if(i=(e=e||{}).sourceEncoding||\"Unicode\",o=e.outputEncoding,(e.autoencode||o)&&Ft[St].metadata&&Ft[St].metadata[i]&&Ft[St].metadata[i].encoding&&(a=Ft[St].metadata[i].encoding,!o&&Ft[St].encoding&&(o=Ft[St].encoding),!o&&a.codePages&&(o=a.codePages[0]),\"string\"==typeof o&&(o=a[o]),o)){for(c=!1,s=[],r=0,n=t.length;r<n;r++)(u=o[t.charCodeAt(r)])?s.push(String.fromCharCode(u)):s.push(t[r]),s[r].charCodeAt(0)>>8&&(c=!0);t=s.join(\"\")}for(r=t.length;void 0===c&&0!==r;)t.charCodeAt(r-1)>>8&&(c=!0),r--;if(!c)return t;for(s=e.noBOM?[]:[254,255],r=0,n=t.length;r<n;r++){if((h=(u=t.charCodeAt(r))>>8)>>8)throw new Error(\"Character at position \"+r+\" of string '\"+t+\"' exceeds 16bits. Cannot be encoded into UCS-2 BE\");s.push(h),s.push(u-(h<<8))}return String.fromCharCode.apply(void 0,s)},Ce=y.__private__.pdfEscape=y.pdfEscape=function(t,e){return Fe(t,e).replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},je=y.__private__.beginPage=function(t){ot[++Dt]=[],Rt[Dt]={objId:0,contentsObjId:0,userUnit:Number(d),artBox:null,bleedBox:null,cropBox:null,trimBox:null,mediaBox:{bottomLeftX:0,bottomLeftY:0,topRightX:Number(t[0]),topRightY:Number(t[1])}},Me(Dt),ht(ot[$])},Oe=function(t,e){var r,n,o;switch(i=e||i,\"string\"==typeof t&&(r=A(t.toLowerCase()),Array.isArray(r)&&(n=r[0],o=r[1])),Array.isArray(t)&&(n=t[0]*_t,o=t[1]*_t),isNaN(n)&&(n=s[0],o=s[1]),(n>14400||o>14400)&&(a.warn(\"A page in a PDF can not be wider or taller than 14400 userUnit. jsPDF limits the width/height to 14400\"),n=Math.min(14400,n),o=Math.min(14400,o)),s=[n,o],i.substr(0,1)){case\"l\":o>n&&(s=[o,n]);break;case\"p\":n>o&&(s=[o,n])}je(s),pr(fr),lt(Lr),0!==kr&<(kr+\" J\"),0!==Ir&<(Ir+\" j\"),Tt.publish(\"addPage\",{pageNumber:Dt})},Be=function(t){t>0&&t<=Dt&&(ot.splice(t,1),Rt.splice(t,1),Dt--,$>Dt&&($=Dt),this.setPage($))},Me=function(t){t>0&&t<=Dt&&($=t)},Ee=y.__private__.getNumberOfPages=y.getNumberOfPages=function(){return ot.length-1},qe=function(t,e,r){var n,i=void 0;return r=r||{},t=void 0!==t?t:Ft[St].fontName,e=void 0!==e?e:Ft[St].fontStyle,n=t.toLowerCase(),void 0!==Ct[n]&&void 0!==Ct[n][e]?i=Ct[n][e]:void 0!==Ct[t]&&void 0!==Ct[t][e]?i=Ct[t][e]:!1===r.disableWarning&&a.warn(\"Unable to look up font label for font '\"+t+\"', '\"+e+\"'. Refer to getFontList() for available fonts.\"),i||r.noFallback||null==(i=Ct.times[e])&&(i=Ct.times.normal),i},De=y.__private__.putInfo=function(){var t=Xt(),e=function(t){return t};for(var r in null!==m&&(e=Ye.encryptor(t,0)),lt(\"<<\"),lt(\"/Producer (\"+Ce(e(\"jsPDF \"+E.version))+\")\"),xt)xt.hasOwnProperty(r)&&xt[r]&<(\"/\"+r.substr(0,1).toUpperCase()+r.substr(1)+\" (\"+Ce(e(xt[r]))+\")\");lt(\"/CreationDate (\"+Ce(e(W))+\")\"),lt(\">>\"),lt(\"endobj\")},Re=y.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||Qt;switch(Xt(),lt(\"<<\"),lt(\"/Type /Catalog\"),lt(\"/Pages \"+e+\" 0 R\"),mt||(mt=\"fullwidth\"),mt){case\"fullwidth\":lt(\"/OpenAction [3 0 R /FitH null]\");break;case\"fullheight\":lt(\"/OpenAction [3 0 R /FitV null]\");break;case\"fullpage\":lt(\"/OpenAction [3 0 R /Fit]\");break;case\"original\":lt(\"/OpenAction [3 0 R /XYZ null null 1]\");break;default:var r=\"\"+mt;\"%\"===r.substr(r.length-1)&&(mt=parseInt(mt)/100),\"number\"==typeof mt&<(\"/OpenAction [3 0 R /XYZ null null \"+R(mt)+\"]\")}switch(Nt||(Nt=\"continuous\"),Nt){case\"continuous\":lt(\"/PageLayout /OneColumn\");break;case\"single\":lt(\"/PageLayout /SinglePage\");break;case\"two\":case\"twoleft\":lt(\"/PageLayout /TwoColumnLeft\");break;case\"tworight\":lt(\"/PageLayout /TwoColumnRight\")}yt&<(\"/PageMode /\"+yt),Tt.publish(\"putCatalog\"),lt(\">>\"),lt(\"endobj\")},Te=y.__private__.putTrailer=function(){lt(\"trailer\"),lt(\"<<\"),lt(\"/Size \"+(et+1)),lt(\"/Root \"+et+\" 0 R\"),lt(\"/Info \"+(et-1)+\" 0 R\"),null!==m&<(\"/Encrypt \"+Ye.oid+\" 0 R\"),lt(\"/ID [ <\"+V+\"> <\"+V+\"> ]\"),lt(\">>\")},Ue=y.__private__.putHeader=function(){lt(\"%PDF-\"+w),lt(\"%ºß¬à \")},ze=y.__private__.putXRef=function(){var t=\"0000000000\";lt(\"xref\"),lt(\"0 \"+(et+1)),lt(\"0000000000 65535 f \");for(var e=1;e<=et;e++){\"function\"==typeof rt[e]?lt((t+rt[e]()).slice(-10)+\" 00000 n \"):void 0!==rt[e]?lt((t+rt[e]).slice(-10)+\" 00000 n \"):lt(\"0000000000 00000 n \")}},He=y.__private__.buildDocument=function(){ut(),ht(nt),Tt.publish(\"buildDocument\"),Ue(),oe(),Se(),xe(),null!==m&&be(),De(),Re();var t=it;return ze(),Te(),lt(\"startxref\"),lt(\"\"+t),lt(\"%%EOF\"),ht(ot[$]),nt.join(\"\\n\")},We=y.__private__.getBlob=function(t){return new Blob([dt(t)],{type:\"application/pdf\"})},Ve=y.output=y.__private__.output=Ie((function(t,e){switch(\"string\"==typeof(e=e||{})?e={filename:e}:e.filename=e.filename||\"generated.pdf\",t){case void 0:return He();case\"save\":y.save(e.filename);break;case\"arraybuffer\":return dt(He());case\"blob\":return We(He());case\"bloburi\":case\"bloburl\":if(void 0!==n.URL&&\"function\"==typeof n.URL.createObjectURL)return n.URL&&n.URL.createObjectURL(We(He()))||void 0;a.warn(\"bloburl is not supported by your system, because URL.createObjectURL is not supported by your browser.\");break;case\"datauristring\":case\"dataurlstring\":var r=\"\",i=He();try{r=h(i)}catch(t){r=h(unescape(encodeURIComponent(i)))}return\"data:application/pdf;filename=\"+e.filename+\";base64,\"+r;case\"pdfobjectnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var o=\"https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.1.1/pdfobject.min.js\",s=' integrity=\"sha512-4ze/a9/4jqu+tX9dfOqJYSvyYd5M6qum/3HpCLr+/Jqf0whc37VUbkpNGHR7/8pSnCFw47T1fmIpwBV7UySh3g==\" crossorigin=\"anonymous\"';e.pdfObjectUrl&&(o=e.pdfObjectUrl,s=\"\");var c='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><script src=\"'+o+'\"'+s+'><\\/script><script >PDFObject.embed(\"'+this.output(\"dataurlstring\")+'\", '+JSON.stringify(e)+\");<\\/script></body></html>\",u=n.open();return null!==u&&u.document.write(c),u}throw new Error(\"The option pdfobjectnewwindow just works in a browser-environment.\");case\"pdfjsnewwindow\":if(\"[object Window]\"===Object.prototype.toString.call(n)){var l='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe id=\"pdfViewer\" src=\"'+(e.pdfJsUrl||\"examples/PDF.js/web/viewer.html\")+\"?file=&downloadName=\"+e.filename+'\" width=\"500px\" height=\"400px\" /></body></html>',f=n.open();if(null!==f){f.document.write(l);var d=this;f.document.documentElement.querySelector(\"#pdfViewer\").onload=function(){f.document.title=e.filename,f.document.documentElement.querySelector(\"#pdfViewer\").contentWindow.PDFViewerApplication.open(d.output(\"bloburl\"))}}return f}throw new Error(\"The option pdfjsnewwindow just works in a browser-environment.\");case\"dataurlnewwindow\":if(\"[object Window]\"!==Object.prototype.toString.call(n))throw new Error(\"The option dataurlnewwindow just works in a browser-environment.\");var p='<html><style>html, body { padding: 0; margin: 0; } iframe { width: 100%; height: 100%; border: 0;} </style><body><iframe src=\"'+this.output(\"datauristring\",e)+'\"></iframe></body></html>',g=n.open();if(null!==g&&(g.document.write(p),g.document.title=e.filename),g||\"undefined\"==typeof safari)return g;break;case\"datauri\":case\"dataurl\":return n.document.location.href=this.output(\"datauristring\",e);default:return null}})),Ge=function(t){return!0===Array.isArray(Ut)&&Ut.indexOf(t)>-1};switch(o){case\"pt\":_t=1;break;case\"mm\":_t=72/25.4;break;case\"cm\":_t=72/2.54;break;case\"in\":_t=72;break;case\"px\":_t=1==Ge(\"px_scaling\")?.75:96/72;break;case\"pc\":case\"em\":_t=12;break;case\"ex\":_t=6;break;default:if(\"number\"!=typeof o)throw new Error(\"Invalid unit: \"+o);_t=o}var Ye=null;K(),Y();var Je=function(t){return null!==m?Ye.encryptor(t,0):function(t){return t}},Xe=y.__private__.getPageInfo=y.getPageInfo=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfo\");return{objId:Rt[t].objId,pageNumber:t,pageContext:Rt[t]}},Ke=y.__private__.getPageInfoByObjId=function(t){if(isNaN(t)||t%1!=0)throw new Error(\"Invalid argument passed to jsPDF.getPageInfoByObjId\");for(var e in Rt)if(Rt[e].objId===t)break;return Xe(e)},Ze=y.__private__.getCurrentPageInfo=y.getCurrentPageInfo=function(){return{objId:Rt[$].objId,pageNumber:$,pageContext:Rt[$]}};y.addPage=function(){return Oe.apply(this,arguments),this},y.setPage=function(){return Me.apply(this,arguments),ht.call(this,ot[$]),this},y.insertPage=function(t){return this.addPage(),this.movePage($,t),this},y.movePage=function(t,e){var r,n;if(t>e){r=ot[t],n=Rt[t];for(var i=t;i>e;i--)ot[i]=ot[i-1],Rt[i]=Rt[i-1];ot[e]=r,Rt[e]=n,this.setPage(e)}else if(t<e){r=ot[t],n=Rt[t];for(var a=t;a<e;a++)ot[a]=ot[a+1],Rt[a]=Rt[a+1];ot[e]=r,Rt[e]=n,this.setPage(e)}return this},y.deletePage=function(){return Be.apply(this,arguments),this},y.__private__.text=y.text=function(e,r,n,i,a){var o,s,c,u,h,l,f,d,p,g=(i=i||{}).scope||this;if(\"number\"==typeof e&&\"number\"==typeof r&&(\"string\"==typeof n||Array.isArray(n))){var m=n;n=r,r=e,e=m}if(arguments[3]instanceof Vt==!1?(c=arguments[4],u=arguments[5],\"object\"===t(f=arguments[3])&&null!==f||(\"string\"==typeof c&&(u=c,c=null),\"string\"==typeof f&&(u=f,f=null),\"number\"==typeof f&&(c=f,f=null),i={flags:f,angle:c,align:u})):(q(\"The transform parameter of text() with a Matrix value\"),p=a),isNaN(r)||isNaN(n)||null==e)throw new Error(\"Invalid arguments passed to jsPDF.text\");if(0===e.length)return g;var v=\"\",y=!1,w=\"number\"==typeof i.lineHeightFactor?i.lineHeightFactor:lr,N=g.internal.scaleFactor;function L(t){return t=t.split(\"\\t\").join(Array(i.TabLen||9).join(\" \")),Ce(t,f)}function A(t){for(var e,r=t.concat(),n=[],i=r.length;i--;)\"string\"==typeof(e=r.shift())?n.push(e):Array.isArray(t)&&(1===e.length||void 0===e[1]&&void 0===e[2])?n.push(e[0]):n.push([e[0],e[1],e[2]]);return n}function _(t,e){var r;if(\"string\"==typeof t)r=e(t)[0];else if(Array.isArray(t)){for(var n,i,a=t.concat(),o=[],s=a.length;s--;)\"string\"==typeof(n=a.shift())?o.push(e(n)[0]):Array.isArray(n)&&\"string\"==typeof n[0]&&(i=e(n[0],n[1],n[2]),o.push([i[0],i[1],i[2]]));r=o}return r}var P=!1,k=!0;if(\"string\"==typeof e)P=!0;else if(Array.isArray(e)){var I=e.concat();s=[];for(var F,C=I.length;C--;)(\"string\"!=typeof(F=I.shift())||Array.isArray(F)&&\"string\"!=typeof F[0])&&(k=!1);P=k}if(!1===P)throw new Error('Type of text must be string or Array. \"'+e+'\" is not recognized.');\"string\"==typeof e&&(e=e.match(/[\\r?\\n]/)?e.split(/\\r\\n|\\r|\\n/g):[e]);var j=gt/g.internal.scaleFactor,B=j*(w-1);switch(i.baseline){case\"bottom\":n-=B;break;case\"top\":n+=j-B;break;case\"hanging\":n+=j-2*B;break;case\"middle\":n+=j/2-B}if((l=i.maxWidth||0)>0&&(\"string\"==typeof e?e=g.splitTextToSize(e,l):\"[object Array]\"===Object.prototype.toString.call(e)&&(e=e.reduce((function(t,e){return t.concat(g.splitTextToSize(e,l))}),[]))),o={text:e,x:r,y:n,options:i,mutex:{pdfEscape:Ce,activeFontKey:St,fonts:Ft,activeFontSize:gt}},Tt.publish(\"preProcessText\",o),e=o.text,c=(i=o.options).angle,p instanceof Vt==!1&&c&&\"number\"==typeof c){c*=Math.PI/180,0===i.rotationDirection&&(c=-c),S===x.ADVANCED&&(c=-c);var M=Math.cos(c),E=Math.sin(c);p=new Vt(M,E,-E,M,0,0)}else c&&c instanceof Vt&&(p=c);S!==x.ADVANCED||p||(p=Yt),void 0!==(h=i.charSpace||_r)&&(v+=O(U(h))+\" Tc\\n\",this.setCharSpace(this.getCharSpace()||0)),void 0!==(d=i.horizontalScale)&&(v+=O(100*d)+\" Tz\\n\");i.lang;var D=-1,R=void 0!==i.renderingMode?i.renderingMode:i.stroke,T=g.internal.getCurrentPageInfo().pageContext;switch(R){case 0:case!1:case\"fill\":D=0;break;case 1:case!0:case\"stroke\":D=1;break;case 2:case\"fillThenStroke\":D=2;break;case 3:case\"invisible\":D=3;break;case 4:case\"fillAndAddForClipping\":D=4;break;case 5:case\"strokeAndAddPathForClipping\":D=5;break;case 6:case\"fillThenStrokeAndAddToPathForClipping\":D=6;break;case 7:case\"addToPathForClipping\":D=7}var z=void 0!==T.usedRenderingMode?T.usedRenderingMode:-1;-1!==D?v+=D+\" Tr\\n\":-1!==z&&(v+=\"0 Tr\\n\"),-1!==D&&(T.usedRenderingMode=D),u=i.align||\"left\";var H,W=gt*w,V=g.internal.pageSize.getWidth(),G=Ft[St];h=i.charSpace||_r,l=i.maxWidth||0,f=Object.assign({autoencode:!0,noBOM:!0},i.flags);var Y=[],J=function(t){return g.getStringUnitWidth(t,{font:G,charSpace:h,fontSize:gt,doKerning:!1})*gt/N};if(\"[object Array]\"===Object.prototype.toString.call(e)){var X;s=A(e),\"left\"!==u&&(H=s.map(J));var K,Z=0;if(\"right\"===u){r-=H[0],e=[],C=s.length;for(var $=0;$<C;$++)0===$?(K=br(r),X=yr(n)):(K=U(Z-H[$]),X=-W),e.push([s[$],K,X]),Z=H[$]}else if(\"center\"===u){r-=H[0]/2,e=[],C=s.length;for(var Q=0;Q<C;Q++)0===Q?(K=br(r),X=yr(n)):(K=U((Z-H[Q])/2),X=-W),e.push([s[Q],K,X]),Z=H[Q]}else if(\"left\"===u){e=[],C=s.length;for(var tt=0;tt<C;tt++)e.push(s[tt])}else if(\"justify\"===u&&\"Identity-H\"===G.encoding){e=[],C=s.length,l=0!==l?l:V;for(var et=0,rt=0;rt<C;rt++)if(X=0===rt?yr(n):-W,K=0===rt?br(r):et,rt<C-1){var nt=U((l-H[rt])/(s[rt].split(\" \").length-1)),it=s[rt].split(\" \");e.push([it[0]+\" \",K,X]),et=0;for(var at=1;at<it.length;at++){var ot=(J(it[at-1]+\" \"+it[at])-J(it[at]))*N+nt;at==it.length-1?e.push([it[at],ot,0]):e.push([it[at]+\" \",ot,0]),et-=ot}}else e.push([s[rt],K,X]);e.push([\"\",et,0])}else{if(\"justify\"!==u)throw new Error('Unrecognized alignment option, use \"left\", \"center\", \"right\" or \"justify\".');e=[],C=s.length,l=0!==l?l:V;for(rt=0;rt<C;rt++)X=0===rt?yr(n):-W,K=0===rt?br(r):0,rt<C-1?Y.push(O(U((l-H[rt])/(s[rt].split(\" \").length-1)))):Y.push(0),e.push([s[rt],K,X])}}var st=\"boolean\"==typeof i.R2L?i.R2L:bt;!0===st&&(e=_(e,(function(t,e,r){return[t.split(\"\").reverse().join(\"\"),e,r]}))),o={text:e,x:r,y:n,options:i,mutex:{pdfEscape:Ce,activeFontKey:St,fonts:Ft,activeFontSize:gt}},Tt.publish(\"postProcessText\",o),e=o.text,y=o.mutex.isHex||!1;var ct=Ft[St].encoding;\"WinAnsiEncoding\"!==ct&&\"StandardEncoding\"!==ct||(e=_(e,(function(t,e,r){return[L(t),e,r]}))),s=A(e),e=[];for(var ut,ht,ft,dt=0,pt=1,mt=Array.isArray(s[0])?pt:dt,vt=\"\",yt=function(t,e,r){var n=\"\";return r instanceof Vt?(r=\"number\"==typeof i.angle?Gt(r,new Vt(1,0,0,1,t,e)):Gt(new Vt(1,0,0,1,t,e),r),S===x.ADVANCED&&(r=Gt(new Vt(1,0,0,-1,0,0),r)),n=r.join(\" \")+\" Tm\\n\"):n=O(t)+\" \"+O(e)+\" Td\\n\",n},wt=0;wt<s.length;wt++){switch(vt=\"\",mt){case pt:ft=(y?\"<\":\"(\")+s[wt][0]+(y?\">\":\")\"),ut=parseFloat(s[wt][1]),ht=parseFloat(s[wt][2]);break;case dt:ft=(y?\"<\":\"(\")+s[wt]+(y?\">\":\")\"),ut=br(r),ht=yr(n)}void 0!==Y&&void 0!==Y[wt]&&(vt=Y[wt]+\" Tw\\n\"),0===wt?e.push(vt+yt(ut,ht,p)+ft):mt===dt?e.push(vt+ft):mt===pt&&e.push(vt+yt(ut,ht,p)+ft)}e=mt===dt?e.join(\" Tj\\nT* \"):e.join(\" Tj\\n\"),e+=\" Tj\\n\";var Nt=\"BT\\n/\";return Nt+=St+\" \"+gt+\" Tf\\n\",Nt+=O(gt*w)+\" TL\\n\",Nt+=xr+\"\\n\",Nt+=v,Nt+=e,lt(Nt+=\"ET\"),b[St]=!0,g};var $e=y.__private__.clip=y.clip=function(t){return lt(\"evenodd\"===t?\"W*\":\"W\"),this};y.clipEvenOdd=function(){return $e(\"evenodd\")},y.__private__.discardPath=y.discardPath=function(){return lt(\"n\"),this};var Qe=y.__private__.isValidStyle=function(t){var e=!1;return-1!==[void 0,null,\"S\",\"D\",\"F\",\"DF\",\"FD\",\"f\",\"f*\",\"B\",\"B*\",\"n\"].indexOf(t)&&(e=!0),e};y.__private__.setDefaultPathOperation=y.setDefaultPathOperation=function(t){return Qe(t)&&(g=t),this};var tr=y.__private__.getStyle=y.getStyle=function(t){var e=g;switch(t){case\"D\":case\"S\":e=\"S\";break;case\"F\":e=\"f\";break;case\"FD\":case\"DF\":e=\"B\";break;case\"f\":case\"f*\":case\"B\":case\"B*\":e=t}return e},er=y.close=function(){return lt(\"h\"),this};y.stroke=function(){return lt(\"S\"),this},y.fill=function(t){return rr(\"f\",t),this},y.fillEvenOdd=function(t){return rr(\"f*\",t),this},y.fillStroke=function(t){return rr(\"B\",t),this},y.fillStrokeEvenOdd=function(t){return rr(\"B*\",t),this};var rr=function(e,r){\"object\"===t(r)?ar(r,e):lt(e)},nr=function(t){null===t||S===x.ADVANCED&&void 0===t||(t=tr(t),lt(t))};function ir(t,e,r,n,i){var a=new M(e||this.boundingBox,r||this.xStep,n||this.yStep,this.gState,i||this.matrix);a.stream=this.stream;var o=t+\"$$\"+this.cloneIndex+++\"$$\";return Jt(o,a),a}var ar=function(t,e){var r=Bt[t.key],n=Ot[r];if(n instanceof B)lt(\"q\"),lt(or(e)),n.gState&&y.setGState(n.gState),lt(t.matrix.toString()+\" cm\"),lt(\"/\"+r+\" sh\"),lt(\"Q\");else if(n instanceof M){var i=new Vt(1,0,0,-1,0,Rr());t.matrix&&(i=i.multiply(t.matrix||Yt),r=ir.call(n,t.key,t.boundingBox,t.xStep,t.yStep,i).id),lt(\"q\"),lt(\"/Pattern cs\"),lt(\"/\"+r+\" scn\"),n.gState&&y.setGState(n.gState),lt(e),lt(\"Q\")}},or=function(t){switch(t){case\"f\":case\"F\":return\"W n\";case\"f*\":return\"W* n\";case\"B\":return\"W S\";case\"B*\":return\"W* S\";case\"S\":return\"W S\";case\"n\":return\"W n\"}},sr=y.moveTo=function(t,e){return lt(O(U(t))+\" \"+O(H(e))+\" m\"),this},cr=y.lineTo=function(t,e){return lt(O(U(t))+\" \"+O(H(e))+\" l\"),this},ur=y.curveTo=function(t,e,r,n,i,a){return lt([O(U(t)),O(H(e)),O(U(r)),O(H(n)),O(U(i)),O(H(a)),\"c\"].join(\" \")),this};y.__private__.line=y.line=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.line\");return S===x.COMPAT?this.lines([[r-t,n-e]],t,e,[1,1],i||\"S\"):this.lines([[r-t,n-e]],t,e,[1,1]).stroke()},y.__private__.lines=y.lines=function(t,e,r,n,i,a){var o,s,c,u,h,l,f,d,p,g,m,v;if(\"number\"==typeof t&&(v=r,r=e,e=t,t=v),n=n||[1,1],a=a||!1,isNaN(e)||isNaN(r)||!Array.isArray(t)||!Array.isArray(n)||!Qe(i)||\"boolean\"!=typeof a)throw new Error(\"Invalid arguments passed to jsPDF.lines\");for(sr(e,r),o=n[0],s=n[1],u=t.length,g=e,m=r,c=0;c<u;c++)2===(h=t[c]).length?(g=h[0]*o+g,m=h[1]*s+m,cr(g,m)):(l=h[0]*o+g,f=h[1]*s+m,d=h[2]*o+g,p=h[3]*s+m,g=h[4]*o+g,m=h[5]*s+m,ur(l,f,d,p,g,m));return a&&er(),nr(i),this},y.path=function(t){for(var e=0;e<t.length;e++){var r=t[e],n=r.c;switch(r.op){case\"m\":sr(n[0],n[1]);break;case\"l\":cr(n[0],n[1]);break;case\"c\":ur.apply(this,n);break;case\"h\":er()}}return this},y.__private__.rect=y.rect=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.rect\");return S===x.COMPAT&&(n=-n),lt([O(U(t)),O(H(e)),O(U(r)),O(U(n)),\"re\"].join(\" \")),nr(i),this},y.__private__.triangle=y.triangle=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Qe(o))throw new Error(\"Invalid arguments passed to jsPDF.triangle\");return this.lines([[r-t,n-e],[i-r,a-n],[t-i,e-a]],t,e,[1,1],o,!0),this},y.__private__.roundedRect=y.roundedRect=function(t,e,r,n,i,a,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(a)||!Qe(o))throw new Error(\"Invalid arguments passed to jsPDF.roundedRect\");var s=4/3*(Math.SQRT2-1);return i=Math.min(i,.5*r),a=Math.min(a,.5*n),this.lines([[r-2*i,0],[i*s,0,i,a-a*s,i,a],[0,n-2*a],[0,a*s,-i*s,a,-i,a],[2*i-r,0],[-i*s,0,-i,-a*s,-i,-a],[0,2*a-n],[0,-a*s,i*s,-a,i,-a]],t+i,e,[1,1],o,!0),this},y.__private__.ellipse=y.ellipse=function(t,e,r,n,i){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||!Qe(i))throw new Error(\"Invalid arguments passed to jsPDF.ellipse\");var a=4/3*(Math.SQRT2-1)*r,o=4/3*(Math.SQRT2-1)*n;return sr(t+r,e),ur(t+r,e-o,t+a,e-n,t,e-n),ur(t-a,e-n,t-r,e-o,t-r,e),ur(t-r,e+o,t-a,e+n,t,e+n),ur(t+a,e+n,t+r,e+o,t+r,e),nr(i),this},y.__private__.circle=y.circle=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||!Qe(n))throw new Error(\"Invalid arguments passed to jsPDF.circle\");return this.ellipse(t,e,r,r,n)},y.setFont=function(t,e,r){return r&&(e=k(e,r)),St=qe(t,e,{disableWarning:!1}),this};var hr=y.__private__.getFont=y.getFont=function(){return Ft[qe.apply(y,arguments)]};y.__private__.getFontList=y.getFontList=function(){var t,e,r={};for(t in Ct)if(Ct.hasOwnProperty(t))for(e in r[t]=[],Ct[t])Ct[t].hasOwnProperty(e)&&r[t].push(e);return r},y.addFont=function(t,e,r,n,i){var a=[\"StandardEncoding\",\"MacRomanEncoding\",\"Identity-H\",\"WinAnsiEncoding\"];return arguments[3]&&-1!==a.indexOf(arguments[3])?i=arguments[3]:arguments[3]&&-1==a.indexOf(arguments[3])&&(r=k(r,n)),i=i||\"Identity-H\",Pe.call(this,t,e,r,i)};var lr,fr=e.lineWidth||.200025,dr=y.__private__.getLineWidth=y.getLineWidth=function(){return fr},pr=y.__private__.setLineWidth=y.setLineWidth=function(t){return fr=t,lt(O(U(t))+\" w\"),this};y.__private__.setLineDash=E.API.setLineDash=E.API.setLineDashPattern=function(t,e){if(t=t||[],e=e||0,isNaN(e)||!Array.isArray(t))throw new Error(\"Invalid arguments passed to jsPDF.setLineDash\");return t=t.map((function(t){return O(U(t))})).join(\" \"),e=O(U(e)),lt(\"[\"+t+\"] \"+e+\" d\"),this};var gr=y.__private__.getLineHeight=y.getLineHeight=function(){return gt*lr};y.__private__.getLineHeight=y.getLineHeight=function(){return gt*lr};var mr=y.__private__.setLineHeightFactor=y.setLineHeightFactor=function(t){return\"number\"==typeof(t=t||1.15)&&(lr=t),this},vr=y.__private__.getLineHeightFactor=y.getLineHeightFactor=function(){return lr};mr(e.lineHeight);var br=y.__private__.getHorizontalCoordinate=function(t){return U(t)},yr=y.__private__.getVerticalCoordinate=function(t){return S===x.ADVANCED?t:Rt[$].mediaBox.topRightY-Rt[$].mediaBox.bottomLeftY-U(t)},wr=y.__private__.getHorizontalCoordinateString=y.getHorizontalCoordinateString=function(t){return O(br(t))},Nr=y.__private__.getVerticalCoordinateString=y.getVerticalCoordinateString=function(t){return O(yr(t))},Lr=e.strokeColor||\"0 G\";y.__private__.getStrokeColor=y.getDrawColor=function(){return ee(Lr)},y.__private__.setStrokeColor=y.setDrawColor=function(t,e,r,n){return Lr=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"draw\",precision:2}),lt(Lr),this};var Ar=e.fillColor||\"0 g\";y.__private__.getFillColor=y.getFillColor=function(){return ee(Ar)},y.__private__.setFillColor=y.setFillColor=function(t,e,r,n){return Ar=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"fill\",precision:2}),lt(Ar),this};var xr=e.textColor||\"0 g\",Sr=y.__private__.getTextColor=y.getTextColor=function(){return ee(xr)};y.__private__.setTextColor=y.setTextColor=function(t,e,r,n){return xr=re({ch1:t,ch2:e,ch3:r,ch4:n,pdfColorType:\"text\",precision:3}),this};var _r=e.charSpace,Pr=y.__private__.getCharSpace=y.getCharSpace=function(){return parseFloat(_r||0)};y.__private__.setCharSpace=y.setCharSpace=function(t){if(isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setCharSpace\");return _r=t,this};var kr=0;y.CapJoinStyles={0:0,butt:0,but:0,miter:0,1:1,round:1,rounded:1,circle:1,2:2,projecting:2,project:2,square:2,bevel:2},y.__private__.setLineCap=y.setLineCap=function(t){var e=y.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line cap style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return kr=e,lt(e+\" J\"),this};var Ir=0;y.__private__.setLineJoin=y.setLineJoin=function(t){var e=y.CapJoinStyles[t];if(void 0===e)throw new Error(\"Line join style of '\"+t+\"' is not recognized. See or extend .CapJoinStyles property for valid styles\");return Ir=e,lt(e+\" j\"),this},y.__private__.setLineMiterLimit=y.__private__.setMiterLimit=y.setLineMiterLimit=y.setMiterLimit=function(t){if(t=t||0,isNaN(t))throw new Error(\"Invalid argument passed to jsPDF.setLineMiterLimit\");return lt(O(U(t))+\" M\"),this},y.GState=j,y.setGState=function(t){(t=\"string\"==typeof t?Mt[Et[t]]:Fr(null,t)).equals(qt)||(lt(\"/\"+t.id+\" gs\"),qt=t)};var Fr=function(t,e){if(!t||!Et[t]){var r=!1;for(var n in Mt)if(Mt.hasOwnProperty(n)&&Mt[n].equals(e)){r=!0;break}if(r)e=Mt[n];else{var i=\"GS\"+(Object.keys(Mt).length+1).toString(10);Mt[i]=e,e.id=i}return t&&(Et[t]=e.id),Tt.publish(\"addGState\",e),e}};y.addGState=function(t,e){return Fr(t,e),this},y.saveGraphicsState=function(){return lt(\"q\"),jt.push({key:St,size:gt,color:xr}),this},y.restoreGraphicsState=function(){lt(\"Q\");var t=jt.pop();return St=t.key,gt=t.size,xr=t.color,qt=null,this},y.setCurrentTransformationMatrix=function(t){return lt(t.toString()+\" cm\"),this},y.comment=function(t){return lt(\"#\"+t),this};var Cr=function(t,e){var r=t||0;Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return r},set:function(t){isNaN(t)||(r=parseFloat(t))}});var n=e||0;Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return n},set:function(t){isNaN(t)||(n=parseFloat(t))}});var i=\"pt\";return Object.defineProperty(this,\"type\",{enumerable:!0,get:function(){return i},set:function(t){i=t.toString()}}),this},jr=function(t,e,r,n){Cr.call(this,t,e),this.type=\"rect\";var i=r||0;Object.defineProperty(this,\"w\",{enumerable:!0,get:function(){return i},set:function(t){isNaN(t)||(i=parseFloat(t))}});var a=n||0;return Object.defineProperty(this,\"h\",{enumerable:!0,get:function(){return a},set:function(t){isNaN(t)||(a=parseFloat(t))}}),this},Or=function(){this.page=Dt,this.currentPage=$,this.pages=ot.slice(0),this.pagesContext=Rt.slice(0),this.x=Pt,this.y=kt,this.matrix=It,this.width=qr($),this.height=Rr($),this.outputDestination=ct,this.id=\"\",this.objectNumber=-1};Or.prototype.restore=function(){Dt=this.page,$=this.currentPage,Rt=this.pagesContext,ot=this.pages,Pt=this.x,kt=this.y,It=this.matrix,Dr($,this.width),Tr($,this.height),ct=this.outputDestination};var Br=function(t,e,r,n,i){Wt.push(new Or),Dt=$=0,ot=[],Pt=t,kt=e,It=i,je([r,n])},Mr=function(t){if(Ht[t])Wt.pop().restore();else{var e=new Or,r=\"Xo\"+(Object.keys(zt).length+1).toString(10);e.id=r,Ht[t]=r,zt[r]=e,Tt.publish(\"addFormObject\",e),Wt.pop().restore()}};for(var Er in y.beginFormObject=function(t,e,r,n,i){return Br(t,e,r,n,i),this},y.endFormObject=function(t){return Mr(t),this},y.doFormObject=function(t,e){var r=zt[Ht[t]];return lt(\"q\"),lt(e.toString()+\" cm\"),lt(\"/\"+r.id+\" Do\"),lt(\"Q\"),this},y.getFormObject=function(t){var e=zt[Ht[t]];return{x:e.x,y:e.y,width:e.width,height:e.height,matrix:e.matrix}},y.save=function(t,e){return t=t||\"generated.pdf\",(e=e||{}).returnPromise=e.returnPromise||!1,!1===e.returnPromise?(l(We(He()),t),\"function\"==typeof l.unload&&n.setTimeout&&setTimeout(l.unload,911),this):new Promise((function(e,r){try{var i=l(We(He()),t);\"function\"==typeof l.unload&&n.setTimeout&&setTimeout(l.unload,911),e(i)}catch(t){r(t.message)}}))},E.API)E.API.hasOwnProperty(Er)&&(\"events\"===Er&&E.API.events.length?function(t,e){var r,n,i;for(i=e.length-1;-1!==i;i--)r=e[i][0],n=e[i][1],t.subscribe.apply(t,[r].concat(\"function\"==typeof n?[n]:n))}(Tt,E.API.events):y[Er]=E.API[Er]);var qr=y.getPageWidth=function(t){return(Rt[t=t||$].mediaBox.topRightX-Rt[t].mediaBox.bottomLeftX)/_t},Dr=y.setPageWidth=function(t,e){Rt[t].mediaBox.topRightX=e*_t+Rt[t].mediaBox.bottomLeftX},Rr=y.getPageHeight=function(t){return(Rt[t=t||$].mediaBox.topRightY-Rt[t].mediaBox.bottomLeftY)/_t},Tr=y.setPageHeight=function(t,e){Rt[t].mediaBox.topRightY=e*_t+Rt[t].mediaBox.bottomLeftY};return y.internal={pdfEscape:Ce,getStyle:tr,getFont:hr,getFontSize:vt,getCharSpace:Pr,getTextColor:Sr,getLineHeight:gr,getLineHeightFactor:vr,getLineWidth:dr,write:ft,getHorizontalCoordinate:br,getVerticalCoordinate:yr,getCoordinateString:wr,getVerticalCoordinateString:Nr,collections:{},newObject:Xt,newAdditionalObject:$t,newObjectDeferred:Kt,newObjectDeferredBegin:Zt,getFilters:ne,putStream:ie,events:Tt,scaleFactor:_t,pageSize:{getWidth:function(){return qr($)},setWidth:function(t){Dr($,t)},getHeight:function(){return Rr($)},setHeight:function(t){Tr($,t)}},encryptionOptions:m,encryption:Ye,getEncryptor:Je,output:Ve,getNumberOfPages:Ee,pages:ot,out:lt,f2:R,f3:T,getPageInfo:Xe,getPageInfoByObjId:Ke,getCurrentPageInfo:Ze,getPDFVersion:N,Point:Cr,Rectangle:jr,Matrix:Vt,hasHotfix:Ge},Object.defineProperty(y.internal.pageSize,\"width\",{get:function(){return qr($)},set:function(t){Dr($,t)},enumerable:!0,configurable:!0}),Object.defineProperty(y.internal.pageSize,\"height\",{get:function(){return Rr($)},set:function(t){Tr($,t)},enumerable:!0,configurable:!0}),ke.call(y,pt),St=\"F1\",Oe(s,i),Tt.publish(\"initialized\"),y}I.prototype.lsbFirstWord=function(t){return String.fromCharCode(t>>0&255,t>>8&255,t>>16&255,t>>24&255)},I.prototype.toHexString=function(t){return t.split(\"\").map((function(t){return(\"0\"+(255&t.charCodeAt(0)).toString(16)).slice(-2)})).join(\"\")},I.prototype.hexToBytes=function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(String.fromCharCode(parseInt(t.substr(r,2),16)));return e.join(\"\")},I.prototype.processOwnerPassword=function(t,e){return P(x(e).substr(0,5),t)},I.prototype.encryptor=function(t,e){var r=x(this.encryptionKey+String.fromCharCode(255&t,t>>8&255,t>>16&255,255&e,e>>8&255)).substr(0,10);return function(t){return P(r,t)}},j.prototype.equals=function(e){var r,n=\"id,objectNumber,equals\";if(!e||t(e)!==t(this))return!1;var i=0;for(r in this)if(!(n.indexOf(r)>=0)){if(this.hasOwnProperty(r)&&!e.hasOwnProperty(r))return!1;if(this[r]!==e[r])return!1;i++}for(r in e)e.hasOwnProperty(r)&&n.indexOf(r)<0&&i--;return 0===i},E.API={events:[]},E.version=\"2.5.2\";var q=E.API,D=1,R=function(t){return t.replace(/\\\\/g,\"\\\\\\\\\").replace(/\\(/g,\"\\\\(\").replace(/\\)/g,\"\\\\)\")},T=function(t){return t.replace(/\\\\\\\\/g,\"\\\\\").replace(/\\\\\\(/g,\"(\").replace(/\\\\\\)/g,\")\")},U=function(t){return t.toFixed(2)},z=function(t){return t.toFixed(5)};q.__acroform__={};var H=function(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t},W=function(t){return t*D},V=function(t){var e=new ut,r=At.internal.getHeight(t)||0,n=At.internal.getWidth(t)||0;return e.BBox=[0,0,Number(U(n)),Number(U(r))],e},G=q.__acroform__.setBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBit\");return t|=1<<e},Y=q.__acroform__.clearBit=function(t,e){if(t=t||0,e=e||0,isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBit\");return t&=~(1<<e)},J=q.__acroform__.getBit=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBit\");return 0==(t&1<<e)?0:1},X=q.__acroform__.getBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.getBitForPdf\");return J(t,e-1)},K=q.__acroform__.setBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.setBitForPdf\");return G(t,e-1)},Z=q.__acroform__.clearBitForPdf=function(t,e){if(isNaN(t)||isNaN(e))throw new Error(\"Invalid arguments passed to jsPDF.API.__acroform__.clearBitForPdf\");return Y(t,e-1)},$=q.__acroform__.calculateCoordinates=function(t,e){var r=e.internal.getHorizontalCoordinate,n=e.internal.getVerticalCoordinate,i=t[0],a=t[1],o=t[2],s=t[3],c={};return c.lowerLeft_X=r(i)||0,c.lowerLeft_Y=n(a+s)||0,c.upperRight_X=r(i+o)||0,c.upperRight_Y=n(a)||0,[Number(U(c.lowerLeft_X)),Number(U(c.lowerLeft_Y)),Number(U(c.upperRight_X)),Number(U(c.upperRight_Y))]},Q=function(t){if(t.appearanceStreamContent)return t.appearanceStreamContent;if(t.V||t.DV){var e=[],r=t._V||t.DV,n=tt(t,r),i=t.scope.internal.getFont(t.fontName,t.fontStyle).id;e.push(\"/Tx BMC\"),e.push(\"q\"),e.push(\"BT\"),e.push(t.scope.__private__.encodeColorString(t.color)),e.push(\"/\"+i+\" \"+U(n.fontSize)+\" Tf\"),e.push(\"1 0 0 1 0 0 Tm\"),e.push(n.text),e.push(\"ET\"),e.push(\"Q\"),e.push(\"EMC\");var a=V(t);return a.scope=t.scope,a.stream=e.join(\"\\n\"),a}},tt=function(t,e){var r=0===t.fontSize?t.maxFontSize:t.fontSize,n={text:\"\",fontSize:\"\"},i=(e=\")\"==(e=\"(\"==e.substr(0,1)?e.substr(1):e).substr(e.length-1)?e.substr(0,e.length-1):e).split(\" \");i=t.multiline?i.map((function(t){return t.split(\"\\n\")})):i.map((function(t){return[t]}));var a=r,o=At.internal.getHeight(t)||0;o=o<0?-o:o;var s=At.internal.getWidth(t)||0;s=s<0?-s:s;var c=function(e,r,n){if(e+1<i.length){var a=r+\" \"+i[e+1][0];return et(a,t,n).width<=s-4}return!1};a++;t:for(;a>0;){e=\"\",a--;var u,h,l=et(\"3\",t,a).height,f=t.multiline?o-a:(o-l)/2,d=f+=2,p=0,g=0,m=0;if(a<=0){e=\"(...) Tj\\n\",e+=\"% Width of Text: \"+et(e,t,a=12).width+\", FieldWidth:\"+s+\"\\n\";break}for(var v=\"\",b=0,y=0;y<i.length;y++)if(i.hasOwnProperty(y)){var w=!1;if(1!==i[y].length&&m!==i[y].length-1){if((l+2)*(b+2)+2>o)continue t;v+=i[y][m],w=!0,g=y,y--}else{v=\" \"==(v+=i[y][m]+\" \").substr(v.length-1)?v.substr(0,v.length-1):v;var N=parseInt(y),L=c(N,v,a),A=y>=i.length-1;if(L&&!A){v+=\" \",m=0;continue}if(L||A){if(A)g=N;else if(t.multiline&&(l+2)*(b+2)+2>o)continue t}else{if(!t.multiline)continue t;if((l+2)*(b+2)+2>o)continue t;g=N}}for(var x=\"\",S=p;S<=g;S++){var _=i[S];if(t.multiline){if(S===g){x+=_[m]+\" \",m=(m+1)%_.length;continue}if(S===p){x+=_[_.length-1]+\" \";continue}}x+=_[0]+\" \"}switch(x=\" \"==x.substr(x.length-1)?x.substr(0,x.length-1):x,h=et(x,t,a).width,t.textAlign){case\"right\":u=s-h-2;break;case\"center\":u=(s-h)/2;break;case\"left\":default:u=2}e+=U(u)+\" \"+U(d)+\" Td\\n\",e+=\"(\"+R(x)+\") Tj\\n\",e+=-U(u)+\" 0 Td\\n\",d=-(a+2),h=0,p=w?g:g+1,b++,v=\"\"}else;break}return n.text=e,n.fontSize=a,n},et=function(t,e,r){var n=e.scope.internal.getFont(e.fontName,e.fontStyle),i=e.scope.getStringUnitWidth(t,{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r);return{height:e.scope.getStringUnitWidth(\"3\",{font:n,fontSize:parseFloat(r),charSpace:0})*parseFloat(r)*1.5,width:i}},rt={fields:[],xForms:[],acroFormDictionaryRoot:null,printedOut:!1,internal:null,isInitialized:!1},nt=function(t,e){var r={type:\"reference\",object:t};void 0===e.internal.getPageInfo(t.page).pageContext.annotations.find((function(t){return t.type===r.type&&t.object===r.object}))&&e.internal.getPageInfo(t.page).pageContext.annotations.push(r)},it=function(e,r){for(var n in e)if(e.hasOwnProperty(n)){var i=n,a=e[n];r.internal.newObjectDeferredBegin(a.objId,!0),\"object\"===t(a)&&\"function\"==typeof a.putStream&&a.putStream(),delete e[i]}},at=function(e,r){if(r.scope=e,void 0!==e.internal&&(void 0===e.internal.acroformPlugin||!1===e.internal.acroformPlugin.isInitialized)){if(lt.FieldNum=0,e.internal.acroformPlugin=JSON.parse(JSON.stringify(rt)),e.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"Exception while creating AcroformDictionary\");D=e.internal.scaleFactor,e.internal.acroformPlugin.acroFormDictionaryRoot=new ht,e.internal.acroformPlugin.acroFormDictionaryRoot.scope=e,e.internal.acroformPlugin.acroFormDictionaryRoot._eventID=e.internal.events.subscribe(\"postPutResources\",(function(){!function(t){t.internal.events.unsubscribe(t.internal.acroformPlugin.acroFormDictionaryRoot._eventID),delete t.internal.acroformPlugin.acroFormDictionaryRoot._eventID,t.internal.acroformPlugin.printedOut=!0}(e)})),e.internal.events.subscribe(\"buildDocument\",(function(){!function(t){t.internal.acroformPlugin.acroFormDictionaryRoot.objId=void 0;var e=t.internal.acroformPlugin.acroFormDictionaryRoot.Fields;for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];n.objId=void 0,n.hasAnnotation&&nt(n,t)}}(e)})),e.internal.events.subscribe(\"putCatalog\",(function(){!function(t){if(void 0===t.internal.acroformPlugin.acroFormDictionaryRoot)throw new Error(\"putCatalogCallback: Root missing.\");t.internal.write(\"/AcroForm \"+t.internal.acroformPlugin.acroFormDictionaryRoot.objId+\" 0 R\")}(e)})),e.internal.events.subscribe(\"postPutPages\",(function(r){!function(e,r){var n=!e;for(var i in e||(r.internal.newObjectDeferredBegin(r.internal.acroformPlugin.acroFormDictionaryRoot.objId,!0),r.internal.acroformPlugin.acroFormDictionaryRoot.putStream()),e=e||r.internal.acroformPlugin.acroFormDictionaryRoot.Kids)if(e.hasOwnProperty(i)){var a=e[i],o=[],s=a.Rect;if(a.Rect&&(a.Rect=$(a.Rect,r)),r.internal.newObjectDeferredBegin(a.objId,!0),a.DA=At.createDefaultAppearanceStream(a),\"object\"===t(a)&&\"function\"==typeof a.getKeyValueListForStream&&(o=a.getKeyValueListForStream()),a.Rect=s,a.hasAppearanceStream&&!a.appearanceStreamContent){var c=Q(a);o.push({key:\"AP\",value:\"<</N \"+c+\">>\"}),r.internal.acroformPlugin.xForms.push(c)}if(a.appearanceStreamContent){var u=\"\";for(var h in a.appearanceStreamContent)if(a.appearanceStreamContent.hasOwnProperty(h)){var l=a.appearanceStreamContent[h];if(u+=\"/\"+h+\" \",u+=\"<<\",Object.keys(l).length>=1||Array.isArray(l)){for(var i in l)if(l.hasOwnProperty(i)){var f=l[i];\"function\"==typeof f&&(f=f.call(r,a)),u+=\"/\"+i+\" \"+f+\" \",r.internal.acroformPlugin.xForms.indexOf(f)>=0||r.internal.acroformPlugin.xForms.push(f)}}else\"function\"==typeof(f=l)&&(f=f.call(r,a)),u+=\"/\"+i+\" \"+f,r.internal.acroformPlugin.xForms.indexOf(f)>=0||r.internal.acroformPlugin.xForms.push(f);u+=\">>\"}o.push({key:\"AP\",value:\"<<\\n\"+u+\">>\"})}r.internal.putStream({additionalKeyValues:o,objectId:a.objId}),r.internal.out(\"endobj\")}n&&it(r.internal.acroformPlugin.xForms,r)}(r,e)})),e.internal.acroformPlugin.isInitialized=!0}},ot=q.__acroform__.arrayToPdfArray=function(e,r,n){var i=function(t){return t};if(Array.isArray(e)){for(var a=\"[\",o=0;o<e.length;o++)switch(0!==o&&(a+=\" \"),t(e[o])){case\"boolean\":case\"number\":case\"object\":a+=e[o].toString();break;case\"string\":\"/\"!==e[o].substr(0,1)?(void 0!==r&&n&&(i=n.internal.getEncryptor(r)),a+=\"(\"+R(i(e[o].toString()))+\")\"):a+=e[o].toString()}return a+=\"]\"}throw new Error(\"Invalid argument passed to jsPDF.__acroform__.arrayToPdfArray\")};var st=function(t,e,r){var n=function(t){return t};return void 0!==e&&r&&(n=r.internal.getEncryptor(e)),(t=t||\"\").toString(),t=\"(\"+R(n(t))+\")\"},ct=function(){this._objId=void 0,this._scope=void 0,Object.defineProperty(this,\"objId\",{get:function(){if(void 0===this._objId){if(void 0===this.scope)return;this._objId=this.scope.internal.newObjectDeferred()}return this._objId},set:function(t){this._objId=t}}),Object.defineProperty(this,\"scope\",{value:this._scope,writable:!0})};ct.prototype.toString=function(){return this.objId+\" 0 R\"},ct.prototype.putStream=function(){var t=this.getKeyValueListForStream();this.scope.internal.putStream({data:this.stream,additionalKeyValues:t,objectId:this.objId}),this.scope.internal.out(\"endobj\")},ct.prototype.getKeyValueListForStream=function(){var t=[],e=Object.getOwnPropertyNames(this).filter((function(t){return\"content\"!=t&&\"appearanceStreamContent\"!=t&&\"scope\"!=t&&\"objId\"!=t&&\"_\"!=t.substring(0,1)}));for(var r in e)if(!1===Object.getOwnPropertyDescriptor(this,e[r]).configurable){var n=e[r],i=this[n];i&&(Array.isArray(i)?t.push({key:n,value:ot(i,this.objId,this.scope)}):i instanceof ct?(i.scope=this.scope,t.push({key:n,value:i.objId+\" 0 R\"})):\"function\"!=typeof i&&t.push({key:n,value:i}))}return t};var ut=function(){ct.call(this),Object.defineProperty(this,\"Type\",{value:\"/XObject\",configurable:!1,writable:!0}),Object.defineProperty(this,\"Subtype\",{value:\"/Form\",configurable:!1,writable:!0}),Object.defineProperty(this,\"FormType\",{value:1,configurable:!1,writable:!0});var t,e=[];Object.defineProperty(this,\"BBox\",{configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"Resources\",{value:\"2 0 R\",configurable:!1,writable:!0}),Object.defineProperty(this,\"stream\",{enumerable:!1,configurable:!0,set:function(e){t=e.trim()},get:function(){return t||null}})};H(ut,ct);var ht=function(){ct.call(this);var t,e=[];Object.defineProperty(this,\"Kids\",{enumerable:!1,configurable:!0,get:function(){return e.length>0?e:void 0}}),Object.defineProperty(this,\"Fields\",{enumerable:!1,configurable:!1,get:function(){return e}}),Object.defineProperty(this,\"DA\",{enumerable:!1,configurable:!1,get:function(){if(t){var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+R(e(t))+\")\"}},set:function(e){t=e}})};H(ht,ct);var lt=function t(){ct.call(this);var e=4;Object.defineProperty(this,\"F\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute F supplied.');e=t}}),Object.defineProperty(this,\"showWhenPrinted\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(e,3))},set:function(t){!0===Boolean(t)?this.F=K(e,3):this.F=Z(e,3)}});var r=0;Object.defineProperty(this,\"Ff\",{enumerable:!1,configurable:!1,get:function(){return r},set:function(t){if(isNaN(t))throw new Error('Invalid value \"'+t+'\" for attribute Ff supplied.');r=t}});var n=[];Object.defineProperty(this,\"Rect\",{enumerable:!1,configurable:!1,get:function(){if(0!==n.length)return n},set:function(t){n=void 0!==t?t:[]}}),Object.defineProperty(this,\"x\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[0])?0:n[0]},set:function(t){n[0]=t}}),Object.defineProperty(this,\"y\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[1])?0:n[1]},set:function(t){n[1]=t}}),Object.defineProperty(this,\"width\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[2])?0:n[2]},set:function(t){n[2]=t}}),Object.defineProperty(this,\"height\",{enumerable:!0,configurable:!0,get:function(){return!n||isNaN(n[3])?0:n[3]},set:function(t){n[3]=t}});var i=\"\";Object.defineProperty(this,\"FT\",{enumerable:!0,configurable:!1,get:function(){return i},set:function(t){switch(t){case\"/Btn\":case\"/Tx\":case\"/Ch\":case\"/Sig\":i=t;break;default:throw new Error('Invalid value \"'+t+'\" for attribute FT supplied.')}}});var a=null;Object.defineProperty(this,\"T\",{enumerable:!0,configurable:!1,get:function(){if(!a||a.length<1){if(this instanceof yt)return;a=\"FieldObject\"+t.FieldNum++}var e=function(t){return t};return this.scope&&(e=this.scope.internal.getEncryptor(this.objId)),\"(\"+R(e(a))+\")\"},set:function(t){a=t.toString()}}),Object.defineProperty(this,\"fieldName\",{configurable:!0,enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=\"helvetica\";Object.defineProperty(this,\"fontName\",{enumerable:!0,configurable:!0,get:function(){return o},set:function(t){o=t}});var s=\"normal\";Object.defineProperty(this,\"fontStyle\",{enumerable:!0,configurable:!0,get:function(){return s},set:function(t){s=t}});var c=0;Object.defineProperty(this,\"fontSize\",{enumerable:!0,configurable:!0,get:function(){return c},set:function(t){c=t}});var u=void 0;Object.defineProperty(this,\"maxFontSize\",{enumerable:!0,configurable:!0,get:function(){return void 0===u?50/D:u},set:function(t){u=t}});var h=\"black\";Object.defineProperty(this,\"color\",{enumerable:!0,configurable:!0,get:function(){return h},set:function(t){h=t}});var l=\"/F1 0 Tf 0 g\";Object.defineProperty(this,\"DA\",{enumerable:!0,configurable:!1,get:function(){if(!(!l||this instanceof yt||this instanceof Nt))return st(l,this.objId,this.scope)},set:function(t){t=t.toString(),l=t}});var f=null;Object.defineProperty(this,\"DV\",{enumerable:!1,configurable:!1,get:function(){if(f)return this instanceof mt==!1?st(f,this.objId,this.scope):f},set:function(t){t=t.toString(),f=this instanceof mt==!1?\"(\"===t.substr(0,1)?T(t.substr(1,t.length-2)):T(t):t}}),Object.defineProperty(this,\"defaultValue\",{enumerable:!0,configurable:!0,get:function(){return this instanceof mt==!0?T(f.substr(1,f.length-1)):f},set:function(t){t=t.toString(),f=this instanceof mt==!0?\"/\"+t:t}});var d=null;Object.defineProperty(this,\"_V\",{enumerable:!1,configurable:!1,get:function(){if(d)return d},set:function(t){this.V=t}}),Object.defineProperty(this,\"V\",{enumerable:!1,configurable:!1,get:function(){if(d)return this instanceof mt==!1?st(d,this.objId,this.scope):d},set:function(t){t=t.toString(),d=this instanceof mt==!1?\"(\"===t.substr(0,1)?T(t.substr(1,t.length-2)):T(t):t}}),Object.defineProperty(this,\"value\",{enumerable:!0,configurable:!0,get:function(){return this instanceof mt==!0?T(d.substr(1,d.length-1)):d},set:function(t){t=t.toString(),d=this instanceof mt==!0?\"/\"+t:t}}),Object.defineProperty(this,\"hasAnnotation\",{enumerable:!0,configurable:!0,get:function(){return this.Rect}}),Object.defineProperty(this,\"Type\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Annot\":null}}),Object.defineProperty(this,\"Subtype\",{enumerable:!0,configurable:!1,get:function(){return this.hasAnnotation?\"/Widget\":null}});var p,g=!1;Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return g},set:function(t){t=Boolean(t),g=t}}),Object.defineProperty(this,\"page\",{enumerable:!0,configurable:!0,get:function(){if(p)return p},set:function(t){p=t}}),Object.defineProperty(this,\"readOnly\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,1))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,1):this.Ff=Z(this.Ff,1)}}),Object.defineProperty(this,\"required\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,2))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,2):this.Ff=Z(this.Ff,2)}}),Object.defineProperty(this,\"noExport\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,3))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,3):this.Ff=Z(this.Ff,3)}});var m=null;Object.defineProperty(this,\"Q\",{enumerable:!0,configurable:!1,get:function(){if(null!==m)return m},set:function(t){if(-1===[0,1,2].indexOf(t))throw new Error('Invalid value \"'+t+'\" for attribute Q supplied.');m=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){var t;switch(m){case 0:default:t=\"left\";break;case 1:t=\"center\";break;case 2:t=\"right\"}return t},configurable:!0,enumerable:!0,set:function(t){switch(t){case\"right\":case 2:m=2;break;case\"center\":case 1:m=1;break;case\"left\":case 0:default:m=0}}})};H(lt,ct);var ft=function(){lt.call(this),this.FT=\"/Ch\",this.V=\"()\",this.fontName=\"zapfdingbats\";var t=0;Object.defineProperty(this,\"TI\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"topIndex\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){t=e}});var e=[];Object.defineProperty(this,\"Opt\",{enumerable:!0,configurable:!1,get:function(){return ot(e,this.objId,this.scope)},set:function(t){var r,n;n=[],\"string\"==typeof(r=t)&&(n=function(t,e,r){r||(r=1);for(var n,i=[];n=e.exec(t);)i.push(n[r]);return i}(r,/\\((.*?)\\)/g)),e=n}}),this.getOptions=function(){return e},this.setOptions=function(t){e=t,this.sort&&e.sort()},this.addOption=function(t){t=(t=t||\"\").toString(),e.push(t),this.sort&&e.sort()},this.removeOption=function(t,r){for(r=r||!1,t=(t=t||\"\").toString();-1!==e.indexOf(t)&&(e.splice(e.indexOf(t),1),!1!==r););},Object.defineProperty(this,\"combo\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,18))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,18):this.Ff=Z(this.Ff,18)}}),Object.defineProperty(this,\"edit\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,19))},set:function(t){!0===this.combo&&(!0===Boolean(t)?this.Ff=K(this.Ff,19):this.Ff=Z(this.Ff,19))}}),Object.defineProperty(this,\"sort\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,20))},set:function(t){!0===Boolean(t)?(this.Ff=K(this.Ff,20),e.sort()):this.Ff=Z(this.Ff,20)}}),Object.defineProperty(this,\"multiSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,22))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,22):this.Ff=Z(this.Ff,22)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,23):this.Ff=Z(this.Ff,23)}}),Object.defineProperty(this,\"commitOnSelChange\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,27))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,27):this.Ff=Z(this.Ff,27)}}),this.hasAppearanceStream=!1};H(ft,lt);var dt=function(){ft.call(this),this.fontName=\"helvetica\",this.combo=!1};H(dt,ft);var pt=function(){dt.call(this),this.combo=!0};H(pt,dt);var gt=function(){pt.call(this),this.edit=!0};H(gt,pt);var mt=function(){lt.call(this),this.FT=\"/Btn\",Object.defineProperty(this,\"noToggleToOff\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,15))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,15):this.Ff=Z(this.Ff,15)}}),Object.defineProperty(this,\"radio\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,16))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,16):this.Ff=Z(this.Ff,16)}}),Object.defineProperty(this,\"pushButton\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,17))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,17):this.Ff=Z(this.Ff,17)}}),Object.defineProperty(this,\"radioIsUnison\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,26):this.Ff=Z(this.Ff,26)}});var e,r={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};if(this.scope&&(t=this.scope.internal.getEncryptor(this.objId)),0!==Object.keys(r).length){var e,n=[];for(e in n.push(\"<<\"),r)n.push(\"/\"+e+\" (\"+R(t(r[e]))+\")\");return n.push(\">>\"),n.join(\"\\n\")}},set:function(e){\"object\"===t(e)&&(r=e)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return r.CA||\"\"},set:function(t){\"string\"==typeof t&&(r.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return e.substr(1,e.length-1)},set:function(t){e=\"/\"+t}})};H(mt,lt);var vt=function(){mt.call(this),this.pushButton=!0};H(vt,mt);var bt=function(){mt.call(this),this.radio=!0,this.pushButton=!1;var t=[];Object.defineProperty(this,\"Kids\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=void 0!==e?e:[]}})};H(bt,mt);var yt=function(){var e,r;lt.call(this),Object.defineProperty(this,\"Parent\",{enumerable:!1,configurable:!1,get:function(){return e},set:function(t){e=t}}),Object.defineProperty(this,\"optionName\",{enumerable:!1,configurable:!0,get:function(){return r},set:function(t){r=t}});var n,i={};Object.defineProperty(this,\"MK\",{enumerable:!1,configurable:!1,get:function(){var t=function(t){return t};this.scope&&(t=this.scope.internal.getEncryptor(this.objId));var e,r=[];for(e in r.push(\"<<\"),i)r.push(\"/\"+e+\" (\"+R(t(i[e]))+\")\");return r.push(\">>\"),r.join(\"\\n\")},set:function(e){\"object\"===t(e)&&(i=e)}}),Object.defineProperty(this,\"caption\",{enumerable:!0,configurable:!0,get:function(){return i.CA||\"\"},set:function(t){\"string\"==typeof t&&(i.CA=t)}}),Object.defineProperty(this,\"AS\",{enumerable:!1,configurable:!1,get:function(){return n},set:function(t){n=t}}),Object.defineProperty(this,\"appearanceState\",{enumerable:!0,configurable:!0,get:function(){return n.substr(1,n.length-1)},set:function(t){n=\"/\"+t}}),this.caption=\"l\",this.appearanceState=\"Off\",this._AppearanceType=At.RadioButton.Circle,this.appearanceStreamContent=this._AppearanceType.createAppearanceStream(this.optionName)};H(yt,lt),bt.prototype.setAppearance=function(t){if(!(\"createAppearanceStream\"in t)||!(\"getCA\"in t))throw new Error(\"Couldn't assign Appearance to RadioButton. Appearance was Invalid!\");for(var e in this.Kids)if(this.Kids.hasOwnProperty(e)){var r=this.Kids[e];r.appearanceStreamContent=t.createAppearanceStream(r.optionName),r.caption=t.getCA()}},bt.prototype.createOption=function(t){var e=new yt;return e.Parent=this,e.optionName=t,this.Kids.push(e),xt.call(this.scope,e),e};var wt=function(){mt.call(this),this.fontName=\"zapfdingbats\",this.caption=\"3\",this.appearanceState=\"On\",this.value=\"On\",this.textAlign=\"center\",this.appearanceStreamContent=At.CheckBox.createAppearanceStream()};H(wt,mt);var Nt=function(){lt.call(this),this.FT=\"/Tx\",Object.defineProperty(this,\"multiline\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,13))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,13):this.Ff=Z(this.Ff,13)}}),Object.defineProperty(this,\"fileSelect\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,21))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,21):this.Ff=Z(this.Ff,21)}}),Object.defineProperty(this,\"doNotSpellCheck\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,23))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,23):this.Ff=Z(this.Ff,23)}}),Object.defineProperty(this,\"doNotScroll\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,24))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,24):this.Ff=Z(this.Ff,24)}}),Object.defineProperty(this,\"comb\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,25))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,25):this.Ff=Z(this.Ff,25)}}),Object.defineProperty(this,\"richText\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,26))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,26):this.Ff=Z(this.Ff,26)}});var t=null;Object.defineProperty(this,\"MaxLen\",{enumerable:!0,configurable:!1,get:function(){return t},set:function(e){t=e}}),Object.defineProperty(this,\"maxLength\",{enumerable:!0,configurable:!0,get:function(){return t},set:function(e){Number.isInteger(e)&&(t=e)}}),Object.defineProperty(this,\"hasAppearanceStream\",{enumerable:!0,configurable:!0,get:function(){return this.V||this.DV}})};H(Nt,lt);var Lt=function(){Nt.call(this),Object.defineProperty(this,\"password\",{enumerable:!0,configurable:!0,get:function(){return Boolean(X(this.Ff,14))},set:function(t){!0===Boolean(t)?this.Ff=K(this.Ff,14):this.Ff=Z(this.Ff,14)}}),this.password=!0};H(Lt,Nt);var At={CheckBox:{createAppearanceStream:function(){return{N:{On:At.CheckBox.YesNormal},D:{On:At.CheckBox.YesPushDown,Off:At.CheckBox.OffPushDown}}},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=t.scope.internal.getFont(t.fontName,t.fontStyle).id,i=t.scope.__private__.encodeColorString(t.color),a=tt(t,t.caption);return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),r.push(\"BMC\"),r.push(\"q\"),r.push(\"0 0 1 rg\"),r.push(\"/\"+n+\" \"+U(a.fontSize)+\" Tf \"+i),r.push(\"BT\"),r.push(a.text),r.push(\"ET\"),r.push(\"Q\"),r.push(\"EMC\"),e.stream=r.join(\"\\n\"),e},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=t.scope.internal.getFont(t.fontName,t.fontStyle).id,n=t.scope.__private__.encodeColorString(t.color),i=[],a=At.internal.getHeight(t),o=At.internal.getWidth(t),s=tt(t,t.caption);return i.push(\"1 g\"),i.push(\"0 0 \"+U(o)+\" \"+U(a)+\" re\"),i.push(\"f\"),i.push(\"q\"),i.push(\"0 0 1 rg\"),i.push(\"0 0 \"+U(o-1)+\" \"+U(a-1)+\" re\"),i.push(\"W\"),i.push(\"n\"),i.push(\"0 g\"),i.push(\"BT\"),i.push(\"/\"+r+\" \"+U(s.fontSize)+\" Tf \"+n),i.push(s.text),i.push(\"ET\"),i.push(\"Q\"),e.stream=i.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}},RadioButton:{Circle:{createAppearanceStream:function(t){var e={D:{Off:At.RadioButton.Circle.OffPushDown},N:{}};return e.N[t]=At.RadioButton.Circle.YesNormal,e.D[t]=At.RadioButton.Circle.YesPushDown,e},getCA:function(){return\"l\"},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=At.internal.Bezier_C,a=Number((n*i).toFixed(5));return r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+a+\" \"+a+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+a+\" \"+n+\" -\"+n+\" \"+a+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+a+\" -\"+a+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(a+\" -\"+n+\" \"+n+\" -\"+a+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*At.internal.Bezier_C).toFixed(5)),o=Number((n*At.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),r.push(\"0 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(n+\" 0 m\"),r.push(n+\" \"+o+\" \"+o+\" \"+n+\" 0 \"+n+\" c\"),r.push(\"-\"+o+\" \"+n+\" -\"+n+\" \"+o+\" -\"+n+\" 0 c\"),r.push(\"-\"+n+\" -\"+o+\" -\"+o+\" -\"+n+\" 0 -\"+n+\" c\"),r.push(o+\" -\"+n+\" \"+n+\" -\"+o+\" \"+n+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.getWidth(t)<=At.internal.getHeight(t)?At.internal.getWidth(t)/4:At.internal.getHeight(t)/4;n=Number((.9*n).toFixed(5));var i=Number((2*n).toFixed(5)),a=Number((i*At.internal.Bezier_C).toFixed(5));return r.push(\"0.749023 g\"),r.push(\"q\"),r.push(\"1 0 0 1 \"+z(At.internal.getWidth(t)/2)+\" \"+z(At.internal.getHeight(t)/2)+\" cm\"),r.push(i+\" 0 m\"),r.push(i+\" \"+a+\" \"+a+\" \"+i+\" 0 \"+i+\" c\"),r.push(\"-\"+a+\" \"+i+\" -\"+i+\" \"+a+\" -\"+i+\" 0 c\"),r.push(\"-\"+i+\" -\"+a+\" -\"+a+\" -\"+i+\" 0 -\"+i+\" c\"),r.push(a+\" -\"+i+\" \"+i+\" -\"+a+\" \"+i+\" 0 c\"),r.push(\"f\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e}},Cross:{createAppearanceStream:function(t){var e={D:{Off:At.RadioButton.Cross.OffPushDown},N:{}};return e.N[t]=At.RadioButton.Cross.YesNormal,e.D[t]=At.RadioButton.Cross.YesPushDown,e},getCA:function(){return\"8\"},YesNormal:function(t){var e=V(t);e.scope=t.scope;var r=[],n=At.internal.calculateCross(t);return r.push(\"q\"),r.push(\"1 1 \"+U(At.internal.getWidth(t)-2)+\" \"+U(At.internal.getHeight(t)-2)+\" re\"),r.push(\"W\"),r.push(\"n\"),r.push(U(n.x1.x)+\" \"+U(n.x1.y)+\" m\"),r.push(U(n.x2.x)+\" \"+U(n.x2.y)+\" l\"),r.push(U(n.x4.x)+\" \"+U(n.x4.y)+\" m\"),r.push(U(n.x3.x)+\" \"+U(n.x3.y)+\" l\"),r.push(\"s\"),r.push(\"Q\"),e.stream=r.join(\"\\n\"),e},YesPushDown:function(t){var e=V(t);e.scope=t.scope;var r=At.internal.calculateCross(t),n=[];return n.push(\"0.749023 g\"),n.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),n.push(\"f\"),n.push(\"q\"),n.push(\"1 1 \"+U(At.internal.getWidth(t)-2)+\" \"+U(At.internal.getHeight(t)-2)+\" re\"),n.push(\"W\"),n.push(\"n\"),n.push(U(r.x1.x)+\" \"+U(r.x1.y)+\" m\"),n.push(U(r.x2.x)+\" \"+U(r.x2.y)+\" l\"),n.push(U(r.x4.x)+\" \"+U(r.x4.y)+\" m\"),n.push(U(r.x3.x)+\" \"+U(r.x3.y)+\" l\"),n.push(\"s\"),n.push(\"Q\"),e.stream=n.join(\"\\n\"),e},OffPushDown:function(t){var e=V(t);e.scope=t.scope;var r=[];return r.push(\"0.749023 g\"),r.push(\"0 0 \"+U(At.internal.getWidth(t))+\" \"+U(At.internal.getHeight(t))+\" re\"),r.push(\"f\"),e.stream=r.join(\"\\n\"),e}}},createDefaultAppearanceStream:function(t){var e=t.scope.internal.getFont(t.fontName,t.fontStyle).id,r=t.scope.__private__.encodeColorString(t.color);return\"/\"+e+\" \"+t.fontSize+\" Tf \"+r}};At.internal={Bezier_C:.551915024494,calculateCross:function(t){var e=At.internal.getWidth(t),r=At.internal.getHeight(t),n=Math.min(e,r);return{x1:{x:(e-n)/2,y:(r-n)/2+n},x2:{x:(e-n)/2+n,y:(r-n)/2},x3:{x:(e-n)/2,y:(r-n)/2},x4:{x:(e-n)/2+n,y:(r-n)/2+n}}}},At.internal.getWidth=function(e){var r=0;return\"object\"===t(e)&&(r=W(e.Rect[2])),r},At.internal.getHeight=function(e){var r=0;return\"object\"===t(e)&&(r=W(e.Rect[3])),r};var xt=q.addField=function(t){if(at(this,t),!(t instanceof lt))throw new Error(\"Invalid argument passed to jsPDF.addField.\");var e;return(e=t).scope.internal.acroformPlugin.printedOut&&(e.scope.internal.acroformPlugin.printedOut=!1,e.scope.internal.acroformPlugin.acroFormDictionaryRoot=null),e.scope.internal.acroformPlugin.acroFormDictionaryRoot.Fields.push(e),t.page=t.scope.internal.getCurrentPageInfo().pageNumber,this};q.AcroFormChoiceField=ft,q.AcroFormListBox=dt,q.AcroFormComboBox=pt,q.AcroFormEditBox=gt,q.AcroFormButton=mt,q.AcroFormPushButton=vt,q.AcroFormRadioButton=bt,q.AcroFormCheckBox=wt,q.AcroFormTextField=Nt,q.AcroFormPasswordField=Lt,q.AcroFormAppearance=At,q.AcroForm={ChoiceField:ft,ListBox:dt,ComboBox:pt,EditBox:gt,Button:mt,PushButton:vt,RadioButton:bt,CheckBox:wt,TextField:Nt,PasswordField:Lt,Appearance:At},E.AcroForm={ChoiceField:ft,ListBox:dt,ComboBox:pt,EditBox:gt,Button:mt,PushButton:vt,RadioButton:bt,CheckBox:wt,TextField:Nt,PasswordField:Lt,Appearance:At};var St=E.AcroForm;function _t(t){return t.reduce((function(t,e,r){return t[e]=r,t}),{})}!function(e){e.__addimage__={};var r=\"UNKNOWN\",n={PNG:[[137,80,78,71]],TIFF:[[77,77,0,42],[73,73,42,0]],JPEG:[[255,216,255,224,void 0,void 0,74,70,73,70,0],[255,216,255,225,void 0,void 0,69,120,105,102,0,0],[255,216,255,219],[255,216,255,238]],JPEG2000:[[0,0,0,12,106,80,32,32]],GIF87a:[[71,73,70,56,55,97]],GIF89a:[[71,73,70,56,57,97]],WEBP:[[82,73,70,70,void 0,void 0,void 0,void 0,87,69,66,80]],BMP:[[66,77],[66,65],[67,73],[67,80],[73,67],[80,84]]},i=e.__addimage__.getImageFileTypeByImageData=function(t,e){var i,a,o,s,c,u=r;if(\"RGBA\"===(e=e||r)||void 0!==t.data&&t.data instanceof Uint8ClampedArray&&\"height\"in t&&\"width\"in t)return\"RGBA\";if(x(t))for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t[a]){s=!1;break}if(!0===s){u=c;break}}else for(c in n)for(o=n[c],i=0;i<o.length;i+=1){for(s=!0,a=0;a<o[i].length;a+=1)if(void 0!==o[i][a]&&o[i][a]!==t.charCodeAt(a)){s=!1;break}if(!0===s){u=c;break}}return u===r&&e!==r&&(u=e),u},a=function t(e){for(var r=this.internal.write,n=this.internal.putStream,i=(0,this.internal.getFilters)();-1!==i.indexOf(\"FlateEncode\");)i.splice(i.indexOf(\"FlateEncode\"),1);e.objectId=this.internal.newObject();var a=[];if(a.push({key:\"Type\",value:\"/XObject\"}),a.push({key:\"Subtype\",value:\"/Image\"}),a.push({key:\"Width\",value:e.width}),a.push({key:\"Height\",value:e.height}),e.colorSpace===b.INDEXED?a.push({key:\"ColorSpace\",value:\"[/Indexed /DeviceRGB \"+(e.palette.length/3-1)+\" \"+(\"sMask\"in e&&void 0!==e.sMask?e.objectId+2:e.objectId+1)+\" 0 R]\"}):(a.push({key:\"ColorSpace\",value:\"/\"+e.colorSpace}),e.colorSpace===b.DEVICE_CMYK&&a.push({key:\"Decode\",value:\"[1 0 1 0 1 0 1 0]\"})),a.push({key:\"BitsPerComponent\",value:e.bitsPerComponent}),\"decodeParameters\"in e&&void 0!==e.decodeParameters&&a.push({key:\"DecodeParms\",value:\"<<\"+e.decodeParameters+\">>\"}),\"transparency\"in e&&Array.isArray(e.transparency)){for(var o=\"\",s=0,c=e.transparency.length;s<c;s++)o+=e.transparency[s]+\" \"+e.transparency[s]+\" \";a.push({key:\"Mask\",value:\"[\"+o+\"]\"})}void 0!==e.sMask&&a.push({key:\"SMask\",value:e.objectId+1+\" 0 R\"});var u=void 0!==e.filter?[\"/\"+e.filter]:void 0;if(n({data:e.data,additionalKeyValues:a,alreadyAppliedFilters:u,objectId:e.objectId}),r(\"endobj\"),\"sMask\"in e&&void 0!==e.sMask){var h=\"/Predictor \"+e.predictor+\" /Colors 1 /BitsPerComponent \"+e.bitsPerComponent+\" /Columns \"+e.width,l={width:e.width,height:e.height,colorSpace:\"DeviceGray\",bitsPerComponent:e.bitsPerComponent,decodeParameters:h,data:e.sMask};\"filter\"in e&&(l.filter=e.filter),t.call(this,l)}if(e.colorSpace===b.INDEXED){var f=this.internal.newObject();n({data:_(new Uint8Array(e.palette)),objectId:f}),r(\"endobj\")}},o=function(){var t=this.internal.collections.addImage_images;for(var e in t)a.call(this,t[e])},s=function(){var t,e=this.internal.collections.addImage_images,r=this.internal.write;for(var n in e)r(\"/I\"+(t=e[n]).index,t.objectId,\"0\",\"R\")},c=function(){this.internal.collections.addImage_images||(this.internal.collections.addImage_images={},this.internal.events.subscribe(\"putResources\",o),this.internal.events.subscribe(\"putXobjectDict\",s))},h=function(){var t=this.internal.collections.addImage_images;return c.call(this),t},l=function(){return Object.keys(this.internal.collections.addImage_images).length},f=function(t){return\"function\"==typeof e[\"process\"+t.toUpperCase()]},d=function(e){return\"object\"===t(e)&&1===e.nodeType},p=function(t,r){if(\"IMG\"===t.nodeName&&t.hasAttribute(\"src\")){var n=\"\"+t.getAttribute(\"src\");if(0===n.indexOf(\"data:image/\"))return u(unescape(n).split(\"base64,\").pop());var i=e.loadFile(n,!0);if(void 0!==i)return i}if(\"CANVAS\"===t.nodeName){if(0===t.width||0===t.height)throw new Error(\"Given canvas must have data. Canvas width: \"+t.width+\", height: \"+t.height);var a;switch(r){case\"PNG\":a=\"image/png\";break;case\"WEBP\":a=\"image/webp\";break;case\"JPEG\":case\"JPG\":default:a=\"image/jpeg\"}return u(t.toDataURL(a,1).split(\"base64,\").pop())}},g=function(t){var e=this.internal.collections.addImage_images;if(e)for(var r in e)if(t===e[r].alias)return e[r]},m=function(t,e,r){return t||e||(t=-96,e=-96),t<0&&(t=-1*r.width*72/t/this.internal.scaleFactor),e<0&&(e=-1*r.height*72/e/this.internal.scaleFactor),0===t&&(t=e*r.width/r.height),0===e&&(e=t*r.height/r.width),[t,e]},v=function(t,e,r,n,i,a){var o=m.call(this,r,n,i),s=this.internal.getCoordinateString,c=this.internal.getVerticalCoordinateString,u=h.call(this);if(r=o[0],n=o[1],u[i.index]=i,a){a*=Math.PI/180;var l=Math.cos(a),f=Math.sin(a),d=function(t){return t.toFixed(4)},p=[d(l),d(f),d(-1*f),d(l),0,0,\"cm\"]}this.internal.write(\"q\"),a?(this.internal.write([1,\"0\",\"0\",1,s(t),c(e+n),\"cm\"].join(\" \")),this.internal.write(p.join(\" \")),this.internal.write([s(r),\"0\",\"0\",s(n),\"0\",\"0\",\"cm\"].join(\" \"))):this.internal.write([s(r),\"0\",\"0\",s(n),s(t),c(e+n),\"cm\"].join(\" \")),this.isAdvancedAPI()&&this.internal.write([1,0,0,-1,0,0,\"cm\"].join(\" \")),this.internal.write(\"/I\"+i.index+\" Do\"),this.internal.write(\"Q\")},b=e.color_spaces={DEVICE_RGB:\"DeviceRGB\",DEVICE_GRAY:\"DeviceGray\",DEVICE_CMYK:\"DeviceCMYK\",CAL_GREY:\"CalGray\",CAL_RGB:\"CalRGB\",LAB:\"Lab\",ICC_BASED:\"ICCBased\",INDEXED:\"Indexed\",PATTERN:\"Pattern\",SEPARATION:\"Separation\",DEVICE_N:\"DeviceN\"};e.decode={DCT_DECODE:\"DCTDecode\",FLATE_DECODE:\"FlateDecode\",LZW_DECODE:\"LZWDecode\",JPX_DECODE:\"JPXDecode\",JBIG2_DECODE:\"JBIG2Decode\",ASCII85_DECODE:\"ASCII85Decode\",ASCII_HEX_DECODE:\"ASCIIHexDecode\",RUN_LENGTH_DECODE:\"RunLengthDecode\",CCITT_FAX_DECODE:\"CCITTFaxDecode\"};var y=e.image_compression={NONE:\"NONE\",FAST:\"FAST\",MEDIUM:\"MEDIUM\",SLOW:\"SLOW\"},w=e.__addimage__.sHashCode=function(t){var e,r,n=0;if(\"string\"==typeof t)for(r=t.length,e=0;e<r;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;else if(x(t))for(r=t.byteLength/2,e=0;e<r;e++)n=(n<<5)-n+t[e],n|=0;return n},N=e.__addimage__.validateStringAsBase64=function(t){(t=t||\"\").toString().trim();var e=!0;return 0===t.length&&(e=!1),t.length%4!=0&&(e=!1),!1===/^[A-Za-z0-9+/]+$/.test(t.substr(0,t.length-2))&&(e=!1),!1===/^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(t.substr(-2))&&(e=!1),e},L=e.__addimage__.extractImageFromDataUrl=function(t){var e=(t=t||\"\").split(\"base64,\"),r=null;if(2===e.length){var n=/^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(e[0]);Array.isArray(n)&&(r={mimeType:n[1],charset:n[2],data:e[1]})}return r},A=e.__addimage__.supportsArrayBuffer=function(){return\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array};e.__addimage__.isArrayBuffer=function(t){return A()&&t instanceof ArrayBuffer};var x=e.__addimage__.isArrayBufferView=function(t){return A()&&\"undefined\"!=typeof Uint32Array&&(t instanceof Int8Array||t instanceof Uint8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)},S=e.__addimage__.binaryStringToUint8Array=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r},_=e.__addimage__.arrayBufferToBinaryString=function(t){for(var e=\"\",r=x(t)?t:new Uint8Array(t),n=0;n<r.length;n+=8192)e+=String.fromCharCode.apply(null,r.subarray(n,n+8192));return e};e.addImage=function(){var e,n,i,a,o,s,u,h,l;if(\"number\"==typeof arguments[1]?(n=r,i=arguments[1],a=arguments[2],o=arguments[3],s=arguments[4],u=arguments[5],h=arguments[6],l=arguments[7]):(n=arguments[1],i=arguments[2],a=arguments[3],o=arguments[4],s=arguments[5],u=arguments[6],h=arguments[7],l=arguments[8]),\"object\"===t(e=arguments[0])&&!d(e)&&\"imageData\"in e){var f=e;e=f.imageData,n=f.format||n||r,i=f.x||i||0,a=f.y||a||0,o=f.w||f.width||o,s=f.h||f.height||s,u=f.alias||u,h=f.compression||h,l=f.rotation||f.angle||l}var p=this.internal.getFilters();if(void 0===h&&-1!==p.indexOf(\"FlateEncode\")&&(h=\"SLOW\"),isNaN(i)||isNaN(a))throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");c.call(this);var g=P.call(this,e,n,u,h);return v.call(this,i,a,o,s,g,l),this};var P=function(t,n,a,o){var s,c,u;if(\"string\"==typeof t&&i(t)===r){t=unescape(t);var h=k(t,!1);(\"\"!==h||void 0!==(h=e.loadFile(t,!0)))&&(t=h)}if(d(t)&&(t=p(t,n)),n=i(t,n),!f(n))throw new Error(\"addImage does not support files of type '\"+n+\"', please ensure that a plugin for '\"+n+\"' support is added.\");if((null==(u=a)||0===u.length)&&(a=function(t){return\"string\"==typeof t||x(t)?w(t):x(t.data)?w(t.data):null}(t)),(s=g.call(this,a))||(A()&&(t instanceof Uint8Array||\"RGBA\"===n||(c=t,t=S(t))),s=this[\"process\"+n.toUpperCase()](t,l.call(this),a,function(t){return t&&\"string\"==typeof t&&(t=t.toUpperCase()),t in e.image_compression?t:y.NONE}(o),c)),!s)throw new Error(\"An unknown error occurred whilst processing the image.\");return s},k=e.__addimage__.convertBase64ToBinaryString=function(t,e){var r;e=\"boolean\"!=typeof e||e;var n,i=\"\";if(\"string\"==typeof t){n=null!==(r=L(t))?r.data:t;try{i=u(n)}catch(t){if(e)throw N(n)?new Error(\"atob-Error in jsPDF.convertBase64ToBinaryString \"+t.message):new Error(\"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \")}}return i};e.getImageProperties=function(t){var n,a,o=\"\";if(d(t)&&(t=p(t)),\"string\"==typeof t&&i(t)===r&&(\"\"===(o=k(t,!1))&&(o=e.loadFile(t)||\"\"),t=o),a=i(t),!f(a))throw new Error(\"addImage does not support files of type '\"+a+\"', please ensure that a plugin for '\"+a+\"' support is added.\");if(!A()||t instanceof Uint8Array||(t=S(t)),!(n=this[\"process\"+a.toUpperCase()](t)))throw new Error(\"An unknown error occurred whilst processing the image\");return n.fileType=a,n}}(E.API),\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){if(void 0!==t&&\"\"!=t)return!0};E.API.events.push([\"addPage\",function(t){this.internal.getPageInfo(t.pageNumber).pageContext.annotations=[]}]),t.events.push([\"putPage\",function(t){for(var r,n,i,a=this.internal.getCoordinateString,o=this.internal.getVerticalCoordinateString,s=this.internal.getPageInfoByObjId(t.objId),c=t.pageContext.annotations,u=!1,h=0;h<c.length&&!u;h++)switch((r=c[h]).type){case\"link\":(e(r.options.url)||e(r.options.pageNumber))&&(u=!0);break;case\"reference\":case\"text\":case\"freetext\":u=!0}if(0!=u){this.internal.write(\"/Annots [\");for(var l=0;l<c.length;l++){r=c[l];var f=this.internal.pdfEscape,d=this.internal.getEncryptor(t.objId);switch(r.type){case\"reference\":this.internal.write(\" \"+r.object.objId+\" 0 R \");break;case\"text\":var p=this.internal.newAdditionalObject(),g=this.internal.newAdditionalObject(),m=this.internal.getEncryptor(p.objId),v=r.title||\"Note\";i=\"<</Type /Annot /Subtype /Text \"+(n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y)+\"] \")+\"/Contents (\"+f(m(r.contents))+\")\",i+=\" /Popup \"+g.objId+\" 0 R\",i+=\" /P \"+s.objId+\" 0 R\",i+=\" /T (\"+f(m(v))+\") >>\",p.content=i;var b=p.objId+\" 0 R\";i=\"<</Type /Annot /Subtype /Popup \"+(n=\"/Rect [\"+a(r.bounds.x+30)+\" \"+o(r.bounds.y+r.bounds.h)+\" \"+a(r.bounds.x+r.bounds.w+30)+\" \"+o(r.bounds.y)+\"] \")+\" /Parent \"+b,r.open&&(i+=\" /Open true\"),i+=\" >>\",g.content=i,this.internal.write(p.objId,\"0 R\",g.objId,\"0 R\");break;case\"freetext\":n=\"/Rect [\"+a(r.bounds.x)+\" \"+o(r.bounds.y)+\" \"+a(r.bounds.x+r.bounds.w)+\" \"+o(r.bounds.y+r.bounds.h)+\"] \";var y=r.color||\"#000000\";i=\"<</Type /Annot /Subtype /FreeText \"+n+\"/Contents (\"+f(d(r.contents))+\")\",i+=\" /DS(font: Helvetica,sans-serif 12.0pt; text-align:left; color:#\"+y+\")\",i+=\" /Border [0 0 0]\",i+=\" >>\",this.internal.write(i);break;case\"link\":if(r.options.name){var w=this.annotations._nameMap[r.options.name];r.options.pageNumber=w.page,r.options.top=w.y}else r.options.top||(r.options.top=0);if(n=\"/Rect [\"+r.finalBounds.x+\" \"+r.finalBounds.y+\" \"+r.finalBounds.w+\" \"+r.finalBounds.h+\"] \",i=\"\",r.options.url)i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /A <</S /URI /URI (\"+f(d(r.options.url))+\") >>\";else if(r.options.pageNumber){switch(i=\"<</Type /Annot /Subtype /Link \"+n+\"/Border [0 0 0] /Dest [\"+this.internal.getPageInfo(r.options.pageNumber).objId+\" 0 R\",r.options.magFactor=r.options.magFactor||\"XYZ\",r.options.magFactor){case\"Fit\":i+=\" /Fit]\";break;case\"FitH\":i+=\" /FitH \"+r.options.top+\"]\";break;case\"FitV\":r.options.left=r.options.left||0,i+=\" /FitV \"+r.options.left+\"]\";break;case\"XYZ\":default:var N=o(r.options.top);r.options.left=r.options.left||0,void 0===r.options.zoom&&(r.options.zoom=0),i+=\" /XYZ \"+r.options.left+\" \"+N+\" \"+r.options.zoom+\"]\"}}\"\"!=i&&(i+=\" >>\",this.internal.write(i))}}this.internal.write(\"]\")}}]),t.createAnnotation=function(t){var e=this.internal.getCurrentPageInfo();switch(t.type){case\"link\":this.link(t.bounds.x,t.bounds.y,t.bounds.w,t.bounds.h,t);break;case\"text\":case\"freetext\":e.pageContext.annotations.push(t)}},t.link=function(t,e,r,n,i){var a=this.internal.getCurrentPageInfo(),o=this.internal.getCoordinateString,s=this.internal.getVerticalCoordinateString;a.pageContext.annotations.push({finalBounds:{x:o(t),y:s(e),w:o(t+r),h:s(e+n)},options:i,type:\"link\"})},t.textWithLink=function(t,e,r,n){var i,a,o=this.getTextWidth(t),s=this.internal.getLineHeight()/this.internal.scaleFactor;if(void 0!==n.maxWidth){a=n.maxWidth;var c=this.splitTextToSize(t,a).length;i=Math.ceil(s*c)}else a=o,i=s;return this.text(t,e,r,n),r+=.2*s,\"center\"===n.align&&(e-=o/2),\"right\"===n.align&&(e-=o),this.link(e,r-s,a,i,n),o},t.getTextWidth=function(t){var e=this.internal.getFontSize();return this.getStringUnitWidth(t)*e/this.internal.scaleFactor}}(E.API),\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e={1569:[65152],1570:[65153,65154],1571:[65155,65156],1572:[65157,65158],1573:[65159,65160],1574:[65161,65162,65163,65164],1575:[65165,65166],1576:[65167,65168,65169,65170],1577:[65171,65172],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194],1584:[65195,65196],1585:[65197,65198],1586:[65199,65200],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1649:[64336,64337],1655:[64477],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393],1676:[64388,64389],1677:[64386,64387],1678:[64390,64391],1681:[64396,64397],1688:[64394,64395],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421],1729:[64422,64423,64424,64425],1733:[64480,64481],1734:[64473,64474],1735:[64471,64472],1736:[64475,64476],1737:[64482,64483],1739:[64478,64479],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431],1747:[64432,64433]},r={65247:{65154:65269,65156:65271,65160:65273,65166:65275},65248:{65154:65270,65156:65272,65160:65274,65166:65276},65165:{65247:{65248:{65258:65010}}},1617:{1612:64606,1613:64607,1614:64608,1615:64609,1616:64610}},n={1612:64606,1613:64607,1614:64608,1615:64609,1616:64610},i=[1570,1571,1573,1575];t.__arabicParser__={};var a=t.__arabicParser__.isInArabicSubstitutionA=function(t){return void 0!==e[t.charCodeAt(0)]},o=t.__arabicParser__.isArabicLetter=function(t){return\"string\"==typeof t&&/^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(t)},s=t.__arabicParser__.isArabicEndLetter=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length<=2},c=t.__arabicParser__.isArabicAlfLetter=function(t){return o(t)&&i.indexOf(t.charCodeAt(0))>=0};t.__arabicParser__.arabicLetterHasIsolatedForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=1};var u=t.__arabicParser__.arabicLetterHasFinalForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=2};t.__arabicParser__.arabicLetterHasInitialForm=function(t){return o(t)&&a(t)&&e[t.charCodeAt(0)].length>=3};var h=t.__arabicParser__.arabicLetterHasMedialForm=function(t){return o(t)&&a(t)&&4==e[t.charCodeAt(0)].length},l=t.__arabicParser__.resolveLigatures=function(t){var e=0,n=r,i=\"\",a=0;for(e=0;e<t.length;e+=1)void 0!==n[t.charCodeAt(e)]?(a++,\"number\"==typeof(n=n[t.charCodeAt(e)])&&(i+=String.fromCharCode(n),n=r,a=0),e===t.length-1&&(n=r,i+=t.charAt(e-(a-1)),e-=a-1,a=0)):(n=r,i+=t.charAt(e-a),e-=a,a=0);return i};t.__arabicParser__.isArabicDiacritic=function(t){return void 0!==t&&void 0!==n[t.charCodeAt(0)]};var f=t.__arabicParser__.getCorrectForm=function(t,e,r){return o(t)?!1===a(t)?-1:!u(t)||!o(e)&&!o(r)||!o(r)&&s(e)||s(t)&&!o(e)||s(t)&&c(e)||s(t)&&s(e)?0:h(t)&&o(e)&&!s(e)&&o(r)&&u(r)?3:s(t)||!o(r)?1:2:-1},d=function(t){var r=0,n=0,i=0,a=\"\",s=\"\",c=\"\",u=(t=t||\"\").split(\"\\\\s+\"),h=[];for(r=0;r<u.length;r+=1){for(h.push(\"\"),n=0;n<u[r].length;n+=1)a=u[r][n],s=u[r][n-1],c=u[r][n+1],o(a)?(i=f(a,s,c),h[r]+=-1!==i?String.fromCharCode(e[a.charCodeAt(0)][i]):a):h[r]+=a;h[r]=l(h[r])}return h.join(\" \")},p=t.__arabicParser__.processArabic=t.processArabic=function(){var t,e=\"string\"==typeof arguments[0]?arguments[0]:arguments[0].text,r=[];if(Array.isArray(e)){var n=0;for(r=[],n=0;n<e.length;n+=1)Array.isArray(e[n])?r.push([d(e[n][0]),e[n][1],e[n][2]]):r.push([d(e[n])]);t=r}else t=d(e);return\"string\"==typeof arguments[0]?t:(arguments[0].text=t,arguments[0])};t.events.push([\"preProcessText\",p])}(E.API),E.API.autoPrint=function(t){var e;switch((t=t||{}).variant=t.variant||\"non-conform\",t.variant){case\"javascript\":this.addJS(\"print({});\");break;case\"non-conform\":default:this.internal.events.subscribe(\"postPutResources\",(function(){e=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /Named\"),this.internal.out(\"/Type /Action\"),this.internal.out(\"/N /Print\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.out(\"/OpenAction \"+e+\" 0 R\")}))}return this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){var t=void 0;Object.defineProperty(this,\"pdf\",{get:function(){return t},set:function(e){t=e}});var e=150;Object.defineProperty(this,\"width\",{get:function(){return e},set:function(t){e=isNaN(t)||!1===Number.isInteger(t)||t<0?150:t,this.getContext(\"2d\").pageWrapXEnabled&&(this.getContext(\"2d\").pageWrapX=e+1)}});var r=300;Object.defineProperty(this,\"height\",{get:function(){return r},set:function(t){r=isNaN(t)||!1===Number.isInteger(t)||t<0?300:t,this.getContext(\"2d\").pageWrapYEnabled&&(this.getContext(\"2d\").pageWrapY=r+1)}});var n=[];Object.defineProperty(this,\"childNodes\",{get:function(){return n},set:function(t){n=t}});var i={};Object.defineProperty(this,\"style\",{get:function(){return i},set:function(t){i=t}}),Object.defineProperty(this,\"parentNode\",{})};e.prototype.getContext=function(t,e){var r;if(\"2d\"!==(t=t||\"2d\"))return null;for(r in e)this.pdf.context2d.hasOwnProperty(r)&&(this.pdf.context2d[r]=e[r]);return this.pdf.context2d._canvas=this,this.pdf.context2d},e.prototype.toDataURL=function(){throw new Error(\"toDataURL is not implemented.\")},t.events.push([\"initialized\",function(){this.canvas=new e,this.canvas.pdf=this}])}(E.API),function(e){var r={left:0,top:0,bottom:0,right:0},n=!1,i=function(){void 0===this.internal.__cell__&&(this.internal.__cell__={},this.internal.__cell__.padding=3,this.internal.__cell__.headerFunction=void 0,this.internal.__cell__.margins=Object.assign({},r),this.internal.__cell__.margins.width=this.getPageWidth(),a.call(this))},a=function(){this.internal.__cell__.lastCell=new o,this.internal.__cell__.pages=1},o=function(){var t=arguments[0];Object.defineProperty(this,\"x\",{enumerable:!0,get:function(){return t},set:function(e){t=e}});var e=arguments[1];Object.defineProperty(this,\"y\",{enumerable:!0,get:function(){return e},set:function(t){e=t}});var r=arguments[2];Object.defineProperty(this,\"width\",{enumerable:!0,get:function(){return r},set:function(t){r=t}});var n=arguments[3];Object.defineProperty(this,\"height\",{enumerable:!0,get:function(){return n},set:function(t){n=t}});var i=arguments[4];Object.defineProperty(this,\"text\",{enumerable:!0,get:function(){return i},set:function(t){i=t}});var a=arguments[5];Object.defineProperty(this,\"lineNumber\",{enumerable:!0,get:function(){return a},set:function(t){a=t}});var o=arguments[6];return Object.defineProperty(this,\"align\",{enumerable:!0,get:function(){return o},set:function(t){o=t}}),this};o.prototype.clone=function(){return new o(this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align)},o.prototype.toArray=function(){return[this.x,this.y,this.width,this.height,this.text,this.lineNumber,this.align]},e.setHeaderFunction=function(t){return i.call(this),this.internal.__cell__.headerFunction=\"function\"==typeof t?t:void 0,this},e.getTextDimensions=function(t,e){i.call(this);var r=(e=e||{}).fontSize||this.getFontSize(),n=e.font||this.getFont(),a=e.scaleFactor||this.internal.scaleFactor,o=0,s=0,c=0,u=this;if(!Array.isArray(t)&&\"string\"!=typeof t){if(\"number\"!=typeof t)throw new Error(\"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\");t=String(t)}var h=e.maxWidth;h>0?\"string\"==typeof t?t=this.splitTextToSize(t,h):\"[object Array]\"===Object.prototype.toString.call(t)&&(t=t.reduce((function(t,e){return t.concat(u.splitTextToSize(e,h))}),[])):t=Array.isArray(t)?t:[t];for(var l=0;l<t.length;l++)o<(c=this.getStringUnitWidth(t[l],{font:n})*r)&&(o=c);return 0!==o&&(s=t.length),{w:o/=a,h:Math.max((s*r*this.getLineHeightFactor()-r*(this.getLineHeightFactor()-1))/a,0)}},e.cellAddPage=function(){i.call(this),this.addPage();var t=this.internal.__cell__.margins||r;return this.internal.__cell__.lastCell=new o(t.left,t.top,void 0,void 0),this.internal.__cell__.pages+=1,this};var s=e.cell=function(){var t;t=arguments[0]instanceof o?arguments[0]:new o(arguments[0],arguments[1],arguments[2],arguments[3],arguments[4],arguments[5]),i.call(this);var e=this.internal.__cell__.lastCell,a=this.internal.__cell__.padding,s=this.internal.__cell__.margins||r,c=this.internal.__cell__.tableHeaderRow,u=this.internal.__cell__.printHeaders;return void 0!==e.lineNumber&&(e.lineNumber===t.lineNumber?(t.x=(e.x||0)+(e.width||0),t.y=e.y||0):e.y+e.height+t.height+s.bottom>this.getPageHeight()?(this.cellAddPage(),t.y=s.top,u&&c&&(this.printHeaderRow(t.lineNumber,!0),t.y+=c[0].height)):t.y=e.y+e.height||t.y),void 0!==t.text[0]&&(this.rect(t.x,t.y,t.width,t.height,!0===n?\"FD\":void 0),\"right\"===t.align?this.text(t.text,t.x+t.width-a,t.y+a,{align:\"right\",baseline:\"top\"}):\"center\"===t.align?this.text(t.text,t.x+t.width/2,t.y+a,{align:\"center\",baseline:\"top\",maxWidth:t.width-a-a}):this.text(t.text,t.x+a,t.y+a,{align:\"left\",baseline:\"top\",maxWidth:t.width-a-a})),this.internal.__cell__.lastCell=t,this};e.table=function(e,n,u,h,l){if(i.call(this),!u)throw new Error(\"No data for PDF table.\");var f,d,p,g,m=[],v=[],b=[],y={},w={},N=[],L=[],A=(l=l||{}).autoSize||!1,x=!1!==l.printHeaders,S=l.css&&void 0!==l.css[\"font-size\"]?16*l.css[\"font-size\"]:l.fontSize||12,_=l.margins||Object.assign({width:this.getPageWidth()},r),P=\"number\"==typeof l.padding?l.padding:3,k=l.headerBackgroundColor||\"#c8c8c8\",I=l.headerTextColor||\"#000\";if(a.call(this),this.internal.__cell__.printHeaders=x,this.internal.__cell__.margins=_,this.internal.__cell__.table_font_size=S,this.internal.__cell__.padding=P,this.internal.__cell__.headerBackgroundColor=k,this.internal.__cell__.headerTextColor=I,this.setFontSize(S),null==h)v=m=Object.keys(u[0]),b=m.map((function(){return\"left\"}));else if(Array.isArray(h)&&\"object\"===t(h[0]))for(m=h.map((function(t){return t.name})),v=h.map((function(t){return t.prompt||t.name||\"\"})),b=h.map((function(t){return t.align||\"left\"})),f=0;f<h.length;f+=1)w[h[f].name]=h[f].width*(19.049976/25.4);else Array.isArray(h)&&\"string\"==typeof h[0]&&(v=m=h,b=m.map((function(){return\"left\"})));if(A||Array.isArray(h)&&\"string\"==typeof h[0])for(f=0;f<m.length;f+=1){for(y[g=m[f]]=u.map((function(t){return t[g]})),this.setFont(void 0,\"bold\"),N.push(this.getTextDimensions(v[f],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w),d=y[g],this.setFont(void 0,\"normal\"),p=0;p<d.length;p+=1)N.push(this.getTextDimensions(d[p],{fontSize:this.internal.__cell__.table_font_size,scaleFactor:this.internal.scaleFactor}).w);w[g]=Math.max.apply(null,N)+P+P,N=[]}if(x){var F={};for(f=0;f<m.length;f+=1)F[m[f]]={},F[m[f]].text=v[f],F[m[f]].align=b[f];var C=c.call(this,F,w);L=m.map((function(t){return new o(e,n,w[t],C,F[t].text,void 0,F[t].align)})),this.setTableHeaderRow(L),this.printHeaderRow(1,!1)}var j=h.reduce((function(t,e){return t[e.name]=e.align,t}),{});for(f=0;f<u.length;f+=1){\"rowStart\"in l&&l.rowStart instanceof Function&&l.rowStart({row:f,data:u[f]},this);var O=c.call(this,u[f],w);for(p=0;p<m.length;p+=1){var B=u[f][m[p]];\"cellStart\"in l&&l.cellStart instanceof Function&&l.cellStart({row:f,col:p,data:B},this),s.call(this,new o(e,n,w[m[p]],O,B,f+2,j[m[p]]))}}return this.internal.__cell__.table_x=e,this.internal.__cell__.table_y=n,this};var c=function(t,e){var r=this.internal.__cell__.padding,n=this.internal.__cell__.table_font_size,i=this.internal.scaleFactor;return Object.keys(t).map((function(n){var i=t[n];return this.splitTextToSize(i.hasOwnProperty(\"text\")?i.text:i,e[n]-r-r)}),this).map((function(t){return this.getLineHeightFactor()*t.length*n/i+r+r}),this).reduce((function(t,e){return Math.max(t,e)}),0)};e.setTableHeaderRow=function(t){i.call(this),this.internal.__cell__.tableHeaderRow=t},e.printHeaderRow=function(t,e){if(i.call(this),!this.internal.__cell__.tableHeaderRow)throw new Error(\"Property tableHeaderRow does not exist.\");var r;if(n=!0,\"function\"==typeof this.internal.__cell__.headerFunction){var a=this.internal.__cell__.headerFunction(this,this.internal.__cell__.pages);this.internal.__cell__.lastCell=new o(a[0],a[1],a[2],a[3],void 0,-1)}this.setFont(void 0,\"bold\");for(var c=[],u=0;u<this.internal.__cell__.tableHeaderRow.length;u+=1){r=this.internal.__cell__.tableHeaderRow[u].clone(),e&&(r.y=this.internal.__cell__.margins.top||0,c.push(r)),r.lineNumber=t;var h=this.getTextColor();this.setTextColor(this.internal.__cell__.headerTextColor),this.setFillColor(this.internal.__cell__.headerBackgroundColor),s.call(this,r),this.setTextColor(h)}c.length>0&&this.setTableHeaderRow(c),this.setFont(void 0,\"normal\"),n=!1}}(E.API);var Pt={italic:[\"italic\",\"oblique\",\"normal\"],oblique:[\"oblique\",\"italic\",\"normal\"],normal:[\"normal\",\"oblique\",\"italic\"]},kt=[\"ultra-condensed\",\"extra-condensed\",\"condensed\",\"semi-condensed\",\"normal\",\"semi-expanded\",\"expanded\",\"extra-expanded\",\"ultra-expanded\"],It=_t(kt),Ft=[100,200,300,400,500,600,700,800,900],Ct=_t(Ft);function jt(t){var e=t.family.replace(/\"|'/g,\"\").toLowerCase(),r=function(t){return Pt[t=t||\"normal\"]?t:\"normal\"}(t.style),n=function(t){if(!t)return 400;if(\"number\"==typeof t)return t>=100&&t<=900&&t%100==0?t:400;if(/^\\d00$/.test(t))return parseInt(t);switch(t){case\"bold\":return 700;case\"normal\":default:return 400}}(t.weight),i=function(t){return\"number\"==typeof It[t=t||\"normal\"]?t:\"normal\"}(t.stretch);return{family:e,style:r,weight:n,stretch:i,src:t.src||[],ref:t.ref||{name:e,style:[i,r,n].join(\" \")}}}function Ot(t,e,r,n){var i;for(i=r;i>=0&&i<e.length;i+=n)if(t[e[i]])return t[e[i]];for(i=r;i>=0&&i<e.length;i-=n)if(t[e[i]])return t[e[i]]}var Bt={\"sans-serif\":\"helvetica\",fixed:\"courier\",monospace:\"courier\",terminal:\"courier\",cursive:\"times\",fantasy:\"times\",serif:\"times\"},Mt={caption:\"times\",icon:\"times\",menu:\"times\",\"message-box\":\"times\",\"small-caption\":\"times\",\"status-bar\":\"times\"};function Et(t){return[t.stretch,t.style,t.weight,t.family].join(\" \")}function qt(t,e,r){for(var n=(r=r||{}).defaultFontFamily||\"times\",i=Object.assign({},Bt,r.genericFontFamilies||{}),a=null,o=null,s=0;s<e.length;++s)if(i[(a=jt(e[s])).family]&&(a.family=i[a.family]),t.hasOwnProperty(a.family)){o=t[a.family];break}if(!(o=o||t[n]))throw new Error(\"Could not find a font-family for the rule '\"+Et(a)+\"' and default family '\"+n+\"'.\");if(o=function(t,e){if(e[t])return e[t];var r=It[t],n=r<=It.normal?-1:1,i=Ot(e,kt,r,n);if(!i)throw new Error(\"Could not find a matching font-stretch value for \"+t);return i}(a.stretch,o),o=function(t,e){if(e[t])return e[t];for(var r=Pt[t],n=0;n<r.length;++n)if(e[r[n]])return e[r[n]];throw new Error(\"Could not find a matching font-style for \"+t)}(a.style,o),!(o=function(t,e){if(e[t])return e[t];if(400===t&&e[500])return e[500];if(500===t&&e[400])return e[400];var r=Ct[t],n=Ot(e,Ft,r,t<400?-1:1);if(!n)throw new Error(\"Could not find a matching font-weight for value \"+t);return n}(a.weight,o)))throw new Error(\"Failed to resolve a font for the rule '\"+Et(a)+\"'.\");return o}function Dt(t){return t.trimLeft()}function Rt(t,e){for(var r=0;r<t.length;){if(t.charAt(r)===e)return[t.substring(0,r),t.substring(r+1)];r+=1}return null}function Tt(t){var e=t.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);return null===e?null:[e[0],t.substring(e[0].length)]}var Ut,zt,Ht,Wt=[\"times\"];!function(e){var r,n,i,o,s,c,u,h,l,d=function(t){return t=t||{},this.isStrokeTransparent=t.isStrokeTransparent||!1,this.strokeOpacity=t.strokeOpacity||1,this.strokeStyle=t.strokeStyle||\"#000000\",this.fillStyle=t.fillStyle||\"#000000\",this.isFillTransparent=t.isFillTransparent||!1,this.fillOpacity=t.fillOpacity||1,this.font=t.font||\"10px sans-serif\",this.textBaseline=t.textBaseline||\"alphabetic\",this.textAlign=t.textAlign||\"left\",this.lineWidth=t.lineWidth||1,this.lineJoin=t.lineJoin||\"miter\",this.lineCap=t.lineCap||\"butt\",this.path=t.path||[],this.transform=void 0!==t.transform?t.transform.clone():new h,this.globalCompositeOperation=t.globalCompositeOperation||\"normal\",this.globalAlpha=t.globalAlpha||1,this.clip_path=t.clip_path||[],this.currentPoint=t.currentPoint||new c,this.miterLimit=t.miterLimit||10,this.lastPoint=t.lastPoint||new c,this.lineDashOffset=t.lineDashOffset||0,this.lineDash=t.lineDash||[],this.margin=t.margin||[0,0,0,0],this.prevPageLastElemOffset=t.prevPageLastElemOffset||0,this.ignoreClearRect=\"boolean\"!=typeof t.ignoreClearRect||t.ignoreClearRect,this};e.events.push([\"initialized\",function(){this.context2d=new p(this),r=this.internal.f2,n=this.internal.getCoordinateString,i=this.internal.getVerticalCoordinateString,o=this.internal.getHorizontalCoordinate,s=this.internal.getVerticalCoordinate,c=this.internal.Point,u=this.internal.Rectangle,h=this.internal.Matrix,l=new d}]);var p=function(t){Object.defineProperty(this,\"canvas\",{get:function(){return{parentNode:!1,style:!1}}});var e=t;Object.defineProperty(this,\"pdf\",{get:function(){return e}});var r=!1;Object.defineProperty(this,\"pageWrapXEnabled\",{get:function(){return r},set:function(t){r=Boolean(t)}});var n=!1;Object.defineProperty(this,\"pageWrapYEnabled\",{get:function(){return n},set:function(t){n=Boolean(t)}});var i=0;Object.defineProperty(this,\"posX\",{get:function(){return i},set:function(t){isNaN(t)||(i=t)}});var a=0;Object.defineProperty(this,\"posY\",{get:function(){return a},set:function(t){isNaN(t)||(a=t)}}),Object.defineProperty(this,\"margin\",{get:function(){return l.margin},set:function(t){var e;\"number\"==typeof t?e=[t,t,t,t]:((e=new Array(4))[0]=t[0],e[1]=t.length>=2?t[1]:e[0],e[2]=t.length>=3?t[2]:e[0],e[3]=t.length>=4?t[3]:e[1]),l.margin=e}});var o=!1;Object.defineProperty(this,\"autoPaging\",{get:function(){return o},set:function(t){o=t}});var s=0;Object.defineProperty(this,\"lastBreak\",{get:function(){return s},set:function(t){s=t}});var c=[];Object.defineProperty(this,\"pageBreaks\",{get:function(){return c},set:function(t){c=t}}),Object.defineProperty(this,\"ctx\",{get:function(){return l},set:function(t){t instanceof d&&(l=t)}}),Object.defineProperty(this,\"path\",{get:function(){return l.path},set:function(t){l.path=t}});var u=[];Object.defineProperty(this,\"ctxStack\",{get:function(){return u},set:function(t){u=t}}),Object.defineProperty(this,\"fillStyle\",{get:function(){return this.ctx.fillStyle},set:function(t){var e;e=g(t),this.ctx.fillStyle=e.style,this.ctx.isFillTransparent=0===e.a,this.ctx.fillOpacity=e.a,this.pdf.setFillColor(e.r,e.g,e.b,{a:e.a}),this.pdf.setTextColor(e.r,e.g,e.b,{a:e.a})}}),Object.defineProperty(this,\"strokeStyle\",{get:function(){return this.ctx.strokeStyle},set:function(t){var e=g(t);this.ctx.strokeStyle=e.style,this.ctx.isStrokeTransparent=0===e.a,this.ctx.strokeOpacity=e.a,0===e.a?this.pdf.setDrawColor(255,255,255):(e.a,this.pdf.setDrawColor(e.r,e.g,e.b))}}),Object.defineProperty(this,\"lineCap\",{get:function(){return this.ctx.lineCap},set:function(t){-1!==[\"butt\",\"round\",\"square\"].indexOf(t)&&(this.ctx.lineCap=t,this.pdf.setLineCap(t))}}),Object.defineProperty(this,\"lineWidth\",{get:function(){return this.ctx.lineWidth},set:function(t){isNaN(t)||(this.ctx.lineWidth=t,this.pdf.setLineWidth(t))}}),Object.defineProperty(this,\"lineJoin\",{get:function(){return this.ctx.lineJoin},set:function(t){-1!==[\"bevel\",\"round\",\"miter\"].indexOf(t)&&(this.ctx.lineJoin=t,this.pdf.setLineJoin(t))}}),Object.defineProperty(this,\"miterLimit\",{get:function(){return this.ctx.miterLimit},set:function(t){isNaN(t)||(this.ctx.miterLimit=t,this.pdf.setMiterLimit(t))}}),Object.defineProperty(this,\"textBaseline\",{get:function(){return this.ctx.textBaseline},set:function(t){this.ctx.textBaseline=t}}),Object.defineProperty(this,\"textAlign\",{get:function(){return this.ctx.textAlign},set:function(t){-1!==[\"right\",\"end\",\"center\",\"left\",\"start\"].indexOf(t)&&(this.ctx.textAlign=t)}});var h=null;function f(t,e){if(null===h){var r=function(t){var e=[];return Object.keys(t).forEach((function(r){t[r].forEach((function(t){var n=null;switch(t){case\"bold\":n={family:r,weight:\"bold\"};break;case\"italic\":n={family:r,style:\"italic\"};break;case\"bolditalic\":n={family:r,weight:\"bold\",style:\"italic\"};break;case\"\":case\"normal\":n={family:r}}null!==n&&(n.ref={name:r,style:t},e.push(n))}))})),e}(t.getFontList());h=function(t){for(var e={},r=0;r<t.length;++r){var n=jt(t[r]),i=n.family,a=n.stretch,o=n.style,s=n.weight;e[i]=e[i]||{},e[i][a]=e[i][a]||{},e[i][a][o]=e[i][a][o]||{},e[i][a][o][s]=n}return e}(r.concat(e))}return h}var p=null;Object.defineProperty(this,\"fontFaces\",{get:function(){return p},set:function(t){h=null,p=t}}),Object.defineProperty(this,\"font\",{get:function(){return this.ctx.font},set:function(t){var e;if(this.ctx.font=t,null!==(e=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-_,\\\"\\'\\sa-z]+?)\\s*$/i.exec(t))){var r=e[1],n=(e[2],e[3]),i=e[4],a=(e[5],e[6]),o=/^([.\\d]+)((?:%|in|[cem]m|ex|p[ctx]))$/i.exec(i)[2];i=\"px\"===o?Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor):\"em\"===o?Math.floor(parseFloat(i)*this.pdf.getFontSize()):Math.floor(parseFloat(i)*this.pdf.internal.scaleFactor),this.pdf.setFontSize(i);var s=function(t){var e,r,n=[],i=t.trim();if(\"\"===i)return Wt;if(i in Mt)return[Mt[i]];for(;\"\"!==i;){switch(r=null,e=(i=Dt(i)).charAt(0)){case'\"':case\"'\":r=Rt(i.substring(1),e);break;default:r=Tt(i)}if(null===r)return Wt;if(n.push(r[0]),\"\"!==(i=Dt(r[1]))&&\",\"!==i.charAt(0))return Wt;i=i.replace(/^,/,\"\")}return n}(a);if(this.fontFaces){var c=qt(f(this.pdf,this.fontFaces),s.map((function(t){return{family:t,stretch:\"normal\",weight:n,style:r}})));this.pdf.setFont(c.ref.name,c.ref.style)}else{var u=\"\";(\"bold\"===n||parseInt(n,10)>=700||\"bold\"===r)&&(u=\"bold\"),\"italic\"===r&&(u+=\"italic\"),0===u.length&&(u=\"normal\");for(var h=\"\",l={arial:\"Helvetica\",Arial:\"Helvetica\",verdana:\"Helvetica\",Verdana:\"Helvetica\",helvetica:\"Helvetica\",Helvetica:\"Helvetica\",\"sans-serif\":\"Helvetica\",fixed:\"Courier\",monospace:\"Courier\",terminal:\"Courier\",cursive:\"Times\",fantasy:\"Times\",serif:\"Times\"},d=0;d<s.length;d++){if(void 0!==this.pdf.internal.getFont(s[d],u,{noFallback:!0,disableWarning:!0})){h=s[d];break}if(\"bolditalic\"===u&&void 0!==this.pdf.internal.getFont(s[d],\"bold\",{noFallback:!0,disableWarning:!0}))h=s[d],u=\"bold\";else if(void 0!==this.pdf.internal.getFont(s[d],\"normal\",{noFallback:!0,disableWarning:!0})){h=s[d],u=\"normal\";break}}if(\"\"===h)for(var p=0;p<s.length;p++)if(l[s[p]]){h=l[s[p]];break}h=\"\"===h?\"Times\":h,this.pdf.setFont(h,u)}}}}),Object.defineProperty(this,\"globalCompositeOperation\",{get:function(){return this.ctx.globalCompositeOperation},set:function(t){this.ctx.globalCompositeOperation=t}}),Object.defineProperty(this,\"globalAlpha\",{get:function(){return this.ctx.globalAlpha},set:function(t){this.ctx.globalAlpha=t}}),Object.defineProperty(this,\"lineDashOffset\",{get:function(){return this.ctx.lineDashOffset},set:function(t){this.ctx.lineDashOffset=t,T.call(this)}}),Object.defineProperty(this,\"lineDash\",{get:function(){return this.ctx.lineDash},set:function(t){this.ctx.lineDash=t,T.call(this)}}),Object.defineProperty(this,\"ignoreClearRect\",{get:function(){return this.ctx.ignoreClearRect},set:function(t){this.ctx.ignoreClearRect=Boolean(t)}})};p.prototype.setLineDash=function(t){this.lineDash=t},p.prototype.getLineDash=function(){return this.lineDash.length%2?this.lineDash.concat(this.lineDash):this.lineDash.slice()},p.prototype.fill=function(){A.call(this,\"fill\",!1)},p.prototype.stroke=function(){A.call(this,\"stroke\",!1)},p.prototype.beginPath=function(){this.path=[{type:\"begin\"}]},p.prototype.moveTo=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.moveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.moveTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"mt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(t,e)},p.prototype.closePath=function(){var e=new c(0,0),r=0;for(r=this.path.length-1;-1!==r;r--)if(\"begin\"===this.path[r].type&&\"object\"===t(this.path[r+1])&&\"number\"==typeof this.path[r+1].x){e=new c(this.path[r+1].x,this.path[r+1].y);break}this.path.push({type:\"close\"}),this.ctx.lastPoint=new c(e.x,e.y)},p.prototype.lineTo=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.lineTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.lineTo\");var r=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"lt\",x:r.x,y:r.y}),this.ctx.lastPoint=new c(r.x,r.y)},p.prototype.clip=function(){this.ctx.clip_path=JSON.parse(JSON.stringify(this.path)),A.call(this,null,!0)},p.prototype.quadraticCurveTo=function(t,e,r,n){if(isNaN(r)||isNaN(n)||isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.quadraticCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.quadraticCurveTo\");var i=this.ctx.transform.applyToPoint(new c(r,n)),o=this.ctx.transform.applyToPoint(new c(t,e));this.path.push({type:\"qct\",x1:o.x,y1:o.y,x:i.x,y:i.y}),this.ctx.lastPoint=new c(i.x,i.y)},p.prototype.bezierCurveTo=function(t,e,r,n,i,o){if(isNaN(i)||isNaN(o)||isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.bezierCurveTo: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.bezierCurveTo\");var s=this.ctx.transform.applyToPoint(new c(i,o)),u=this.ctx.transform.applyToPoint(new c(t,e)),h=this.ctx.transform.applyToPoint(new c(r,n));this.path.push({type:\"bct\",x1:u.x,y1:u.y,x2:h.x,y2:h.y,x:s.x,y:s.y}),this.ctx.lastPoint=new c(s.x,s.y)},p.prototype.arc=function(t,e,r,n,i,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i))throw a.error(\"jsPDF.context2d.arc: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.arc\");if(o=Boolean(o),!this.ctx.transform.isIdentity){var s=this.ctx.transform.applyToPoint(new c(t,e));t=s.x,e=s.y;var u=this.ctx.transform.applyToPoint(new c(0,r)),h=this.ctx.transform.applyToPoint(new c(0,0));r=Math.sqrt(Math.pow(u.x-h.x,2)+Math.pow(u.y-h.y,2))}Math.abs(i-n)>=2*Math.PI&&(n=0,i=2*Math.PI),this.path.push({type:\"arc\",x:t,y:e,radius:r,startAngle:n,endAngle:i,counterclockwise:o})},p.prototype.arcTo=function(t,e,r,n,i){throw new Error(\"arcTo not implemented.\")},p.prototype.rect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.rect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rect\");this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+n),this.lineTo(t,e+n),this.lineTo(t,e),this.lineTo(t+r,e),this.lineTo(t,e)},p.prototype.fillRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.fillRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillRect\");if(!m.call(this)){var i={};\"butt\"!==this.lineCap&&(i.lineCap=this.lineCap,this.lineCap=\"butt\"),\"miter\"!==this.lineJoin&&(i.lineJoin=this.lineJoin,this.lineJoin=\"miter\"),this.beginPath(),this.rect(t,e,r,n),this.fill(),i.hasOwnProperty(\"lineCap\")&&(this.lineCap=i.lineCap),i.hasOwnProperty(\"lineJoin\")&&(this.lineJoin=i.lineJoin)}},p.prototype.strokeRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.strokeRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeRect\");v.call(this)||(this.beginPath(),this.rect(t,e,r,n),this.stroke())},p.prototype.clearRect=function(t,e,r,n){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n))throw a.error(\"jsPDF.context2d.clearRect: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.clearRect\");this.ignoreClearRect||(this.fillStyle=\"#ffffff\",this.fillRect(t,e,r,n))},p.prototype.save=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"q\");if(this.pdf.setPage(e),t){this.ctx.fontSize=this.pdf.internal.getFontSize();var n=new d(this.ctx);this.ctxStack.push(this.ctx),this.ctx=n}},p.prototype.restore=function(t){t=\"boolean\"!=typeof t||t;for(var e=this.pdf.internal.getCurrentPageInfo().pageNumber,r=0;r<this.pdf.internal.getNumberOfPages();r++)this.pdf.setPage(r+1),this.pdf.internal.out(\"Q\");this.pdf.setPage(e),t&&0!==this.ctxStack.length&&(this.ctx=this.ctxStack.pop(),this.fillStyle=this.ctx.fillStyle,this.strokeStyle=this.ctx.strokeStyle,this.font=this.ctx.font,this.lineCap=this.ctx.lineCap,this.lineWidth=this.ctx.lineWidth,this.lineJoin=this.ctx.lineJoin,this.lineDash=this.ctx.lineDash,this.lineDashOffset=this.ctx.lineDashOffset)},p.prototype.toDataURL=function(){throw new Error(\"toDataUrl not implemented.\")};var g=function(t){var e,r,n,i;if(!0===t.isCanvasGradient&&(t=t.getColor()),!t)return{r:0,g:0,b:0,a:0,style:t};if(/transparent|rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*0+\\s*\\)/.test(t))e=0,r=0,n=0,i=0;else{var a=/rgb\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*\\)/.exec(t);if(null!==a)e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=1;else if(null!==(a=/rgba\\s*\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/.exec(t)))e=parseInt(a[1]),r=parseInt(a[2]),n=parseInt(a[3]),i=parseFloat(a[4]);else{if(i=1,\"string\"==typeof t&&\"#\"!==t.charAt(0)){var o=new f(t);t=o.ok?o.toHex():\"#000000\"}4===t.length?(e=t.substring(1,2),e+=e,r=t.substring(2,3),r+=r,n=t.substring(3,4),n+=n):(e=t.substring(1,3),r=t.substring(3,5),n=t.substring(5,7)),e=parseInt(e,16),r=parseInt(r,16),n=parseInt(n,16)}}return{r:e,g:r,b:n,a:i,style:t}},m=function(){return this.ctx.isFillTransparent||0==this.globalAlpha},v=function(){return Boolean(this.ctx.isStrokeTransparent||0==this.globalAlpha)};p.prototype.fillText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.fillText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.fillText\");if(n=isNaN(n)?void 0:n,!m.call(this)){var i=q(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;C.call(this,{text:t,x:e,y:r,scale:o,angle:i,align:this.textAlign,maxWidth:n})}},p.prototype.strokeText=function(t,e,r,n){if(isNaN(e)||isNaN(r)||\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.strokeText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.strokeText\");if(!v.call(this)){n=isNaN(n)?void 0:n;var i=q(this.ctx.transform.rotation),o=this.ctx.transform.scaleX;C.call(this,{text:t,x:e,y:r,scale:o,renderingMode:\"stroke\",angle:i,align:this.textAlign,maxWidth:n})}},p.prototype.measureText=function(t){if(\"string\"!=typeof t)throw a.error(\"jsPDF.context2d.measureText: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.measureText\");var e=this.pdf,r=this.pdf.internal.scaleFactor,n=e.internal.getFontSize(),i=e.getStringUnitWidth(t)*n/e.internal.scaleFactor,o=function(t){var e=(t=t||{}).width||0;return Object.defineProperty(this,\"width\",{get:function(){return e}}),this};return new o({width:i*=Math.round(96*r/72*1e4)/1e4})},p.prototype.scale=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.scale: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.scale\");var r=new h(t,0,0,e,0,0);this.ctx.transform=this.ctx.transform.multiply(r)},p.prototype.rotate=function(t){if(isNaN(t))throw a.error(\"jsPDF.context2d.rotate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.rotate\");var e=new h(Math.cos(t),Math.sin(t),-Math.sin(t),Math.cos(t),0,0);this.ctx.transform=this.ctx.transform.multiply(e)},p.prototype.translate=function(t,e){if(isNaN(t)||isNaN(e))throw a.error(\"jsPDF.context2d.translate: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.translate\");var r=new h(1,0,0,1,t,e);this.ctx.transform=this.ctx.transform.multiply(r)},p.prototype.transform=function(t,e,r,n,i,o){if(isNaN(t)||isNaN(e)||isNaN(r)||isNaN(n)||isNaN(i)||isNaN(o))throw a.error(\"jsPDF.context2d.transform: Invalid arguments\",arguments),new Error(\"Invalid arguments passed to jsPDF.context2d.transform\");var s=new h(t,e,r,n,i,o);this.ctx.transform=this.ctx.transform.multiply(s)},p.prototype.setTransform=function(t,e,r,n,i,a){t=isNaN(t)?1:t,e=isNaN(e)?0:e,r=isNaN(r)?0:r,n=isNaN(n)?1:n,i=isNaN(i)?0:i,a=isNaN(a)?0:a,this.ctx.transform=new h(t,e,r,n,i,a)};var b=function(){return this.margin[0]>0||this.margin[1]>0||this.margin[2]>0||this.margin[3]>0};p.prototype.drawImage=function(t,e,r,n,i,a,o,s,c){var l=this.pdf.getImageProperties(t),f=1,d=1,p=1,g=1;void 0!==n&&void 0!==s&&(p=s/n,g=c/i,f=l.width/n*s/n,d=l.height/i*c/i),void 0===a&&(a=e,o=r,e=0,r=0),void 0!==n&&void 0===s&&(s=n,c=i),void 0===n&&void 0===s&&(s=l.width,c=l.height);for(var m,v=this.ctx.transform.decompose(),w=q(v.rotate.shx),A=new h,S=(A=(A=(A=A.multiply(v.translate)).multiply(v.skew)).multiply(v.scale)).applyToRectangle(new u(a-e*p,o-r*g,n*f,i*d)),_=y.call(this,S),P=[],k=0;k<_.length;k+=1)-1===P.indexOf(_[k])&&P.push(_[k]);if(L(P),this.autoPaging)for(var I=P[0],F=P[P.length-1],C=I;C<F+1;C++){this.pdf.setPage(C);var j=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],O=1===C?this.posY+this.margin[0]:this.margin[0],B=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],M=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],E=1===C?0:B+(C-2)*M;if(0!==this.ctx.clip_path.length){var D=this.path;m=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(m,this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset),x.call(this,\"fill\",!0),this.path=D}var R=JSON.parse(JSON.stringify(S));R=N([R],this.posX+this.margin[3],-E+O+this.ctx.prevPageLastElemOffset)[0];var T=(C>I||C<F)&&b.call(this);T&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],j,M,null).clip().discardPath()),this.pdf.addImage(t,\"JPEG\",R.x,R.y,R.w,R.h,null,null,w),T&&this.pdf.restoreGraphicsState()}else this.pdf.addImage(t,\"JPEG\",S.x,S.y,S.w,S.h,null,null,w)};var y=function(t,e,r){var n=[];e=e||this.pdf.internal.pageSize.width,r=r||this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2];var i=this.posY+this.ctx.prevPageLastElemOffset;switch(t.type){default:case\"mt\":case\"lt\":n.push(Math.floor((t.y+i)/r)+1);break;case\"arc\":n.push(Math.floor((t.y+i-t.radius)/r)+1),n.push(Math.floor((t.y+i+t.radius)/r)+1);break;case\"qct\":var a=D(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x,t.y);n.push(Math.floor((a.y+i)/r)+1),n.push(Math.floor((a.y+a.h+i)/r)+1);break;case\"bct\":var o=R(this.ctx.lastPoint.x,this.ctx.lastPoint.y,t.x1,t.y1,t.x2,t.y2,t.x,t.y);n.push(Math.floor((o.y+i)/r)+1),n.push(Math.floor((o.y+o.h+i)/r)+1);break;case\"rect\":n.push(Math.floor((t.y+i)/r)+1),n.push(Math.floor((t.y+t.h+i)/r)+1)}for(var s=0;s<n.length;s+=1)for(;this.pdf.internal.getNumberOfPages()<n[s];)w.call(this);return n},w=function(){var t=this.fillStyle,e=this.strokeStyle,r=this.font,n=this.lineCap,i=this.lineWidth,a=this.lineJoin;this.pdf.addPage(),this.fillStyle=t,this.strokeStyle=e,this.font=r,this.lineCap=n,this.lineWidth=i,this.lineJoin=a},N=function(t,e,r){for(var n=0;n<t.length;n++)switch(t[n].type){case\"bct\":t[n].x2+=e,t[n].y2+=r;case\"qct\":t[n].x1+=e,t[n].y1+=r;case\"mt\":case\"lt\":case\"arc\":default:t[n].x+=e,t[n].y+=r}return t},L=function(t){return t.sort((function(t,e){return t-e}))},A=function(t,e){for(var r,n,i=this.fillStyle,a=this.strokeStyle,o=this.lineCap,s=this.lineWidth,c=Math.abs(s*this.ctx.transform.scaleX),u=this.lineJoin,h=JSON.parse(JSON.stringify(this.path)),l=JSON.parse(JSON.stringify(this.path)),f=[],d=0;d<l.length;d++)if(void 0!==l[d].x)for(var p=y.call(this,l[d]),g=0;g<p.length;g+=1)-1===f.indexOf(p[g])&&f.push(p[g]);for(var m=0;m<f.length;m++)for(;this.pdf.internal.getNumberOfPages()<f[m];)w.call(this);if(L(f),this.autoPaging)for(var v=f[0],A=f[f.length-1],S=v;S<A+1;S++){this.pdf.setPage(S),this.fillStyle=i,this.strokeStyle=a,this.lineCap=o,this.lineWidth=c,this.lineJoin=u;var _=this.pdf.internal.pageSize.width-this.margin[3]-this.margin[1],P=1===S?this.posY+this.margin[0]:this.margin[0],k=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],I=this.pdf.internal.pageSize.height-this.margin[0]-this.margin[2],F=1===S?0:k+(S-2)*I;if(0!==this.ctx.clip_path.length){var C=this.path;r=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(r,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),x.call(this,t,!0),this.path=C}if(n=JSON.parse(JSON.stringify(h)),this.path=N(n,this.posX+this.margin[3],-F+P+this.ctx.prevPageLastElemOffset),!1===e||0===S){var j=(S>v||S<A)&&b.call(this);j&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],_,I,null).clip().discardPath()),x.call(this,t,e),j&&this.pdf.restoreGraphicsState()}this.lineWidth=s}else this.lineWidth=c,x.call(this,t,e),this.lineWidth=s;this.path=h},x=function(t,e){if((\"stroke\"!==t||e||!v.call(this))&&(\"stroke\"===t||e||!m.call(this))){for(var r,n,i=[],a=this.path,o=0;o<a.length;o++){var s=a[o];switch(s.type){case\"begin\":i.push({begin:!0});break;case\"close\":i.push({close:!0});break;case\"mt\":i.push({start:s,deltas:[],abs:[]});break;case\"lt\":var c=i.length;if(a[o-1]&&!isNaN(a[o-1].x)&&(r=[s.x-a[o-1].x,s.y-a[o-1].y],c>0))for(;c>=0;c--)if(!0!==i[c-1].close&&!0!==i[c-1].begin){i[c-1].deltas.push(r),i[c-1].abs.push(s);break}break;case\"bct\":r=[s.x1-a[o-1].x,s.y1-a[o-1].y,s.x2-a[o-1].x,s.y2-a[o-1].y,s.x-a[o-1].x,s.y-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"qct\":var u=a[o-1].x+2/3*(s.x1-a[o-1].x),h=a[o-1].y+2/3*(s.y1-a[o-1].y),l=s.x+2/3*(s.x1-s.x),f=s.y+2/3*(s.y1-s.y),d=s.x,p=s.y;r=[u-a[o-1].x,h-a[o-1].y,l-a[o-1].x,f-a[o-1].y,d-a[o-1].x,p-a[o-1].y],i[i.length-1].deltas.push(r);break;case\"arc\":i.push({deltas:[],abs:[],arc:!0}),Array.isArray(i[i.length-1].abs)&&i[i.length-1].abs.push(s)}}n=e?null:\"stroke\"===t?\"stroke\":\"fill\";for(var g=!1,b=0;b<i.length;b++)if(i[b].arc)for(var y=i[b].abs,w=0;w<y.length;w++){var N=y[w];\"arc\"===N.type?P.call(this,N.x,N.y,N.radius,N.startAngle,N.endAngle,N.counterclockwise,void 0,e,!g):j.call(this,N.x,N.y),g=!0}else if(!0===i[b].close)this.pdf.internal.out(\"h\"),g=!1;else if(!0!==i[b].begin){var L=i[b].start.x,A=i[b].start.y;O.call(this,i[b].deltas,L,A),g=!0}n&&k.call(this,n),e&&I.call(this)}},S=function(t){var e=this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor,r=e*(this.pdf.internal.getLineHeightFactor()-1);switch(this.ctx.textBaseline){case\"bottom\":return t-r;case\"top\":return t+e-r;case\"hanging\":return t+e-2*r;case\"middle\":return t+e/2-r;case\"ideographic\":return t;case\"alphabetic\":default:return t}},_=function(t){return t+this.pdf.internal.getFontSize()/this.pdf.internal.scaleFactor*(this.pdf.internal.getLineHeightFactor()-1)};p.prototype.createLinearGradient=function(){var t=function(){};return t.colorStops=[],t.addColorStop=function(t,e){this.colorStops.push([t,e])},t.getColor=function(){return 0===this.colorStops.length?\"#000000\":this.colorStops[0][1]},t.isCanvasGradient=!0,t},p.prototype.createPattern=function(){return this.createLinearGradient()},p.prototype.createRadialGradient=function(){return this.createLinearGradient()};var P=function(t,e,r,n,i,a,o,s,c){for(var u=M.call(this,r,n,i,a),h=0;h<u.length;h++){var l=u[h];0===h&&(c?F.call(this,l.x1+t,l.y1+e):j.call(this,l.x1+t,l.y1+e)),B.call(this,t,e,l.x2,l.y2,l.x3,l.y3,l.x4,l.y4)}s?I.call(this):k.call(this,o)},k=function(t){switch(t){case\"stroke\":this.pdf.internal.out(\"S\");break;case\"fill\":this.pdf.internal.out(\"f\")}},I=function(){this.pdf.clip(),this.pdf.discardPath()},F=function(t,e){this.pdf.internal.out(n(t)+\" \"+i(e)+\" m\")},C=function(t){var e;switch(t.align){case\"right\":case\"end\":e=\"right\";break;case\"center\":e=\"center\";break;case\"left\":case\"start\":default:e=\"left\"}var r=this.pdf.getTextDimensions(t.text),n=S.call(this,t.y),i=_.call(this,n)-r.h,a=this.ctx.transform.applyToPoint(new c(t.x,n)),o=this.ctx.transform.decompose(),s=new h;s=(s=(s=s.multiply(o.translate)).multiply(o.skew)).multiply(o.scale);for(var l,f,d,p=this.ctx.transform.applyToRectangle(new u(t.x,n,r.w,r.h)),g=s.applyToRectangle(new u(t.x,i,r.w,r.h)),m=y.call(this,g),v=[],w=0;w<m.length;w+=1)-1===v.indexOf(m[w])&&v.push(m[w]);if(L(v),this.autoPaging)for(var A=v[0],P=v[v.length-1],k=A;k<P+1;k++){this.pdf.setPage(k);var I=1===k?this.posY+this.margin[0]:this.margin[0],F=this.pdf.internal.pageSize.height-this.posY-this.margin[0]-this.margin[2],C=this.pdf.internal.pageSize.height-this.margin[2],j=C-this.margin[0],O=this.pdf.internal.pageSize.width-this.margin[1],B=O-this.margin[3],M=1===k?0:F+(k-2)*j;if(0!==this.ctx.clip_path.length){var E=this.path;l=JSON.parse(JSON.stringify(this.ctx.clip_path)),this.path=N(l,this.posX+this.margin[3],-1*M+I),x.call(this,\"fill\",!0),this.path=E}var q=N([JSON.parse(JSON.stringify(g))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0];t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale);var D=\"text\"!==this.autoPaging;if(D||q.y+q.h<=C){if(D||q.y>=I&&q.x<=O){var R=D?t.text:this.pdf.splitTextToSize(t.text,t.maxWidth||O-q.x)[0],T=N([JSON.parse(JSON.stringify(p))],this.posX+this.margin[3],-M+I+this.ctx.prevPageLastElemOffset)[0],U=D&&(k>A||k<P)&&b.call(this);U&&(this.pdf.saveGraphicsState(),this.pdf.rect(this.margin[3],this.margin[0],B,j,null).clip().discardPath()),this.pdf.text(R,T.x,T.y,{angle:t.angle,align:e,renderingMode:t.renderingMode}),U&&this.pdf.restoreGraphicsState()}}else q.y<C&&(this.ctx.prevPageLastElemOffset+=C-q.y);t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)}else t.scale>=.01&&(f=this.pdf.internal.getFontSize(),this.pdf.setFontSize(f*t.scale),d=this.lineWidth,this.lineWidth=d*t.scale),this.pdf.text(t.text,a.x+this.posX,a.y+this.posY,{angle:t.angle,align:e,renderingMode:t.renderingMode,maxWidth:t.maxWidth}),t.scale>=.01&&(this.pdf.setFontSize(f),this.lineWidth=d)},j=function(t,e,r,a){r=r||0,a=a||0,this.pdf.internal.out(n(t+r)+\" \"+i(e+a)+\" l\")},O=function(t,e,r){return this.pdf.lines(t,e,r,null,null)},B=function(t,e,n,i,a,c,u,h){this.pdf.internal.out([r(o(n+t)),r(s(i+e)),r(o(a+t)),r(s(c+e)),r(o(u+t)),r(s(h+e)),\"c\"].join(\" \"))},M=function(t,e,r,n){for(var i=2*Math.PI,a=Math.PI/2;e>r;)e-=i;var o=Math.abs(r-e);o<i&&n&&(o=i-o);for(var s=[],c=n?-1:1,u=e;o>1e-5;){var h=u+c*Math.min(o,a);s.push(E.call(this,t,u,h)),o-=Math.abs(h-u),u=h}return s},E=function(t,e,r){var n=(r-e)/2,i=t*Math.cos(n),a=t*Math.sin(n),o=i,s=-a,c=o*o+s*s,u=c+o*i+s*a,h=4/3*(Math.sqrt(2*c*u)-u)/(o*a-s*i),l=o-h*s,f=s+h*o,d=l,p=-f,g=n+e,m=Math.cos(g),v=Math.sin(g);return{x1:t*Math.cos(e),y1:t*Math.sin(e),x2:l*m-f*v,y2:l*v+f*m,x3:d*m-p*v,y3:d*v+p*m,x4:t*Math.cos(r),y4:t*Math.sin(r)}},q=function(t){return 180*t/Math.PI},D=function(t,e,r,n,i,a){var o=t+.5*(r-t),s=e+.5*(n-e),c=i+.5*(r-i),h=a+.5*(n-a),l=Math.min(t,i,o,c),f=Math.max(t,i,o,c),d=Math.min(e,a,s,h),p=Math.max(e,a,s,h);return new u(l,d,f-l,p-d)},R=function(t,e,r,n,i,a,o,s){var c,h,l,f,d,p,g,m,v,b,y,w,N,L,A=r-t,x=n-e,S=i-r,_=a-n,P=o-i,k=s-a;for(h=0;h<41;h++)v=(g=(l=t+(c=h/40)*A)+c*((d=r+c*S)-l))+c*(d+c*(i+c*P-d)-g),b=(m=(f=e+c*x)+c*((p=n+c*_)-f))+c*(p+c*(a+c*k-p)-m),0==h?(y=v,w=b,N=v,L=b):(y=Math.min(y,v),w=Math.min(w,b),N=Math.max(N,v),L=Math.max(L,b));return new u(Math.round(y),Math.round(w),Math.round(N-y),Math.round(L-w))},T=function(){if(this.prevLineDash||this.ctx.lineDash.length||this.ctx.lineDashOffset){var t,e,r=(t=this.ctx.lineDash,e=this.ctx.lineDashOffset,JSON.stringify({lineDash:t,lineDashOffset:e}));this.prevLineDash!==r&&(this.pdf.setLineDash(this.ctx.lineDash,this.ctx.lineDashOffset),this.prevLineDash=r)}}}(E.API),\n/**\n * @license\n * jsPDF filters PlugIn\n * Copyright (c) 2014 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var r=function(t){var e,r,n,i,a,o,s,c,u,h;for(/[^\\x00-\\xFF]/.test(t),r=[],n=0,i=(t+=e=\"\\0\\0\\0\\0\".slice(t.length%4||4)).length;i>n;n+=4)0!==(a=(t.charCodeAt(n)<<24)+(t.charCodeAt(n+1)<<16)+(t.charCodeAt(n+2)<<8)+t.charCodeAt(n+3))?(o=(a=((a=((a=((a=(a-(h=a%85))/85)-(u=a%85))/85)-(c=a%85))/85)-(s=a%85))/85)%85,r.push(o+33,s+33,c+33,u+33,h+33)):r.push(122);return function(t,e){for(var r=e;r>0;r--)t.pop()}(r,e.length),String.fromCharCode.apply(String,r)+\"~>\"},n=function(t){var e,r,n,i,a,o=String,s=\"length\",c=255,u=\"charCodeAt\",h=\"slice\",l=\"replace\";for(t[h](-2),t=t[h](0,-2)[l](/\\s/g,\"\")[l](\"z\",\"!!!!!\"),n=[],i=0,a=(t+=e=\"uuuuu\"[h](t[s]%5||5))[s];a>i;i+=5)r=52200625*(t[u](i)-33)+614125*(t[u](i+1)-33)+7225*(t[u](i+2)-33)+85*(t[u](i+3)-33)+(t[u](i+4)-33),n.push(c&r>>24,c&r>>16,c&r>>8,c&r);return function(t,e){for(var r=e;r>0;r--)t.pop()}(n,e[s]),o.fromCharCode.apply(o,n)},i=function(t){var e=new RegExp(/^([0-9A-Fa-f]{2})+$/);if(-1!==(t=t.replace(/\\s/g,\"\")).indexOf(\">\")&&(t=t.substr(0,t.indexOf(\">\"))),t.length%2&&(t+=\"0\"),!1===e.test(t))return\"\";for(var r=\"\",n=0;n<t.length;n+=2)r+=String.fromCharCode(\"0x\"+(t[n]+t[n+1]));return r},a=function(t){for(var r=new Uint8Array(t.length),n=t.length;n--;)r[n]=t.charCodeAt(n);return t=(r=e(r)).reduce((function(t,e){return t+String.fromCharCode(e)}),\"\")};t.processDataByFilters=function(t,e){var o=0,s=t||\"\",c=[];for(\"string\"==typeof(e=e||[])&&(e=[e]),o=0;o<e.length;o+=1)switch(e[o]){case\"ASCII85Decode\":case\"/ASCII85Decode\":s=n(s),c.push(\"/ASCII85Encode\");break;case\"ASCII85Encode\":case\"/ASCII85Encode\":s=r(s),c.push(\"/ASCII85Decode\");break;case\"ASCIIHexDecode\":case\"/ASCIIHexDecode\":s=i(s),c.push(\"/ASCIIHexEncode\");break;case\"ASCIIHexEncode\":case\"/ASCIIHexEncode\":s=s.split(\"\").map((function(t){return(\"0\"+t.charCodeAt().toString(16)).slice(-2)})).join(\"\")+\">\",c.push(\"/ASCIIHexDecode\");break;case\"FlateEncode\":case\"/FlateEncode\":s=a(s),c.push(\"/FlateDecode\");break;default:throw new Error('The filter: \"'+e[o]+'\" is not implemented')}return{data:s,reverseChain:c.reverse().join(\" \")}}}(E.API),\n/**\n * @license\n * jsPDF fileloading PlugIn\n * Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com)\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.loadFile=function(t,e,r){return function(t,e,r){e=!1!==e,r=\"function\"==typeof r?r:function(){};var n=void 0;try{n=function(t,e,r){var n=new XMLHttpRequest,i=0,a=function(t){var e=t.length,r=[],n=String.fromCharCode;for(i=0;i<e;i+=1)r.push(n(255&t.charCodeAt(i)));return r.join(\"\")};if(n.open(\"GET\",t,!e),n.overrideMimeType(\"text/plain; charset=x-user-defined\"),!1===e&&(n.onload=function(){200===n.status?r(a(this.responseText)):r(void 0)}),n.send(null),e&&200===n.status)return a(n.responseText)}(t,e,r)}catch(t){}return n}(t,e,r)},t.loadImageFile=t.loadFile}(E.API),function(e){function r(){return(n.html2canvas?Promise.resolve(n.html2canvas):import(\"html2canvas\")).catch((function(t){return Promise.reject(new Error(\"Could not load html2canvas: \"+t))})).then((function(t){return t.default?t.default:t}))}function i(){return(n.DOMPurify?Promise.resolve(n.DOMPurify):import(\"dompurify\")).catch((function(t){return Promise.reject(new Error(\"Could not load dompurify: \"+t))})).then((function(t){return t.default?t.default:t}))}var a=function(e){var r=t(e);return\"undefined\"===r?\"undefined\":\"string\"===r||e instanceof String?\"string\":\"number\"===r||e instanceof Number?\"number\":\"function\"===r||e instanceof Function?\"function\":e&&e.constructor===Array?\"array\":e&&1===e.nodeType?\"element\":\"object\"===r?\"object\":\"unknown\"},o=function(t,e){var r=document.createElement(t);for(var n in e.className&&(r.className=e.className),e.innerHTML&&e.dompurify&&(r.innerHTML=e.dompurify.sanitize(e.innerHTML)),e.style)r.style[n]=e.style[n];return r},s=function t(e){var r=Object.assign(t.convert(Promise.resolve()),JSON.parse(JSON.stringify(t.template))),n=t.convert(Promise.resolve(),r);return n=(n=n.setProgress(1,t,1,[t])).set(e)};(s.prototype=Object.create(Promise.prototype)).constructor=s,s.convert=function(t,e){return t.__proto__=e||s.prototype,t},s.template={prop:{src:null,container:null,overlay:null,canvas:null,img:null,pdf:null,pageSize:null,callback:function(){}},progress:{val:0,state:null,n:0,stack:[]},opt:{filename:\"file.pdf\",margin:[0,0,0,0],enableLinks:!0,x:0,y:0,html2canvas:{},jsPDF:{},backgroundColor:\"transparent\"}},s.prototype.from=function(t,e){return this.then((function(){switch(e=e||function(t){switch(a(t)){case\"string\":return\"string\";case\"element\":return\"canvas\"===t.nodeName.toLowerCase()?\"canvas\":\"element\";default:return\"unknown\"}}(t)){case\"string\":return this.then(i).then((function(e){return this.set({src:o(\"div\",{innerHTML:t,dompurify:e})})}));case\"element\":return this.set({src:t});case\"canvas\":return this.set({canvas:t});case\"img\":return this.set({img:t});default:return this.error(\"Unknown source type.\")}}))},s.prototype.to=function(t){switch(t){case\"container\":return this.toContainer();case\"canvas\":return this.toCanvas();case\"img\":return this.toImg();case\"pdf\":return this.toPdf();default:return this.error(\"Invalid target.\")}},s.prototype.toContainer=function(){return this.thenList([function(){return this.prop.src||this.error(\"Cannot duplicate - no source HTML.\")},function(){return this.prop.pageSize||this.setPageSize()}]).then((function(){var t={position:\"relative\",display:\"inline-block\",width:(\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?Math.max(this.prop.src.clientWidth,this.prop.src.scrollWidth,this.prop.src.offsetWidth):this.opt.windowWidth)+\"px\",left:0,right:0,top:0,margin:\"auto\",backgroundColor:this.opt.backgroundColor},e=function t(e,r){for(var n=3===e.nodeType?document.createTextNode(e.nodeValue):e.cloneNode(!1),i=e.firstChild;i;i=i.nextSibling)!0!==r&&1===i.nodeType&&\"SCRIPT\"===i.nodeName||n.appendChild(t(i,r));return 1===e.nodeType&&(\"CANVAS\"===e.nodeName?(n.width=e.width,n.height=e.height,n.getContext(\"2d\").drawImage(e,0,0)):\"TEXTAREA\"!==e.nodeName&&\"SELECT\"!==e.nodeName||(n.value=e.value),n.addEventListener(\"load\",(function(){n.scrollTop=e.scrollTop,n.scrollLeft=e.scrollLeft}),!0)),n}(this.prop.src,this.opt.html2canvas.javascriptEnabled);\"BODY\"===e.tagName&&(t.height=Math.max(document.body.scrollHeight,document.body.offsetHeight,document.documentElement.clientHeight,document.documentElement.scrollHeight,document.documentElement.offsetHeight)+\"px\"),this.prop.overlay=o(\"div\",{className:\"html2pdf__overlay\",style:{position:\"fixed\",overflow:\"hidden\",zIndex:1e3,left:\"-100000px\",right:0,bottom:0,top:0}}),this.prop.container=o(\"div\",{className:\"html2pdf__container\",style:t}),this.prop.container.appendChild(e),this.prop.container.firstChild.appendChild(o(\"div\",{style:{clear:\"both\",border:\"0 none transparent\",margin:0,padding:0,height:0}})),this.prop.container.style.float=\"none\",this.prop.overlay.appendChild(this.prop.container),document.body.appendChild(this.prop.overlay),this.prop.container.firstChild.style.position=\"relative\",this.prop.container.height=Math.max(this.prop.container.firstChild.clientHeight,this.prop.container.firstChild.scrollHeight,this.prop.container.firstChild.offsetHeight)+\"px\"}))},s.prototype.toCanvas=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(r).then((function(t){var e=Object.assign({},this.opt.html2canvas);return delete e.onrendered,t(this.prop.container,e)})).then((function(t){(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},s.prototype.toContext2d=function(){var t=[function(){return document.body.contains(this.prop.container)||this.toContainer()}];return this.thenList(t).then(r).then((function(t){var e=this.opt.jsPDF,r=this.opt.fontFaces,n=\"number\"!=typeof this.opt.width||isNaN(this.opt.width)||\"number\"!=typeof this.opt.windowWidth||isNaN(this.opt.windowWidth)?1:this.opt.width/this.opt.windowWidth,i=Object.assign({async:!0,allowTaint:!0,scale:n,scrollX:this.opt.scrollX||0,scrollY:this.opt.scrollY||0,backgroundColor:\"#ffffff\",imageTimeout:15e3,logging:!0,proxy:null,removeContainer:!0,foreignObjectRendering:!1,useCORS:!1},this.opt.html2canvas);if(delete i.onrendered,e.context2d.autoPaging=void 0===this.opt.autoPaging||this.opt.autoPaging,e.context2d.posX=this.opt.x,e.context2d.posY=this.opt.y,e.context2d.margin=this.opt.margin,e.context2d.fontFaces=r,r)for(var a=0;a<r.length;++a){var o=r[a],s=o.src.find((function(t){return\"truetype\"===t.format}));s&&e.addFont(s.url,o.ref.name,o.ref.style)}return i.windowHeight=i.windowHeight||0,i.windowHeight=0==i.windowHeight?Math.max(this.prop.container.clientHeight,this.prop.container.scrollHeight,this.prop.container.offsetHeight):i.windowHeight,e.context2d.save(!0),t(this.prop.container,i)})).then((function(t){this.opt.jsPDF.context2d.restore(!0),(this.opt.html2canvas.onrendered||function(){})(t),this.prop.canvas=t,document.body.removeChild(this.prop.overlay)}))},s.prototype.toImg=function(){return this.thenList([function(){return this.prop.canvas||this.toCanvas()}]).then((function(){var t=this.prop.canvas.toDataURL(\"image/\"+this.opt.image.type,this.opt.image.quality);this.prop.img=document.createElement(\"img\"),this.prop.img.src=t}))},s.prototype.toPdf=function(){return this.thenList([function(){return this.toContext2d()}]).then((function(){this.prop.pdf=this.prop.pdf||this.opt.jsPDF}))},s.prototype.output=function(t,e,r){return\"img\"===(r=r||\"pdf\").toLowerCase()||\"image\"===r.toLowerCase()?this.outputImg(t,e):this.outputPdf(t,e)},s.prototype.outputPdf=function(t,e){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){return this.prop.pdf.output(t,e)}))},s.prototype.outputImg=function(t){return this.thenList([function(){return this.prop.img||this.toImg()}]).then((function(){switch(t){case void 0:case\"img\":return this.prop.img;case\"datauristring\":case\"dataurlstring\":return this.prop.img.src;case\"datauri\":case\"dataurl\":return document.location.href=this.prop.img.src;default:throw'Image output type \"'+t+'\" is not supported.'}}))},s.prototype.save=function(t){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).set(t?{filename:t}:null).then((function(){this.prop.pdf.save(this.opt.filename)}))},s.prototype.doCallback=function(){return this.thenList([function(){return this.prop.pdf||this.toPdf()}]).then((function(){this.prop.callback(this.prop.pdf)}))},s.prototype.set=function(t){if(\"object\"!==a(t))return this;var e=Object.keys(t||{}).map((function(e){if(e in s.template.prop)return function(){this.prop[e]=t[e]};switch(e){case\"margin\":return this.setMargin.bind(this,t.margin);case\"jsPDF\":return function(){return this.opt.jsPDF=t.jsPDF,this.setPageSize()};case\"pageSize\":return this.setPageSize.bind(this,t.pageSize);default:return function(){this.opt[e]=t[e]}}}),this);return this.then((function(){return this.thenList(e)}))},s.prototype.get=function(t,e){return this.then((function(){var r=t in s.template.prop?this.prop[t]:this.opt[t];return e?e(r):r}))},s.prototype.setMargin=function(t){return this.then((function(){switch(a(t)){case\"number\":t=[t,t,t,t];case\"array\":if(2===t.length&&(t=[t[0],t[1],t[0],t[1]]),4===t.length)break;default:return this.error(\"Invalid margin array.\")}this.opt.margin=t})).then(this.setPageSize)},s.prototype.setPageSize=function(t){function e(t,e){return Math.floor(t*e/72*96)}return this.then((function(){(t=t||E.getPageSize(this.opt.jsPDF)).hasOwnProperty(\"inner\")||(t.inner={width:t.width-this.opt.margin[1]-this.opt.margin[3],height:t.height-this.opt.margin[0]-this.opt.margin[2]},t.inner.px={width:e(t.inner.width,t.k),height:e(t.inner.height,t.k)},t.inner.ratio=t.inner.height/t.inner.width),this.prop.pageSize=t}))},s.prototype.setProgress=function(t,e,r,n){return null!=t&&(this.progress.val=t),null!=e&&(this.progress.state=e),null!=r&&(this.progress.n=r),null!=n&&(this.progress.stack=n),this.progress.ratio=this.progress.val/this.progress.state,this},s.prototype.updateProgress=function(t,e,r,n){return this.setProgress(t?this.progress.val+t:null,e||null,r?this.progress.n+r:null,n?this.progress.stack.concat(n):null)},s.prototype.then=function(t,e){var r=this;return this.thenCore(t,e,(function(t,e){return r.updateProgress(null,null,1,[t]),Promise.prototype.then.call(this,(function(e){return r.updateProgress(null,t),e})).then(t,e).then((function(t){return r.updateProgress(1),t}))}))},s.prototype.thenCore=function(t,e,r){r=r||Promise.prototype.then;t&&(t=t.bind(this)),e&&(e=e.bind(this));var n=-1!==Promise.toString().indexOf(\"[native code]\")&&\"Promise\"===Promise.name?this:s.convert(Object.assign({},this),Promise.prototype),i=r.call(n,t,e);return s.convert(i,this.__proto__)},s.prototype.thenExternal=function(t,e){return Promise.prototype.then.call(this,t,e)},s.prototype.thenList=function(t){var e=this;return t.forEach((function(t){e=e.thenCore(t)})),e},s.prototype.catch=function(t){t&&(t=t.bind(this));var e=Promise.prototype.catch.call(this,t);return s.convert(e,this)},s.prototype.catchExternal=function(t){return Promise.prototype.catch.call(this,t)},s.prototype.error=function(t){return this.then((function(){throw new Error(t)}))},s.prototype.using=s.prototype.set,s.prototype.saveAs=s.prototype.save,s.prototype.export=s.prototype.output,s.prototype.run=s.prototype.then,E.getPageSize=function(e,r,n){if(\"object\"===t(e)){var i=e;e=i.orientation,r=i.unit||r,n=i.format||n}r=r||\"mm\",n=n||\"a4\",e=(\"\"+(e||\"P\")).toLowerCase();var a,o=(\"\"+n).toLowerCase(),s={a0:[2383.94,3370.39],a1:[1683.78,2383.94],a2:[1190.55,1683.78],a3:[841.89,1190.55],a4:[595.28,841.89],a5:[419.53,595.28],a6:[297.64,419.53],a7:[209.76,297.64],a8:[147.4,209.76],a9:[104.88,147.4],a10:[73.7,104.88],b0:[2834.65,4008.19],b1:[2004.09,2834.65],b2:[1417.32,2004.09],b3:[1000.63,1417.32],b4:[708.66,1000.63],b5:[498.9,708.66],b6:[354.33,498.9],b7:[249.45,354.33],b8:[175.75,249.45],b9:[124.72,175.75],b10:[87.87,124.72],c0:[2599.37,3676.54],c1:[1836.85,2599.37],c2:[1298.27,1836.85],c3:[918.43,1298.27],c4:[649.13,918.43],c5:[459.21,649.13],c6:[323.15,459.21],c7:[229.61,323.15],c8:[161.57,229.61],c9:[113.39,161.57],c10:[79.37,113.39],dl:[311.81,623.62],letter:[612,792],\"government-letter\":[576,756],legal:[612,1008],\"junior-legal\":[576,360],ledger:[1224,792],tabloid:[792,1224],\"credit-card\":[153,243]};switch(r){case\"pt\":a=1;break;case\"mm\":a=72/25.4;break;case\"cm\":a=72/2.54;break;case\"in\":a=72;break;case\"px\":a=.75;break;case\"pc\":case\"em\":a=12;break;case\"ex\":a=6;break;default:throw\"Invalid unit: \"+r}var c,u=0,h=0;if(s.hasOwnProperty(o))u=s[o][1]/a,h=s[o][0]/a;else try{u=n[1],h=n[0]}catch(t){throw new Error(\"Invalid format: \"+n)}if(\"p\"===e||\"portrait\"===e)e=\"p\",h>u&&(c=h,h=u,u=c);else{if(\"l\"!==e&&\"landscape\"!==e)throw\"Invalid orientation: \"+e;e=\"l\",u>h&&(c=h,h=u,u=c)}return{width:h,height:u,unit:r,k:a,orientation:e}},e.html=function(t,e){(e=e||{}).callback=e.callback||function(){},e.html2canvas=e.html2canvas||{},e.html2canvas.canvas=e.html2canvas.canvas||this.canvas,e.jsPDF=e.jsPDF||this,e.fontFaces=e.fontFaces?e.fontFaces.map(jt):null;var r=new s(e);return e.worker?r:r.from(t).doCallback()}}(E.API),E.API.addJS=function(t){return Ht=t,this.internal.events.subscribe(\"postPutResources\",(function(){Ut=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/Names [(EmbeddedJS) \"+(Ut+1)+\" 0 R]\"),this.internal.out(\">>\"),this.internal.out(\"endobj\"),zt=this.internal.newObject(),this.internal.out(\"<<\"),this.internal.out(\"/S /JavaScript\"),this.internal.out(\"/JS (\"+Ht+\")\"),this.internal.out(\">>\"),this.internal.out(\"endobj\")})),this.internal.events.subscribe(\"putCatalog\",(function(){void 0!==Ut&&void 0!==zt&&this.internal.out(\"/Names <</JavaScript \"+Ut+\" 0 R>>\")})),this},\n/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e;t.events.push([\"postPutResources\",function(){var t=this,r=/^(\\d+) 0 obj$/;if(this.outline.root.children.length>0)for(var n=t.outline.render().split(/\\r\\n/),i=0;i<n.length;i++){var a=n[i],o=r.exec(a);if(null!=o){var s=o[1];t.internal.newObjectDeferredBegin(s,!1)}t.internal.write(a)}if(this.outline.createNamedDestinations){var c=this.internal.pages.length,u=[];for(i=0;i<c;i++){var h=t.internal.newObject();u.push(h);var l=t.internal.getPageInfo(i+1);t.internal.write(\"<< /D[\"+l.objId+\" 0 R /XYZ null null null]>> endobj\")}var f=t.internal.newObject();t.internal.write(\"<< /Names [ \");for(i=0;i<u.length;i++)t.internal.write(\"(page_\"+(i+1)+\")\"+u[i]+\" 0 R\");t.internal.write(\" ] >>\",\"endobj\"),e=t.internal.newObject(),t.internal.write(\"<< /Dests \"+f+\" 0 R\"),t.internal.write(\">>\",\"endobj\")}}]),t.events.push([\"putCatalog\",function(){this.outline.root.children.length>0&&(this.internal.write(\"/Outlines\",this.outline.makeRef(this.outline.root)),this.outline.createNamedDestinations&&this.internal.write(\"/Names \"+e+\" 0 R\"))}]),t.events.push([\"initialized\",function(){var t=this;t.outline={createNamedDestinations:!1,root:{children:[]}},t.outline.add=function(t,e,r){var n={title:e,options:r,children:[]};return null==t&&(t=this.root),t.children.push(n),n},t.outline.render=function(){return this.ctx={},this.ctx.val=\"\",this.ctx.pdf=t,this.genIds_r(this.root),this.renderRoot(this.root),this.renderItems(this.root),this.ctx.val},t.outline.genIds_r=function(e){e.id=t.internal.newObjectDeferred();for(var r=0;r<e.children.length;r++)this.genIds_r(e.children[r])},t.outline.renderRoot=function(t){this.objStart(t),this.line(\"/Type /Outlines\"),t.children.length>0&&(this.line(\"/First \"+this.makeRef(t.children[0])),this.line(\"/Last \"+this.makeRef(t.children[t.children.length-1]))),this.line(\"/Count \"+this.count_r({count:0},t)),this.objEnd()},t.outline.renderItems=function(e){for(var r=this.ctx.pdf.internal.getVerticalCoordinateString,n=0;n<e.children.length;n++){var i=e.children[n];this.objStart(i),this.line(\"/Title \"+this.makeString(i.title)),this.line(\"/Parent \"+this.makeRef(e)),n>0&&this.line(\"/Prev \"+this.makeRef(e.children[n-1])),n<e.children.length-1&&this.line(\"/Next \"+this.makeRef(e.children[n+1])),i.children.length>0&&(this.line(\"/First \"+this.makeRef(i.children[0])),this.line(\"/Last \"+this.makeRef(i.children[i.children.length-1])));var a=this.count=this.count_r({count:0},i);if(a>0&&this.line(\"/Count \"+a),i.options&&i.options.pageNumber){var o=t.internal.getPageInfo(i.options.pageNumber);this.line(\"/Dest [\"+o.objId+\" 0 R /XYZ 0 \"+r(0)+\" 0]\")}this.objEnd()}for(var s=0;s<e.children.length;s++)this.renderItems(e.children[s])},t.outline.line=function(t){this.ctx.val+=t+\"\\r\\n\"},t.outline.makeRef=function(t){return t.id+\" 0 R\"},t.outline.makeString=function(e){return\"(\"+t.internal.pdfEscape(e)+\")\"},t.outline.objStart=function(t){this.ctx.val+=\"\\r\\n\"+t.id+\" 0 obj\\r\\n<<\\r\\n\"},t.outline.objEnd=function(){this.ctx.val+=\">> \\r\\nendobj\\r\\n\"},t.outline.count_r=function(t,e){for(var r=0;r<e.children.length;r++)t.count++,this.count_r(t,e.children[r]);return t.count}}])}(E.API),\n/**\n * @license\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=[192,193,194,195,196,197,198,199];t.processJPEG=function(t,r,n,i,a,o){var s,c=this.decode.DCT_DECODE,u=null;if(\"string\"==typeof t||this.__addimage__.isArrayBuffer(t)||this.__addimage__.isArrayBufferView(t)){switch(t=a||t,t=this.__addimage__.isArrayBuffer(t)?new Uint8Array(t):t,(s=function(t){for(var r,n=256*t.charCodeAt(4)+t.charCodeAt(5),i=t.length,a={width:0,height:0,numcomponents:1},o=4;o<i;o+=2){if(o+=n,-1!==e.indexOf(t.charCodeAt(o+1))){r=256*t.charCodeAt(o+5)+t.charCodeAt(o+6),a={width:256*t.charCodeAt(o+7)+t.charCodeAt(o+8),height:r,numcomponents:t.charCodeAt(o+9)};break}n=256*t.charCodeAt(o+2)+t.charCodeAt(o+3)}return a}(t=this.__addimage__.isArrayBufferView(t)?this.__addimage__.arrayBufferToBinaryString(t):t)).numcomponents){case 1:o=this.color_spaces.DEVICE_GRAY;break;case 4:o=this.color_spaces.DEVICE_CMYK;break;case 3:o=this.color_spaces.DEVICE_RGB}u={data:t,width:s.width,height:s.height,colorSpace:o,bitsPerComponent:8,filter:c,index:r,alias:n}}return u}}(E.API);var Vt,Gt,Yt,Jt,Xt,Kt=function(){var t,e,i;function a(t){var e,r,n,i,a,o,s,c,u,h,l,f,d,p;for(this.data=t,this.pos=8,this.palette=[],this.imgData=[],this.transparency={},this.animation=null,this.text={},o=null;;){switch(e=this.readUInt32(),u=function(){var t,e;for(e=[],t=0;t<4;++t)e.push(String.fromCharCode(this.data[this.pos++]));return e}.call(this).join(\"\")){case\"IHDR\":this.width=this.readUInt32(),this.height=this.readUInt32(),this.bits=this.data[this.pos++],this.colorType=this.data[this.pos++],this.compressionMethod=this.data[this.pos++],this.filterMethod=this.data[this.pos++],this.interlaceMethod=this.data[this.pos++];break;case\"acTL\":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||1/0,frames:[]};break;case\"PLTE\":this.palette=this.read(e);break;case\"fcTL\":o&&this.animation.frames.push(o),this.pos+=4,o={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()},a=this.readUInt16(),i=this.readUInt16()||100,o.delay=1e3*a/i,o.disposeOp=this.data[this.pos++],o.blendOp=this.data[this.pos++],o.data=[];break;case\"IDAT\":case\"fdAT\":for(\"fdAT\"===u&&(this.pos+=4,e-=4),t=(null!=o?o.data:void 0)||this.imgData,f=0;0<=e?f<e:f>e;0<=e?++f:--f)t.push(this.data[this.pos++]);break;case\"tRNS\":switch(this.transparency={},this.colorType){case 3:if(n=this.palette.length/3,this.transparency.indexed=this.read(e),this.transparency.indexed.length>n)throw new Error(\"More transparent colors than palette size\");if((h=n-this.transparency.indexed.length)>0)for(d=0;0<=h?d<h:d>h;0<=h?++d:--d)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(e)[0];break;case 2:this.transparency.rgb=this.read(e)}break;case\"tEXt\":s=(l=this.read(e)).indexOf(0),c=String.fromCharCode.apply(String,l.slice(0,s)),this.text[c]=String.fromCharCode.apply(String,l.slice(s+1));break;case\"IEND\":return o&&this.animation.frames.push(o),this.colors=function(){switch(this.colorType){case 0:case 3:case 4:return 1;case 2:case 6:return 3}}.call(this),this.hasAlphaChannel=4===(p=this.colorType)||6===p,r=this.colors+(this.hasAlphaChannel?1:0),this.pixelBitlength=this.bits*r,this.colorSpace=function(){switch(this.colors){case 1:return\"DeviceGray\";case 3:return\"DeviceRGB\"}}.call(this),void(this.imgData=new Uint8Array(this.imgData));default:this.pos+=e}if(this.pos+=4,this.pos>this.data.length)throw new Error(\"Incomplete or corrupt PNG file\")}}a.prototype.read=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;0<=t?++e:--e)r.push(this.data[this.pos++]);return r},a.prototype.readUInt32=function(){return this.data[this.pos++]<<24|this.data[this.pos++]<<16|this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.readUInt16=function(){return this.data[this.pos++]<<8|this.data[this.pos++]},a.prototype.decodePixels=function(t){var e=this.pixelBitlength/8,n=new Uint8Array(this.width*this.height*e),i=0,a=this;if(null==t&&(t=this.imgData),0===t.length)return new Uint8Array(0);function o(r,o,s,c){var u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F=Math.ceil((a.width-r)/s),C=Math.ceil((a.height-o)/c),j=a.width==F&&a.height==C;for(L=e*F,w=j?n:new Uint8Array(L*C),p=t.length,N=0,h=0;N<C&&i<p;){switch(t[i++]){case 0:for(f=S=0;S<L;f=S+=1)w[h++]=t[i++];break;case 1:for(f=_=0;_<L;f=_+=1)u=t[i++],d=f<e?0:w[h-e],w[h++]=(u+d)%256;break;case 2:for(f=P=0;P<L;f=P+=1)u=t[i++],l=(f-f%e)/e,A=N&&w[(N-1)*L+l*e+f%e],w[h++]=(A+u)%256;break;case 3:for(f=k=0;k<L;f=k+=1)u=t[i++],l=(f-f%e)/e,d=f<e?0:w[h-e],A=N&&w[(N-1)*L+l*e+f%e],w[h++]=(u+Math.floor((d+A)/2))%256;break;case 4:for(f=I=0;I<L;f=I+=1)u=t[i++],l=(f-f%e)/e,d=f<e?0:w[h-e],0===N?A=x=0:(A=w[(N-1)*L+l*e+f%e],x=l&&w[(N-1)*L+(l-1)*e+f%e]),g=d+A-x,m=Math.abs(g-d),b=Math.abs(g-A),y=Math.abs(g-x),v=m<=b&&m<=y?d:b<=y?A:x,w[h++]=(u+v)%256;break;default:throw new Error(\"Invalid filter algorithm: \"+t[i-1])}if(!j){var O=((o+N*c)*a.width+r)*e,B=N*L;for(f=0;f<F;f+=1){for(var M=0;M<e;M+=1)n[O++]=w[B++];O+=(s-1)*e}}N++}}return t=r(t),1==a.interlaceMethod?(o(0,0,8,8),o(4,0,8,8),o(0,4,4,8),o(2,0,4,4),o(0,2,2,4),o(1,0,2,2),o(0,1,1,2)):o(0,0,1,1),n},a.prototype.decodePalette=function(){var t,e,r,n,i,a,o,s,c;for(r=this.palette,a=this.transparency.indexed||[],i=new Uint8Array((a.length||0)+r.length),n=0,t=0,e=o=0,s=r.length;o<s;e=o+=3)i[n++]=r[e],i[n++]=r[e+1],i[n++]=r[e+2],i[n++]=null!=(c=a[t++])?c:255;return i},a.prototype.copyToImageData=function(t,e){var r,n,i,a,o,s,c,u,h,l,f;if(n=this.colors,h=null,r=this.hasAlphaChannel,this.palette.length&&(h=null!=(f=this._decodedPalette)?f:this._decodedPalette=this.decodePalette(),n=4,r=!0),u=(i=t.data||t).length,o=h||e,a=s=0,1===n)for(;a<u;)c=h?4*e[a/4]:s,l=o[c++],i[a++]=l,i[a++]=l,i[a++]=l,i[a++]=r?o[c++]:255,s=c;else for(;a<u;)c=h?4*e[a/4]:s,i[a++]=o[c++],i[a++]=o[c++],i[a++]=o[c++],i[a++]=r?o[c++]:255,s=c},a.prototype.decode=function(){var t;return t=new Uint8Array(this.width*this.height*4),this.copyToImageData(t,this.decodePixels()),t};var o=function(){if(\"[object Window]\"===Object.prototype.toString.call(n)){try{e=n.document.createElement(\"canvas\"),i=e.getContext(\"2d\")}catch(t){return!1}return!0}return!1};return o(),t=function(t){var r;if(!0===o())return i.width=t.width,i.height=t.height,i.clearRect(0,0,t.width,t.height),i.putImageData(t,0,0),(r=new Image).src=e.toDataURL(),r;throw new Error(\"This method requires a Browser with Canvas-capability.\")},a.prototype.decodeFrames=function(e){var r,n,i,a,o,s,c,u;if(this.animation){for(u=[],n=o=0,s=(c=this.animation.frames).length;o<s;n=++o)r=c[n],i=e.createImageData(r.width,r.height),a=this.decodePixels(new Uint8Array(r.data)),this.copyToImageData(i,a),r.imageData=i,u.push(r.image=t(i));return u}},a.prototype.renderFrame=function(t,e){var r,n,i;return r=(n=this.animation.frames)[e],i=n[e-1],0===e&&t.clearRect(0,0,this.width,this.height),1===(null!=i?i.disposeOp:void 0)?t.clearRect(i.xOffset,i.yOffset,i.width,i.height):2===(null!=i?i.disposeOp:void 0)&&t.putImageData(i.imageData,i.xOffset,i.yOffset),0===r.blendOp&&t.clearRect(r.xOffset,r.yOffset,r.width,r.height),t.drawImage(r.image,r.xOffset,r.yOffset)},a.prototype.animate=function(t){var e,r,n,i,a,o,s=this;return r=0,o=this.animation,i=o.numFrames,n=o.frames,a=o.numPlays,(e=function(){var o,c;if(o=r++%i,c=n[o],s.renderFrame(t,o),i>1&&r/i<a)return s.animation._timeout=setTimeout(e,c.delay)})()},a.prototype.stopAnimation=function(){var t;return clearTimeout(null!=(t=this.animation)?t._timeout:void 0)},a.prototype.render=function(t){var e,r;return t._png&&t._png.stopAnimation(),t._png=this,t.width=this.width,t.height=this.height,e=t.getContext(\"2d\"),this.animation?(this.decodeFrames(e),this.animate(e)):(r=e.createImageData(this.width,this.height),this.copyToImageData(r,this.decodePixels()),e.putImageData(r,0,0))},a}();\n/**\n * @license\n *\n * Copyright (c) 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n/**\n * @license\n * (c) Dean McNamee <dean@gmail.com>, 2013.\n *\n * https://github.com/deanm/omggif\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n * omggif is a JavaScript implementation of a GIF 89a encoder and decoder,\n * including animation and compression. It does not rely on any specific\n * underlying system, so should run in the browser, Node, or Plask.\n */\nfunction Zt(t){var e=0;if(71!==t[e++]||73!==t[e++]||70!==t[e++]||56!==t[e++]||56!=(t[e++]+1&253)||97!==t[e++])throw new Error(\"Invalid GIF 87a/89a header.\");var r=t[e++]|t[e++]<<8,n=t[e++]|t[e++]<<8,i=t[e++],a=i>>7,o=1<<(7&i)+1;t[e++];t[e++];var s=null,c=null;a&&(s=e,c=o,e+=3*o);var u=!0,h=[],l=0,f=null,d=0,p=null;for(this.width=r,this.height=n;u&&e<t.length;)switch(t[e++]){case 33:switch(t[e++]){case 255:if(11!==t[e]||78==t[e+1]&&69==t[e+2]&&84==t[e+3]&&83==t[e+4]&&67==t[e+5]&&65==t[e+6]&&80==t[e+7]&&69==t[e+8]&&50==t[e+9]&&46==t[e+10]&&48==t[e+11]&&3==t[e+12]&&1==t[e+13]&&0==t[e+16])e+=14,p=t[e++]|t[e++]<<8,e++;else for(e+=12;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;case 249:if(4!==t[e++]||0!==t[e+4])throw new Error(\"Invalid graphics extension block.\");var g=t[e++];l=t[e++]|t[e++]<<8,f=t[e++],0==(1&g)&&(f=null),d=g>>2&7,e++;break;case 254:for(;;){if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}break;default:throw new Error(\"Unknown graphic control label: 0x\"+t[e-1].toString(16))}break;case 44:var m=t[e++]|t[e++]<<8,v=t[e++]|t[e++]<<8,b=t[e++]|t[e++]<<8,y=t[e++]|t[e++]<<8,w=t[e++],N=w>>6&1,L=1<<(7&w)+1,A=s,x=c,S=!1;if(w>>7){S=!0;A=e,x=L,e+=3*L}var _=e;for(e++;;){var P;if(!((P=t[e++])>=0))throw Error(\"Invalid block size\");if(0===P)break;e+=P}h.push({x:m,y:v,width:b,height:y,has_local_palette:S,palette_offset:A,palette_size:x,data_offset:_,data_length:e-_,transparent_index:f,interlaced:!!N,delay:l,disposal:d});break;case 59:u=!1;break;default:throw new Error(\"Unknown gif block: 0x\"+t[e-1].toString(16))}this.numFrames=function(){return h.length},this.loopCount=function(){return p},this.frameInfo=function(t){if(t<0||t>=h.length)throw new Error(\"Frame index out of range.\");return h[t]},this.decodeAndBlitFrameBGRA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);$t(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=L,n[p++]=N,n[p++]=w,n[p++]=255}--l}},this.decodeAndBlitFrameRGBA=function(e,n){var i=this.frameInfo(e),a=i.width*i.height,o=new Uint8Array(a);$t(t,i.data_offset,o,a);var s=i.palette_offset,c=i.transparent_index;null===c&&(c=256);var u=i.width,h=r-u,l=u,f=4*(i.y*r+i.x),d=4*((i.y+i.height)*r+i.x),p=f,g=4*h;!0===i.interlaced&&(g+=4*r*7);for(var m=8,v=0,b=o.length;v<b;++v){var y=o[v];if(0===l&&(l=u,(p+=g)>=d&&(g=4*h+4*r*(m-1),p=f+(u+h)*(m<<1),m>>=1)),y===c)p+=4;else{var w=t[s+3*y],N=t[s+3*y+1],L=t[s+3*y+2];n[p++]=w,n[p++]=N,n[p++]=L,n[p++]=255}--l}}}function $t(t,e,r,n){for(var i=t[e++],o=1<<i,s=o+1,c=s+1,u=i+1,h=(1<<u)-1,l=0,f=0,d=0,p=t[e++],g=new Int32Array(4096),m=null;;){for(;l<16&&0!==p;)f|=t[e++]<<l,l+=8,1===p?p=t[e++]:--p;if(l<u)break;var v=f&h;if(f>>=u,l-=u,v!==o){if(v===s)break;for(var b=v<c?v:m,y=0,w=b;w>o;)w=g[w]>>8,++y;var N=w;if(d+y+(b!==v?1:0)>n)return void a.log(\"Warning, gif stream longer than expected.\");r[d++]=N;var L=d+=y;for(b!==v&&(r[d++]=N),w=b;y--;)w=g[w],r[--L]=255&w,w>>=8;null!==m&&c<4096&&(g[c++]=m<<8|N,c>=h+1&&u<12&&(++u,h=h<<1|1)),m=v}else c=s+1,h=(1<<(u=i+1))-1,m=null}return d!==n&&a.log(\"Warning, gif stream shorter than expected.\"),r}\n/**\n * @license\n Copyright (c) 2008, Adobe Systems Incorporated\n All rights reserved.\n\n Redistribution and use in source and binary forms, with or without \n modification, are permitted provided that the following conditions are\n met:\n\n * Redistributions of source code must retain the above copyright notice, \n this list of conditions and the following disclaimer.\n \n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the \n documentation and/or other materials provided with the distribution.\n \n * Neither the name of Adobe Systems Incorporated nor the names of its \n contributors may be used to endorse or promote products derived from \n this software without specific prior written permission.\n\n THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\n IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\n THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR \n CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\n PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/function Qt(t){var e,r,n,i,a,o=Math.floor,s=new Array(64),c=new Array(64),u=new Array(64),h=new Array(64),l=new Array(65535),f=new Array(65535),d=new Array(64),p=new Array(64),g=[],m=0,v=7,b=new Array(64),y=new Array(64),w=new Array(64),N=new Array(256),L=new Array(2048),A=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],x=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],S=[0,1,2,3,4,5,6,7,8,9,10,11],_=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],P=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],k=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],I=[0,1,2,3,4,5,6,7,8,9,10,11],F=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],C=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];function j(t,e){for(var r=0,n=0,i=new Array,a=1;a<=16;a++){for(var o=1;o<=t[a];o++)i[e[n]]=[],i[e[n]][0]=r,i[e[n]][1]=a,n++,r++;r*=2}return i}function O(t){for(var e=t[0],r=t[1]-1;r>=0;)e&1<<r&&(m|=1<<v),r--,--v<0&&(255==m?(B(255),B(0)):B(m),v=7,m=0)}function B(t){g.push(t)}function M(t){B(t>>8&255),B(255&t)}function E(t,e,r,n,i){for(var a,o=i[0],s=i[240],c=function(t,e){var r,n,i,a,o,s,c,u,h,l,f=0;for(h=0;h<8;++h){r=t[f],n=t[f+1],i=t[f+2],a=t[f+3],o=t[f+4],s=t[f+5],c=t[f+6];var p=r+(u=t[f+7]),g=r-u,m=n+c,v=n-c,b=i+s,y=i-s,w=a+o,N=a-o,L=p+w,A=p-w,x=m+b,S=m-b;t[f]=L+x,t[f+4]=L-x;var _=.707106781*(S+A);t[f+2]=A+_,t[f+6]=A-_;var P=.382683433*((L=N+y)-(S=v+g)),k=.5411961*L+P,I=1.306562965*S+P,F=.707106781*(x=y+v),C=g+F,j=g-F;t[f+5]=j+k,t[f+3]=j-k,t[f+1]=C+I,t[f+7]=C-I,f+=8}for(f=0,h=0;h<8;++h){r=t[f],n=t[f+8],i=t[f+16],a=t[f+24],o=t[f+32],s=t[f+40],c=t[f+48];var O=r+(u=t[f+56]),B=r-u,M=n+c,E=n-c,q=i+s,D=i-s,R=a+o,T=a-o,U=O+R,z=O-R,H=M+q,W=M-q;t[f]=U+H,t[f+32]=U-H;var V=.707106781*(W+z);t[f+16]=z+V,t[f+48]=z-V;var G=.382683433*((U=T+D)-(W=E+B)),Y=.5411961*U+G,J=1.306562965*W+G,X=.707106781*(H=D+E),K=B+X,Z=B-X;t[f+40]=Z+Y,t[f+24]=Z-Y,t[f+8]=K+J,t[f+56]=K-J,f++}for(h=0;h<64;++h)l=t[h]*e[h],d[h]=l>0?l+.5|0:l-.5|0;return d}(t,e),u=0;u<64;++u)p[A[u]]=c[u];var h=p[0]-r;r=p[0],0==h?O(n[0]):(O(n[f[a=32767+h]]),O(l[a]));for(var g=63;g>0&&0==p[g];)g--;if(0==g)return O(o),r;for(var m,v=1;v<=g;){for(var b=v;0==p[v]&&v<=g;)++v;var y=v-b;if(y>=16){m=y>>4;for(var w=1;w<=m;++w)O(s);y&=15}a=32767+p[v],O(i[(y<<4)+f[a]]),O(l[a]),v++}return 63!=g&&O(o),r}function q(t){(t=Math.min(Math.max(t,1),100),a!=t)&&(!function(t){for(var e=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],r=0;r<64;r++){var n=o((e[r]*t+50)/100);n=Math.min(Math.max(n,1),255),s[A[r]]=n}for(var i=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],a=0;a<64;a++){var l=o((i[a]*t+50)/100);l=Math.min(Math.max(l,1),255),c[A[a]]=l}for(var f=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],d=0,p=0;p<8;p++)for(var g=0;g<8;g++)u[d]=1/(s[A[d]]*f[p]*f[g]*8),h[d]=1/(c[A[d]]*f[p]*f[g]*8),d++}(t<50?Math.floor(5e3/t):Math.floor(200-2*t)),a=t)}this.encode=function(t,a){a&&q(a),g=new Array,m=0,v=7,M(65496),M(65504),M(16),B(74),B(70),B(73),B(70),B(0),B(1),B(1),B(0),M(1),M(1),B(0),B(0),function(){M(65499),M(132),B(0);for(var t=0;t<64;t++)B(s[t]);B(1);for(var e=0;e<64;e++)B(c[e])}(),function(t,e){M(65472),M(17),B(8),M(e),M(t),B(3),B(1),B(17),B(0),B(2),B(17),B(1),B(3),B(17),B(1)}(t.width,t.height),function(){M(65476),M(418),B(0);for(var t=0;t<16;t++)B(x[t+1]);for(var e=0;e<=11;e++)B(S[e]);B(16);for(var r=0;r<16;r++)B(_[r+1]);for(var n=0;n<=161;n++)B(P[n]);B(1);for(var i=0;i<16;i++)B(k[i+1]);for(var a=0;a<=11;a++)B(I[a]);B(17);for(var o=0;o<16;o++)B(F[o+1]);for(var s=0;s<=161;s++)B(C[s])}(),M(65498),M(12),B(3),B(1),B(0),B(2),B(17),B(3),B(17),B(0),B(63),B(0);var o=0,l=0,f=0;m=0,v=7,this.encode.displayName=\"_encode_\";for(var d,p,N,A,j,D,R,T,U,z=t.data,H=t.width,W=t.height,V=4*H,G=0;G<W;){for(d=0;d<V;){for(j=V*G+d,R=-1,T=0,U=0;U<64;U++)D=j+(T=U>>3)*V+(R=4*(7&U)),G+T>=W&&(D-=V*(G+1+T-W)),d+R>=V&&(D-=d+R-V+4),p=z[D++],N=z[D++],A=z[D++],b[U]=(L[p]+L[N+256>>0]+L[A+512>>0]>>16)-128,y[U]=(L[p+768>>0]+L[N+1024>>0]+L[A+1280>>0]>>16)-128,w[U]=(L[p+1280>>0]+L[N+1536>>0]+L[A+1792>>0]>>16)-128;o=E(b,u,o,e,n),l=E(y,h,l,r,i),f=E(w,h,f,r,i),d+=32}G+=8}if(v>=0){var Y=[];Y[1]=v+1,Y[0]=(1<<v+1)-1,O(Y)}return M(65497),new Uint8Array(g)},t=t||50,function(){for(var t=String.fromCharCode,e=0;e<256;e++)N[e]=t(e)}(),e=j(x,S),r=j(k,I),n=j(_,P),i=j(F,C),function(){for(var t=1,e=2,r=1;r<=15;r++){for(var n=t;n<e;n++)f[32767+n]=r,l[32767+n]=[],l[32767+n][1]=r,l[32767+n][0]=n;for(var i=-(e-1);i<=-t;i++)f[32767+i]=r,l[32767+i]=[],l[32767+i][1]=r,l[32767+i][0]=e-1+i;t<<=1,e<<=1}}(),function(){for(var t=0;t<256;t++)L[t]=19595*t,L[t+256>>0]=38470*t,L[t+512>>0]=7471*t+32768,L[t+768>>0]=-11059*t,L[t+1024>>0]=-21709*t,L[t+1280>>0]=32768*t+8421375,L[t+1536>>0]=-27439*t,L[t+1792>>0]=-5329*t}(),q(t)}\n/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */function te(t,e){if(this.pos=0,this.buffer=t,this.datav=new DataView(t.buffer),this.is_with_alpha=!!e,this.bottom_up=!0,this.flag=String.fromCharCode(this.buffer[0])+String.fromCharCode(this.buffer[1]),this.pos+=2,-1===[\"BM\",\"BA\",\"CI\",\"CP\",\"IC\",\"PT\"].indexOf(this.flag))throw new Error(\"Invalid BMP File\");this.parseHeader(),this.parseBGR()}function ee(t){function e(t){if(!t)throw Error(\"assert :P\")}function r(t,e,r){for(var n=0;4>n;n++)if(t[e+n]!=r.charCodeAt(n))return!0;return!1}function n(t,e,r,n,i){for(var a=0;a<i;a++)t[e+a]=r[n+a]}function i(t,e,r,n){for(var i=0;i<n;i++)t[e+i]=r}function a(t){return new Int32Array(t)}function o(t,e){for(var r=[],n=0;n<t;n++)r.push(new e);return r}function s(t,e){var r=[];return function t(r,n,i){for(var a=i[n],o=0;o<a&&(r.push(i.length>n+1?[]:new e),!(i.length<n+1));o++)t(r[o],n+1,i)}(r,0,t),r}var c=function(){var t=this;function c(t,e){for(var r=1<<e-1>>>0;t&r;)r>>>=1;return r?(t&r-1)+r:t}function u(t,r,n,i,a){e(!(i%n));do{t[r+(i-=n)]=a}while(0<i)}function h(t,r,n,i,o){if(e(2328>=o),512>=o)var s=a(512);else if(null==(s=a(o)))return 0;return function(t,r,n,i,o,s){var h,f,d=r,p=1<<n,g=a(16),m=a(16);for(e(0!=o),e(null!=i),e(null!=t),e(0<n),f=0;f<o;++f){if(15<i[f])return 0;++g[i[f]]}if(g[0]==o)return 0;for(m[1]=0,h=1;15>h;++h){if(g[h]>1<<h)return 0;m[h+1]=m[h]+g[h]}for(f=0;f<o;++f)h=i[f],0<i[f]&&(s[m[h]++]=f);if(1==m[15])return(i=new l).g=0,i.value=s[0],u(t,d,1,p,i),p;var v,b=-1,y=p-1,w=0,N=1,L=1,A=1<<n;for(f=0,h=1,o=2;h<=n;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h])(i=new l).g=h,i.value=s[f++],u(t,d+w,o,A,i),w=c(w,h)}for(h=n+1,o=2;15>=h;++h,o<<=1){if(N+=L<<=1,0>(L-=g[h]))return 0;for(;0<g[h];--g[h]){if(i=new l,(w&y)!=b){for(d+=A,v=1<<(b=h)-n;15>b&&!(0>=(v-=g[b]));)++b,v<<=1;p+=A=1<<(v=b-n),t[r+(b=w&y)].g=v+n,t[r+b].value=d-r-b}i.g=h-n,i.value=s[f++],u(t,d+(w>>n),o,A,i),w=c(w,h)}}return N!=2*m[15]-1?0:p}(t,r,n,i,o,s)}function l(){this.value=this.g=0}function f(){this.value=this.g=0}function d(){this.G=o(5,l),this.H=a(5),this.jc=this.Qb=this.qb=this.nd=0,this.pd=o(Dr,f)}function p(t,r,n,i){e(null!=t),e(null!=r),e(2147483648>i),t.Ca=254,t.I=0,t.b=-8,t.Ka=0,t.oa=r,t.pa=n,t.Jd=r,t.Yc=n+i,t.Zc=4<=i?n+i-4+1:n,_(t)}function g(t,e){for(var r=0;0<e--;)r|=k(t,128)<<e;return r}function m(t,e){var r=g(t,e);return P(t)?-r:r}function v(t,r,n,i){var a,o=0;for(e(null!=t),e(null!=r),e(4294967288>i),t.Sb=i,t.Ra=0,t.u=0,t.h=0,4<i&&(i=4),a=0;a<i;++a)o+=r[n+a]<<8*a;t.Ra=o,t.bb=i,t.oa=r,t.pa=n}function b(t){for(;8<=t.u&&t.bb<t.Sb;)t.Ra>>>=8,t.Ra+=t.oa[t.pa+t.bb]<<Ur-8>>>0,++t.bb,t.u-=8;A(t)&&(t.h=1,t.u=0)}function y(t,r){if(e(0<=r),!t.h&&r<=Tr){var n=L(t)&Rr[r];return t.u+=r,b(t),n}return t.h=1,t.u=0}function w(){this.b=this.Ca=this.I=0,this.oa=[],this.pa=0,this.Jd=[],this.Yc=0,this.Zc=[],this.Ka=0}function N(){this.Ra=0,this.oa=[],this.h=this.u=this.bb=this.Sb=this.pa=0}function L(t){return t.Ra>>>(t.u&Ur-1)>>>0}function A(t){return e(t.bb<=t.Sb),t.h||t.bb==t.Sb&&t.u>Ur}function x(t,e){t.u=e,t.h=A(t)}function S(t){t.u>=zr&&(e(t.u>=zr),b(t))}function _(t){e(null!=t&&null!=t.oa),t.pa<t.Zc?(t.I=(t.oa[t.pa++]|t.I<<8)>>>0,t.b+=8):(e(null!=t&&null!=t.oa),t.pa<t.Yc?(t.b+=8,t.I=t.oa[t.pa++]|t.I<<8):t.Ka?t.b=0:(t.I<<=8,t.b+=8,t.Ka=1))}function P(t){return g(t,1)}function k(t,e){var r=t.Ca;0>t.b&&_(t);var n=t.b,i=r*e>>>8,a=(t.I>>>n>i)+0;for(a?(r-=i,t.I-=i+1<<n>>>0):r=i+1,n=r,i=0;256<=n;)i+=8,n>>=8;return n=7^i+Hr[n],t.b-=n,t.Ca=(r<<n)-1,a}function I(t,e,r){t[e+0]=r>>24&255,t[e+1]=r>>16&255,t[e+2]=r>>8&255,t[e+3]=r>>0&255}function F(t,e){return t[e+0]<<0|t[e+1]<<8}function C(t,e){return F(t,e)|t[e+2]<<16}function j(t,e){return F(t,e)|F(t,e+2)<<16}function O(t,r){var n=1<<r;return e(null!=t),e(0<r),t.X=a(n),null==t.X?0:(t.Mb=32-r,t.Xa=r,1)}function B(t,r){e(null!=t),e(null!=r),e(t.Xa==r.Xa),n(r.X,0,t.X,0,1<<r.Xa)}function M(){this.X=[],this.Xa=this.Mb=0}function E(t,r,n,i){e(null!=n),e(null!=i);var a=n[0],o=i[0];return 0==a&&(a=(t*o+r/2)/r),0==o&&(o=(r*a+t/2)/t),0>=a||0>=o?0:(n[0]=a,i[0]=o,1)}function q(t,e){return t+(1<<e)-1>>>e}function D(t,e){return((4278255360&t)+(4278255360&e)>>>0&4278255360)+((16711935&t)+(16711935&e)>>>0&16711935)>>>0}function R(e,r){t[r]=function(r,n,i,a,o,s,c){var u;for(u=0;u<o;++u){var h=t[e](s[c+u-1],i,a+u);s[c+u]=D(r[n+u],h)}}}function T(){this.ud=this.hd=this.jd=0}function U(t,e){return((4278124286&(t^e))>>>1)+(t&e)>>>0}function z(t){return 0<=t&&256>t?t:0>t?0:255<t?255:void 0}function H(t,e){return z(t+(t-e+.5>>1))}function W(t,e,r){return Math.abs(e-r)-Math.abs(t-r)}function V(t,e,r,n,i,a,o){for(n=a[o-1],r=0;r<i;++r)a[o+r]=n=D(t[e+r],n)}function G(t,e,r,n,i){var a;for(a=0;a<r;++a){var o=t[e+a],s=o>>8&255,c=16711935&(c=(c=16711935&o)+((s<<16)+s));n[i+a]=(4278255360&o)+c>>>0}}function Y(t,e){e.jd=t>>0&255,e.hd=t>>8&255,e.ud=t>>16&255}function J(t,e,r,n,i,a){var o;for(o=0;o<n;++o){var s=e[r+o],c=s>>>8,u=s,h=255&(h=(h=s>>>16)+((t.jd<<24>>24)*(c<<24>>24)>>>5));u=255&(u=(u=u+((t.hd<<24>>24)*(c<<24>>24)>>>5))+((t.ud<<24>>24)*(h<<24>>24)>>>5));i[a+o]=(4278255360&s)+(h<<16)+u}}function X(e,r,n,i,a){t[r]=function(t,e,r,n,o,s,c,u,h){for(n=c;n<u;++n)for(c=0;c<h;++c)o[s++]=a(r[i(t[e++])])},t[e]=function(e,r,o,s,c,u,h){var l=8>>e.b,f=e.Ea,d=e.K[0],p=e.w;if(8>l)for(e=(1<<e.b)-1,p=(1<<l)-1;r<o;++r){var g,m=0;for(g=0;g<f;++g)g&e||(m=i(s[c++])),u[h++]=a(d[m&p]),m>>=l}else t[\"VP8LMapColor\"+n](s,c,d,p,u,h,r,o,f)}}function K(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255}}function Z(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>16&255,n[i++]=a>>8&255,n[i++]=a>>0&255,n[i++]=a>>24&255}}function $(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&240|o>>12&15,o=o>>0&240|o>>28&15;n[i++]=a,n[i++]=o}}function Q(t,e,r,n,i){for(r=e+r;e<r;){var a=(o=t[e++])>>16&248|o>>13&7,o=o>>5&224|o>>3&31;n[i++]=a,n[i++]=o}}function tt(t,e,r,n,i){for(r=e+r;e<r;){var a=t[e++];n[i++]=a>>0&255,n[i++]=a>>8&255,n[i++]=a>>16&255}}function et(t,e,r,i,a,o){if(0==o)for(r=e+r;e<r;)I(i,((o=t[e++])[0]>>24|o[1]>>8&65280|o[2]<<8&16711680|o[3]<<24)>>>0),a+=32;else n(i,a,t,e,r)}function rt(e,r){t[r][0]=t[e+\"0\"],t[r][1]=t[e+\"1\"],t[r][2]=t[e+\"2\"],t[r][3]=t[e+\"3\"],t[r][4]=t[e+\"4\"],t[r][5]=t[e+\"5\"],t[r][6]=t[e+\"6\"],t[r][7]=t[e+\"7\"],t[r][8]=t[e+\"8\"],t[r][9]=t[e+\"9\"],t[r][10]=t[e+\"10\"],t[r][11]=t[e+\"11\"],t[r][12]=t[e+\"12\"],t[r][13]=t[e+\"13\"],t[r][14]=t[e+\"0\"],t[r][15]=t[e+\"0\"]}function nt(t){return t==Hn||t==Wn||t==Vn||t==Gn}function it(){this.eb=[],this.size=this.A=this.fb=0}function at(){this.y=[],this.f=[],this.ea=[],this.F=[],this.Tc=this.Ed=this.Cd=this.Fd=this.lb=this.Db=this.Ab=this.fa=this.J=this.W=this.N=this.O=0}function ot(){this.Rd=this.height=this.width=this.S=0,this.f={},this.f.RGBA=new it,this.f.kb=new at,this.sd=null}function st(){this.width=[0],this.height=[0],this.Pd=[0],this.Qd=[0],this.format=[0]}function ct(){this.Id=this.fd=this.Md=this.hb=this.ib=this.da=this.bd=this.cd=this.j=this.v=this.Da=this.Sd=this.ob=0}function ut(t){return alert(\"todo:WebPSamplerProcessPlane\"),t.T}function ht(t,e){var r=t.T,i=e.ba.f.RGBA,a=i.eb,o=i.fb+t.ka*i.A,s=vi[e.ba.S],c=t.y,u=t.O,h=t.f,l=t.N,f=t.ea,d=t.W,p=e.cc,g=e.dc,m=e.Mc,v=e.Nc,b=t.ka,y=t.ka+t.T,w=t.U,N=w+1>>1;for(0==b?s(c,u,null,null,h,l,f,d,h,l,f,d,a,o,null,null,w):(s(e.ec,e.fc,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w),++r);b+2<y;b+=2)p=h,g=l,m=f,v=d,l+=t.Rc,d+=t.Rc,o+=2*i.A,s(c,(u+=2*t.fa)-t.fa,c,u,p,g,m,v,h,l,f,d,a,o-i.A,a,o,w);return u+=t.fa,t.j+y<t.o?(n(e.ec,e.fc,c,u,w),n(e.cc,e.dc,h,l,N),n(e.Mc,e.Nc,f,d,N),r--):1&y||s(c,u,null,null,h,l,f,d,h,l,f,d,a,o+i.A,null,null,w),r}function lt(t,r,n){var i=t.F,a=[t.J];if(null!=i){var o=t.U,s=r.ba.S,c=s==Tn||s==Vn;r=r.ba.f.RGBA;var u=[0],h=t.ka;u[0]=t.T,t.Kb&&(0==h?--u[0]:(--h,a[0]-=t.width),t.j+t.ka+t.T==t.o&&(u[0]=t.o-t.j-h));var l=r.eb;h=r.fb+h*r.A;t=Sn(i,a[0],t.width,o,u,l,h+(c?0:3),r.A),e(n==u),t&&nt(s)&&An(l,h,c,o,u,r.A)}return 0}function ft(t){var e=t.ma,r=e.ba.S,n=11>r,i=r==qn||r==Rn||r==Tn||r==Un||12==r||nt(r);if(e.memory=null,e.Ib=null,e.Jb=null,e.Nd=null,!Mr(e.Oa,t,i?11:12))return 0;if(i&&nt(r)&&br(),t.da)alert(\"todo:use_scaling\");else{if(n){if(e.Ib=ut,t.Kb){if(r=t.U+1>>1,e.memory=a(t.U+2*r),null==e.memory)return 0;e.ec=e.memory,e.fc=0,e.cc=e.ec,e.dc=e.fc+t.U,e.Mc=e.cc,e.Nc=e.dc+r,e.Ib=ht,br()}}else alert(\"todo:EmitYUV\");i&&(e.Jb=lt,n&&mr())}if(n&&!Ci){for(t=0;256>t;++t)ji[t]=89858*(t-128)+_i>>Si,Mi[t]=-22014*(t-128)+_i,Bi[t]=-45773*(t-128),Oi[t]=113618*(t-128)+_i>>Si;for(t=Pi;t<ki;++t)e=76283*(t-16)+_i>>Si,Ei[t-Pi]=Vt(e,255),qi[t-Pi]=Vt(e+8>>4,15);Ci=1}return 1}function dt(t){var r=t.ma,n=t.U,i=t.T;return e(!(1&t.ka)),0>=n||0>=i?0:(n=r.Ib(t,r),null!=r.Jb&&r.Jb(t,r,n),r.Dc+=n,1)}function pt(t){t.ma.memory=null}function gt(t,e,r,n){return 47!=y(t,8)?0:(e[0]=y(t,14)+1,r[0]=y(t,14)+1,n[0]=y(t,1),0!=y(t,3)?0:!t.h)}function mt(t,e){if(4>t)return t+1;var r=t-2>>1;return(2+(1&t)<<r)+y(e,r)+1}function vt(t,e){return 120<e?e-120:1<=(r=((r=$n[e-1])>>4)*t+(8-(15&r)))?r:1;var r}function bt(t,e,r){var n=L(r),i=t[e+=255&n].g-8;return 0<i&&(x(r,r.u+8),n=L(r),e+=t[e].value,e+=n&(1<<i)-1),x(r,r.u+t[e].g),t[e].value}function yt(t,r,n){return n.g+=t.g,n.value+=t.value<<r>>>0,e(8>=n.g),t.g}function wt(t,r,n){var i=t.xc;return e((r=0==i?0:t.vc[t.md*(n>>i)+(r>>i)])<t.Wb),t.Ya[r]}function Nt(t,r,i,a){var o=t.ab,s=t.c*r,c=t.C;r=c+r;var u=i,h=a;for(a=t.Ta,i=t.Ua;0<o--;){var l=t.gc[o],f=c,d=r,p=u,g=h,m=(h=a,u=i,l.Ea);switch(e(f<d),e(d<=l.nc),l.hc){case 2:Gr(p,g,(d-f)*m,h,u);break;case 0:var v=f,b=d,y=h,w=u,N=(_=l).Ea;0==v&&(Wr(p,g,null,null,1,y,w),V(p,g+1,0,0,N-1,y,w+1),g+=N,w+=N,++v);for(var L=1<<_.b,A=L-1,x=q(N,_.b),S=_.K,_=_.w+(v>>_.b)*x;v<b;){var P=S,k=_,I=1;for(Vr(p,g,y,w-N,1,y,w);I<N;){var F=(I&~A)+L;F>N&&(F=N),(0,Zr[P[k++]>>8&15])(p,g+ +I,y,w+I-N,F-I,y,w+I),I=F}g+=N,w+=N,++v&A||(_+=x)}d!=l.nc&&n(h,u-m,h,u+(d-f-1)*m,m);break;case 1:for(m=p,b=g,N=(p=l.Ea)-(w=p&~(y=(g=1<<l.b)-1)),v=q(p,l.b),L=l.K,l=l.w+(f>>l.b)*v;f<d;){for(A=L,x=l,S=new T,_=b+w,P=b+p;b<_;)Y(A[x++],S),$r(S,m,b,g,h,u),b+=g,u+=g;b<P&&(Y(A[x++],S),$r(S,m,b,N,h,u),b+=N,u+=N),++f&y||(l+=v)}break;case 3:if(p==h&&g==u&&0<l.b){for(b=h,p=m=u+(d-f)*m-(w=(d-f)*q(l.Ea,l.b)),g=h,y=u,v=[],w=(N=w)-1;0<=w;--w)v[w]=g[y+w];for(w=N-1;0<=w;--w)b[p+w]=v[w];Yr(l,f,d,h,m,h,u)}else Yr(l,f,d,p,g,h,u)}u=a,h=i}h!=i&&n(a,i,u,h,s)}function Lt(t,r){var n=t.V,i=t.Ba+t.c*t.C,a=r-t.C;if(e(r<=t.l.o),e(16>=a),0<a){var o=t.l,s=t.Ta,c=t.Ua,u=o.width;if(Nt(t,a,n,i),a=c=[c],e((n=t.C)<(i=r)),e(o.v<o.va),i>o.o&&(i=o.o),n<o.j){var h=o.j-n;n=o.j;a[0]+=h*u}if(n>=i?n=0:(a[0]+=4*o.v,o.ka=n-o.j,o.U=o.va-o.v,o.T=i-n,n=1),n){if(c=c[0],11>(n=t.ca).S){var l=n.f.RGBA,f=(i=n.S,a=o.U,o=o.T,h=l.eb,l.A),d=o;for(l=l.fb+t.Ma*l.A;0<d--;){var p=s,g=c,m=a,v=h,b=l;switch(i){case En:Qr(p,g,m,v,b);break;case qn:tn(p,g,m,v,b);break;case Hn:tn(p,g,m,v,b),An(v,b,0,m,1,0);break;case Dn:nn(p,g,m,v,b);break;case Rn:et(p,g,m,v,b,1);break;case Wn:et(p,g,m,v,b,1),An(v,b,0,m,1,0);break;case Tn:et(p,g,m,v,b,0);break;case Vn:et(p,g,m,v,b,0),An(v,b,1,m,1,0);break;case Un:en(p,g,m,v,b);break;case Gn:en(p,g,m,v,b),xn(v,b,m,1,0);break;case zn:rn(p,g,m,v,b);break;default:e(0)}c+=u,l+=f}t.Ma+=o}else alert(\"todo:EmitRescaledRowsYUVA\");e(t.Ma<=n.height)}}t.C=r,e(t.C<=t.i)}function At(t){var e;if(0<t.ua)return 0;for(e=0;e<t.Wb;++e){var r=t.Ya[e].G,n=t.Ya[e].H;if(0<r[1][n[1]+0].g||0<r[2][n[2]+0].g||0<r[3][n[3]+0].g)return 0}return 1}function xt(t,r,n,i,a,o){if(0!=t.Z){var s=t.qd,c=t.rd;for(e(null!=mi[t.Z]);r<n;++r)mi[t.Z](s,c,i,a,i,a,o),s=i,c=a,a+=o;t.qd=s,t.rd=c}}function St(t,r){var n=t.l.ma,i=0==n.Z||1==n.Z?t.l.j:t.C;i=t.C<i?i:t.C;if(e(r<=t.l.o),r>i){var a=t.l.width,o=n.ca,s=n.tb+a*i,c=t.V,u=t.Ba+t.c*i,h=t.gc;e(1==t.ab),e(3==h[0].hc),Xr(h[0],i,r,c,u,o,s),xt(n,i,r,o,s,a)}t.C=t.Ma=r}function _t(t,r,n,i,a,o,s){var c=t.$/i,u=t.$%i,h=t.m,l=t.s,f=n+t.$,d=f;a=n+i*a;var p=n+i*o,g=280+l.ua,m=t.Pb?c:16777216,v=0<l.ua?l.Wa:null,b=l.wc,y=f<p?wt(l,u,c):null;e(t.C<o),e(p<=a);var w=!1;t:for(;;){for(;w||f<p;){var N=0;if(c>=m){var _=f-n;e((m=t).Pb),m.wd=m.m,m.xd=_,0<m.s.ua&&B(m.s.Wa,m.s.vb),m=c+ti}if(u&b||(y=wt(l,u,c)),e(null!=y),y.Qb&&(r[f]=y.qb,w=!0),!w)if(S(h),y.jc){N=h,_=r;var P=f,k=y.pd[L(N)&Dr-1];e(y.jc),256>k.g?(x(N,N.u+k.g),_[P]=k.value,N=0):(x(N,N.u+k.g-256),e(256<=k.value),N=k.value),0==N&&(w=!0)}else N=bt(y.G[0],y.H[0],h);if(h.h)break;if(w||256>N){if(!w)if(y.nd)r[f]=(y.qb|N<<8)>>>0;else{if(S(h),w=bt(y.G[1],y.H[1],h),S(h),_=bt(y.G[2],y.H[2],h),P=bt(y.G[3],y.H[3],h),h.h)break;r[f]=(P<<24|w<<16|N<<8|_)>>>0}if(w=!1,++f,++u>=i&&(u=0,++c,null!=s&&c<=o&&!(c%16)&&s(t,c),null!=v))for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else if(280>N){if(N=mt(N-256,h),_=bt(y.G[4],y.H[4],h),S(h),_=vt(i,_=mt(_,h)),h.h)break;if(f-n<_||a-f<N)break t;for(P=0;P<N;++P)r[f+P]=r[f+P-_];for(f+=N,u+=N;u>=i;)u-=i,++c,null!=s&&c<=o&&!(c%16)&&s(t,c);if(e(f<=a),u&b&&(y=wt(l,u,c)),null!=v)for(;d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N}else{if(!(N<g))break t;for(w=N-280,e(null!=v);d<f;)N=r[d++],v.X[(506832829*N&4294967295)>>>v.Mb]=N;N=f,e(!(w>>>(_=v).Xa)),r[N]=_.X[w],w=!0}w||e(h.h==A(h))}if(t.Pb&&h.h&&f<a)e(t.m.h),t.a=5,t.m=t.wd,t.$=t.xd,0<t.s.ua&&B(t.s.vb,t.s.Wa);else{if(h.h)break t;null!=s&&s(t,c>o?o:c),t.a=0,t.$=f-n}return 1}return t.a=3,0}function Pt(t){e(null!=t),t.vc=null,t.yc=null,t.Ya=null;var r=t.Wa;null!=r&&(r.X=null),t.vb=null,e(null!=t)}function kt(){var e=new or;return null==e?null:(e.a=0,e.xb=gi,rt(\"Predictor\",\"VP8LPredictors\"),rt(\"Predictor\",\"VP8LPredictors_C\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd\"),rt(\"PredictorAdd\",\"VP8LPredictorsAdd_C\"),Gr=G,$r=J,Qr=K,tn=Z,en=$,rn=Q,nn=tt,t.VP8LMapColor32b=Jr,t.VP8LMapColor8b=Kr,e)}function It(t,r,n,s,c){var u=1,f=[t],p=[r],g=s.m,m=s.s,v=null,b=0;t:for(;;){if(n)for(;u&&y(g,1);){var w=f,N=p,A=s,_=1,P=A.m,k=A.gc[A.ab],I=y(P,2);if(A.Oc&1<<I)u=0;else{switch(A.Oc|=1<<I,k.hc=I,k.Ea=w[0],k.nc=N[0],k.K=[null],++A.ab,e(4>=A.ab),I){case 0:case 1:k.b=y(P,3)+2,_=It(q(k.Ea,k.b),q(k.nc,k.b),0,A,k.K),k.K=k.K[0];break;case 3:var F,C=y(P,8)+1,j=16<C?0:4<C?1:2<C?2:3;if(w[0]=q(k.Ea,j),k.b=j,F=_=It(C,1,0,A,k.K)){var B,M=C,E=k,R=1<<(8>>E.b),T=a(R);if(null==T)F=0;else{var U=E.K[0],z=E.w;for(T[0]=E.K[0][0],B=1;B<1*M;++B)T[B]=D(U[z+B],T[B-1]);for(;B<4*R;++B)T[B]=0;E.K[0]=null,E.K[0]=T,F=1}}_=F;break;case 2:break;default:e(0)}u=_}}if(f=f[0],p=p[0],u&&y(g,1)&&!(u=1<=(b=y(g,4))&&11>=b)){s.a=3;break t}var H;if(H=u)e:{var W,V,G,Y=s,J=f,X=p,K=b,Z=n,$=Y.m,Q=Y.s,tt=[null],et=1,rt=0,nt=Qn[K];r:for(;;){if(Z&&y($,1)){var it=y($,3)+2,at=q(J,it),ot=q(X,it),st=at*ot;if(!It(at,ot,0,Y,tt))break r;for(tt=tt[0],Q.xc=it,W=0;W<st;++W){var ct=tt[W]>>8&65535;tt[W]=ct,ct>=et&&(et=ct+1)}}if($.h)break r;for(V=0;5>V;++V){var ut=Xn[V];!V&&0<K&&(ut+=1<<K),rt<ut&&(rt=ut)}var ht=o(et*nt,l),lt=et,ft=o(lt,d);if(null==ft)var dt=null;else e(65536>=lt),dt=ft;var pt=a(rt);if(null==dt||null==pt||null==ht){Y.a=1;break r}var gt=ht;for(W=G=0;W<et;++W){var mt=dt[W],vt=mt.G,bt=mt.H,wt=0,Nt=1,Lt=0;for(V=0;5>V;++V){ut=Xn[V],vt[V]=gt,bt[V]=G,!V&&0<K&&(ut+=1<<K);n:{var At,xt=ut,St=Y,kt=pt,Ft=gt,Ct=G,jt=0,Ot=St.m,Bt=y(Ot,1);if(i(kt,0,0,xt),Bt){var Mt=y(Ot,1)+1,Et=y(Ot,1),qt=y(Ot,0==Et?1:8);kt[qt]=1,2==Mt&&(kt[qt=y(Ot,8)]=1);var Dt=1}else{var Rt=a(19),Tt=y(Ot,4)+4;if(19<Tt){St.a=3;var Ut=0;break n}for(At=0;At<Tt;++At)Rt[Zn[At]]=y(Ot,3);var zt=void 0,Ht=void 0,Wt=St,Vt=Rt,Gt=xt,Yt=kt,Jt=0,Xt=Wt.m,Kt=8,Zt=o(128,l);i:for(;h(Zt,0,7,Vt,19);){if(y(Xt,1)){var $t=2+2*y(Xt,3);if((zt=2+y(Xt,$t))>Gt)break i}else zt=Gt;for(Ht=0;Ht<Gt&&zt--;){S(Xt);var Qt=Zt[0+(127&L(Xt))];x(Xt,Xt.u+Qt.g);var te=Qt.value;if(16>te)Yt[Ht++]=te,0!=te&&(Kt=te);else{var ee=16==te,re=te-16,ne=Jn[re],ie=y(Xt,Yn[re])+ne;if(Ht+ie>Gt)break i;for(var ae=ee?Kt:0;0<ie--;)Yt[Ht++]=ae}}Jt=1;break i}Jt||(Wt.a=3),Dt=Jt}(Dt=Dt&&!Ot.h)&&(jt=h(Ft,Ct,8,kt,xt)),Dt&&0!=jt?Ut=jt:(St.a=3,Ut=0)}if(0==Ut)break r;if(Nt&&1==Kn[V]&&(Nt=0==gt[G].g),wt+=gt[G].g,G+=Ut,3>=V){var oe,se=pt[0];for(oe=1;oe<ut;++oe)pt[oe]>se&&(se=pt[oe]);Lt+=se}}if(mt.nd=Nt,mt.Qb=0,Nt&&(mt.qb=(vt[3][bt[3]+0].value<<24|vt[1][bt[1]+0].value<<16|vt[2][bt[2]+0].value)>>>0,0==wt&&256>vt[0][bt[0]+0].value&&(mt.Qb=1,mt.qb+=vt[0][bt[0]+0].value<<8)),mt.jc=!mt.Qb&&6>Lt,mt.jc){var ce,ue=mt;for(ce=0;ce<Dr;++ce){var he=ce,le=ue.pd[he],fe=ue.G[0][ue.H[0]+he];256<=fe.value?(le.g=fe.g+256,le.value=fe.value):(le.g=0,le.value=0,he>>=yt(fe,8,le),he>>=yt(ue.G[1][ue.H[1]+he],16,le),he>>=yt(ue.G[2][ue.H[2]+he],0,le),yt(ue.G[3][ue.H[3]+he],24,le))}}}Q.vc=tt,Q.Wb=et,Q.Ya=dt,Q.yc=ht,H=1;break e}H=0}if(!(u=H)){s.a=3;break t}if(0<b){if(m.ua=1<<b,!O(m.Wa,b)){s.a=1,u=0;break t}}else m.ua=0;var de=s,pe=f,ge=p,me=de.s,ve=me.xc;if(de.c=pe,de.i=ge,me.md=q(pe,ve),me.wc=0==ve?-1:(1<<ve)-1,n){s.xb=pi;break t}if(null==(v=a(f*p))){s.a=1,u=0;break t}u=(u=_t(s,v,0,f,p,p,null))&&!g.h;break t}return u?(null!=c?c[0]=v:(e(null==v),e(n)),s.$=0,n||Pt(m)):Pt(m),u}function Ft(t,r){var n=t.c*t.i,i=n+r+16*r;return e(t.c<=r),t.V=a(i),null==t.V?(t.Ta=null,t.Ua=0,t.a=1,0):(t.Ta=t.V,t.Ua=t.Ba+n+r,1)}function Ct(t,r){var n=t.C,i=r-n,a=t.V,o=t.Ba+t.c*n;for(e(r<=t.l.o);0<i;){var s=16<i?16:i,c=t.l.ma,u=t.l.width,h=u*s,l=c.ca,f=c.tb+u*n,d=t.Ta,p=t.Ua;Nt(t,s,a,o),_n(d,p,l,f,h),xt(c,n,n+s,l,f,u),i-=s,a+=s*t.c,n+=s}e(n==r),t.C=t.Ma=r}function jt(){this.ub=this.yd=this.td=this.Rb=0}function Ot(){this.Kd=this.Ld=this.Ud=this.Td=this.i=this.c=0}function Bt(){this.Fb=this.Bb=this.Cb=0,this.Zb=a(4),this.Lb=a(4)}function Mt(){this.Yb=function(){var t=[];return function t(e,r,n){for(var i=n[r],a=0;a<i&&(e.push(n.length>r+1?[]:0),!(n.length<r+1));a++)t(e[a],r+1,n)}(t,0,[3,11]),t}()}function Et(){this.jb=a(3),this.Wc=s([4,8],Mt),this.Xc=s([4,17],Mt)}function qt(){this.Pc=this.wb=this.Tb=this.zd=0,this.vd=new a(4),this.od=new a(4)}function Dt(){this.ld=this.La=this.dd=this.tc=0}function Rt(){this.Na=this.la=0}function Tt(){this.Sc=[0,0],this.Eb=[0,0],this.Qc=[0,0],this.ia=this.lc=0}function Ut(){this.ad=a(384),this.Za=0,this.Ob=a(16),this.$b=this.Ad=this.ia=this.Gc=this.Hc=this.Dd=0}function zt(){this.uc=this.M=this.Nb=0,this.wa=Array(new Dt),this.Y=0,this.ya=Array(new Ut),this.aa=0,this.l=new Gt}function Ht(){this.y=a(16),this.f=a(8),this.ea=a(8)}function Wt(){this.cb=this.a=0,this.sc=\"\",this.m=new w,this.Od=new jt,this.Kc=new Ot,this.ed=new qt,this.Qa=new Bt,this.Ic=this.$c=this.Aa=0,this.D=new zt,this.Xb=this.Va=this.Hb=this.zb=this.yb=this.Ub=this.za=0,this.Jc=o(8,w),this.ia=0,this.pb=o(4,Tt),this.Pa=new Et,this.Bd=this.kc=0,this.Ac=[],this.Bc=0,this.zc=[0,0,0,0],this.Gd=Array(new Ht),this.Hd=0,this.rb=Array(new Rt),this.sb=0,this.wa=Array(new Dt),this.Y=0,this.oc=[],this.pc=0,this.sa=[],this.ta=0,this.qa=[],this.ra=0,this.Ha=[],this.B=this.R=this.Ia=0,this.Ec=[],this.M=this.ja=this.Vb=this.Fc=0,this.ya=Array(new Ut),this.L=this.aa=0,this.gd=s([4,2],Dt),this.ga=null,this.Fa=[],this.Cc=this.qc=this.P=0,this.Gb=[],this.Uc=0,this.mb=[],this.nb=0,this.rc=[],this.Ga=this.Vc=0}function Vt(t,e){return 0>t?0:t>e?e:t}function Gt(){this.T=this.U=this.ka=this.height=this.width=0,this.y=[],this.f=[],this.ea=[],this.Rc=this.fa=this.W=this.N=this.O=0,this.ma=\"void\",this.put=\"VP8IoPutHook\",this.ac=\"VP8IoSetupHook\",this.bc=\"VP8IoTeardownHook\",this.ha=this.Kb=0,this.data=[],this.hb=this.ib=this.da=this.o=this.j=this.va=this.v=this.Da=this.ob=this.w=0,this.F=[],this.J=0}function Yt(){var t=new Wt;return null!=t&&(t.a=0,t.sc=\"OK\",t.cb=0,t.Xb=0,ni||(ni=Zt)),t}function Jt(t,e,r){return 0==t.a&&(t.a=e,t.sc=r,t.cb=0),0}function Xt(t,e,r){return 3<=r&&157==t[e+0]&&1==t[e+1]&&42==t[e+2]}function Kt(t,r){if(null==t)return 0;if(t.a=0,t.sc=\"OK\",null==r)return Jt(t,2,\"null VP8Io passed to VP8GetHeaders()\");var n=r.data,a=r.w,o=r.ha;if(4>o)return Jt(t,7,\"Truncated header.\");var s=n[a+0]|n[a+1]<<8|n[a+2]<<16,c=t.Od;if(c.Rb=!(1&s),c.td=s>>1&7,c.yd=s>>4&1,c.ub=s>>5,3<c.td)return Jt(t,3,\"Incorrect keyframe parameters.\");if(!c.yd)return Jt(t,4,\"Frame not displayable.\");a+=3,o-=3;var u=t.Kc;if(c.Rb){if(7>o)return Jt(t,7,\"cannot parse picture header\");if(!Xt(n,a,o))return Jt(t,3,\"Bad code word\");u.c=16383&(n[a+4]<<8|n[a+3]),u.Td=n[a+4]>>6,u.i=16383&(n[a+6]<<8|n[a+5]),u.Ud=n[a+6]>>6,a+=7,o-=7,t.za=u.c+15>>4,t.Ub=u.i+15>>4,r.width=u.c,r.height=u.i,r.Da=0,r.j=0,r.v=0,r.va=r.width,r.o=r.height,r.da=0,r.ib=r.width,r.hb=r.height,r.U=r.width,r.T=r.height,i((s=t.Pa).jb,0,255,s.jb.length),e(null!=(s=t.Qa)),s.Cb=0,s.Bb=0,s.Fb=1,i(s.Zb,0,0,s.Zb.length),i(s.Lb,0,0,s.Lb)}if(c.ub>o)return Jt(t,7,\"bad partition length\");p(s=t.m,n,a,c.ub),a+=c.ub,o-=c.ub,c.Rb&&(u.Ld=P(s),u.Kd=P(s)),u=t.Qa;var h,l=t.Pa;if(e(null!=s),e(null!=u),u.Cb=P(s),u.Cb){if(u.Bb=P(s),P(s)){for(u.Fb=P(s),h=0;4>h;++h)u.Zb[h]=P(s)?m(s,7):0;for(h=0;4>h;++h)u.Lb[h]=P(s)?m(s,6):0}if(u.Bb)for(h=0;3>h;++h)l.jb[h]=P(s)?g(s,8):255}else u.Bb=0;if(s.Ka)return Jt(t,3,\"cannot parse segment header\");if((u=t.ed).zd=P(s),u.Tb=g(s,6),u.wb=g(s,3),u.Pc=P(s),u.Pc&&P(s)){for(l=0;4>l;++l)P(s)&&(u.vd[l]=m(s,6));for(l=0;4>l;++l)P(s)&&(u.od[l]=m(s,6))}if(t.L=0==u.Tb?0:u.zd?1:2,s.Ka)return Jt(t,3,\"cannot parse filter header\");var f=o;if(o=h=a,a=h+f,u=f,t.Xb=(1<<g(t.m,2))-1,f<3*(l=t.Xb))n=7;else{for(h+=3*l,u-=3*l,f=0;f<l;++f){var d=n[o+0]|n[o+1]<<8|n[o+2]<<16;d>u&&(d=u),p(t.Jc[+f],n,h,d),h+=d,u-=d,o+=3}p(t.Jc[+l],n,h,u),n=h<a?0:5}if(0!=n)return Jt(t,n,\"cannot parse partitions\");for(n=g(h=t.m,7),o=P(h)?m(h,4):0,a=P(h)?m(h,4):0,u=P(h)?m(h,4):0,l=P(h)?m(h,4):0,h=P(h)?m(h,4):0,f=t.Qa,d=0;4>d;++d){if(f.Cb){var v=f.Zb[d];f.Fb||(v+=n)}else{if(0<d){t.pb[d]=t.pb[0];continue}v=n}var b=t.pb[d];b.Sc[0]=ei[Vt(v+o,127)],b.Sc[1]=ri[Vt(v+0,127)],b.Eb[0]=2*ei[Vt(v+a,127)],b.Eb[1]=101581*ri[Vt(v+u,127)]>>16,8>b.Eb[1]&&(b.Eb[1]=8),b.Qc[0]=ei[Vt(v+l,117)],b.Qc[1]=ri[Vt(v+h,127)],b.lc=v+h}if(!c.Rb)return Jt(t,4,\"Not a key frame.\");for(P(s),c=t.Pa,n=0;4>n;++n){for(o=0;8>o;++o)for(a=0;3>a;++a)for(u=0;11>u;++u)l=k(s,ui[n][o][a][u])?g(s,8):si[n][o][a][u],c.Wc[n][o].Yb[a][u]=l;for(o=0;17>o;++o)c.Xc[n][o]=c.Wc[n][hi[o]]}return t.kc=P(s),t.kc&&(t.Bd=g(s,8)),t.cb=1}function Zt(t,e,r,n,i,a,o){var s=e[i].Yb[r];for(r=0;16>i;++i){if(!k(t,s[r+0]))return i;for(;!k(t,s[r+1]);)if(s=e[++i].Yb[0],r=0,16==i)return 16;var c=e[i+1].Yb;if(k(t,s[r+2])){var u=t,h=0;if(k(u,(f=s)[(l=r)+3]))if(k(u,f[l+6])){for(s=0,l=2*(h=k(u,f[l+8]))+(f=k(u,f[l+9+h])),h=0,f=ii[l];f[s];++s)h+=h+k(u,f[s]);h+=3+(8<<l)}else k(u,f[l+7])?(h=7+2*k(u,165),h+=k(u,145)):h=5+k(u,159);else h=k(u,f[l+4])?3+k(u,f[l+5]):2;s=c[2]}else h=1,s=c[1];c=o+ai[i],0>(u=t).b&&_(u);var l,f=u.b,d=(l=u.Ca>>1)-(u.I>>f)>>31;--u.b,u.Ca+=d,u.Ca|=1,u.I-=(l+1&d)<<f,a[c]=((h^d)-d)*n[(0<i)+0]}return 16}function $t(t){var e=t.rb[t.sb-1];e.la=0,e.Na=0,i(t.zc,0,0,t.zc.length),t.ja=0}function Qt(t,r){if(null==t)return 0;if(null==r)return Jt(t,2,\"NULL VP8Io parameter in VP8Decode().\");if(!t.cb&&!Kt(t,r))return 0;if(e(t.cb),null==r.ac||r.ac(r)){r.ob&&(t.L=0);var s=Ri[t.L];if(2==t.L?(t.yb=0,t.zb=0):(t.yb=r.v-s>>4,t.zb=r.j-s>>4,0>t.yb&&(t.yb=0),0>t.zb&&(t.zb=0)),t.Va=r.o+15+s>>4,t.Hb=r.va+15+s>>4,t.Hb>t.za&&(t.Hb=t.za),t.Va>t.Ub&&(t.Va=t.Ub),0<t.L){var c=t.ed;for(s=0;4>s;++s){var u;if(t.Qa.Cb){var h=t.Qa.Lb[s];t.Qa.Fb||(h+=c.Tb)}else h=c.Tb;for(u=0;1>=u;++u){var l=t.gd[s][u],f=h;if(c.Pc&&(f+=c.vd[0],u&&(f+=c.od[0])),0<(f=0>f?0:63<f?63:f)){var d=f;0<c.wb&&((d=4<c.wb?d>>2:d>>1)>9-c.wb&&(d=9-c.wb)),1>d&&(d=1),l.dd=d,l.tc=2*f+d,l.ld=40<=f?2:15<=f?1:0}else l.tc=0;l.La=u}}}s=0}else Jt(t,6,\"Frame setup failed\"),s=t.a;if(s=0==s){if(s){t.$c=0,0<t.Aa||(t.Ic=Ui);t:{s=t.Ic;c=4*(d=t.za);var p=32*d,g=d+1,m=0<t.L?d*(0<t.Aa?2:1):0,v=(2==t.Aa?2:1)*d;if((l=c+832+(u=3*(16*s+Ri[t.L])/2*p)+(h=null!=t.Fa&&0<t.Fa.length?t.Kc.c*t.Kc.i:0))!=l)s=0;else{if(l>t.Vb){if(t.Vb=0,t.Ec=a(l),t.Fc=0,null==t.Ec){s=Jt(t,1,\"no memory during frame initialization.\");break t}t.Vb=l}l=t.Ec,f=t.Fc,t.Ac=l,t.Bc=f,f+=c,t.Gd=o(p,Ht),t.Hd=0,t.rb=o(g+1,Rt),t.sb=1,t.wa=m?o(m,Dt):null,t.Y=0,t.D.Nb=0,t.D.wa=t.wa,t.D.Y=t.Y,0<t.Aa&&(t.D.Y+=d),e(!0),t.oc=l,t.pc=f,f+=832,t.ya=o(v,Ut),t.aa=0,t.D.ya=t.ya,t.D.aa=t.aa,2==t.Aa&&(t.D.aa+=d),t.R=16*d,t.B=8*d,d=(p=Ri[t.L])*t.R,p=p/2*t.B,t.sa=l,t.ta=f+d,t.qa=t.sa,t.ra=t.ta+16*s*t.R+p,t.Ha=t.qa,t.Ia=t.ra+8*s*t.B+p,t.$c=0,f+=u,t.mb=h?l:null,t.nb=h?f:null,e(f+h<=t.Fc+t.Vb),$t(t),i(t.Ac,t.Bc,0,c),s=1}}if(s){if(r.ka=0,r.y=t.sa,r.O=t.ta,r.f=t.qa,r.N=t.ra,r.ea=t.Ha,r.Vd=t.Ia,r.fa=t.R,r.Rc=t.B,r.F=null,r.J=0,!Cn){for(s=-255;255>=s;++s)Pn[255+s]=0>s?-s:s;for(s=-1020;1020>=s;++s)kn[1020+s]=-128>s?-128:127<s?127:s;for(s=-112;112>=s;++s)In[112+s]=-16>s?-16:15<s?15:s;for(s=-255;510>=s;++s)Fn[255+s]=0>s?0:255<s?255:s;Cn=1}an=ue,on=ae,cn=oe,un=se,hn=ce,sn=ie,ln=Je,fn=Xe,dn=$e,pn=Qe,gn=Ke,mn=Ze,vn=tr,bn=er,yn=ze,wn=He,Nn=We,Ln=Ve,fi[0]=xe,fi[1]=le,fi[2]=Le,fi[3]=Ae,fi[4]=Se,fi[5]=Pe,fi[6]=_e,fi[7]=ke,fi[8]=Fe,fi[9]=Ie,li[0]=ve,li[1]=de,li[2]=pe,li[3]=ge,li[4]=be,li[5]=ye,li[6]=we,di[0]=Be,di[1]=fe,di[2]=Ce,di[3]=je,di[4]=Ee,di[5]=Me,di[6]=qe,s=1}else s=0}s&&(s=function(t,r){for(t.M=0;t.M<t.Va;++t.M){var o,s=t.Jc[t.M&t.Xb],c=t.m,u=t;for(o=0;o<u.za;++o){var h=c,l=u,f=l.Ac,d=l.Bc+4*o,p=l.zc,g=l.ya[l.aa+o];if(l.Qa.Bb?g.$b=k(h,l.Pa.jb[0])?2+k(h,l.Pa.jb[2]):k(h,l.Pa.jb[1]):g.$b=0,l.kc&&(g.Ad=k(h,l.Bd)),g.Za=!k(h,145)+0,g.Za){var m=g.Ob,v=0;for(l=0;4>l;++l){var b,y=p[0+l];for(b=0;4>b;++b){y=ci[f[d+b]][y];for(var w=oi[k(h,y[0])];0<w;)w=oi[2*w+k(h,y[w])];y=-w,f[d+b]=y}n(m,v,f,d,4),v+=4,p[0+l]=y}}else y=k(h,156)?k(h,128)?1:3:k(h,163)?2:0,g.Ob[0]=y,i(f,d,y,4),i(p,0,y,4);g.Dd=k(h,142)?k(h,114)?k(h,183)?1:3:2:0}if(u.m.Ka)return Jt(t,7,\"Premature end-of-partition0 encountered.\");for(;t.ja<t.za;++t.ja){if(u=s,h=(c=t).rb[c.sb-1],f=c.rb[c.sb+c.ja],o=c.ya[c.aa+c.ja],d=c.kc?o.Ad:0)h.la=f.la=0,o.Za||(h.Na=f.Na=0),o.Hc=0,o.Gc=0,o.ia=0;else{var N,L;h=f,f=u,d=c.Pa.Xc,p=c.ya[c.aa+c.ja],g=c.pb[p.$b];if(l=p.ad,m=0,v=c.rb[c.sb-1],y=b=0,i(l,m,0,384),p.Za)var A=0,x=d[3];else{w=a(16);var S=h.Na+v.Na;if(S=ni(f,d[1],S,g.Eb,0,w,0),h.Na=v.Na=(0<S)+0,1<S)an(w,0,l,m);else{var _=w[0]+3>>3;for(w=0;256>w;w+=16)l[m+w]=_}A=1,x=d[0]}var P=15&h.la,I=15&v.la;for(w=0;4>w;++w){var F=1&I;for(_=L=0;4>_;++_)P=P>>1|(F=(S=ni(f,x,S=F+(1&P),g.Sc,A,l,m))>A)<<7,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=4,I=I>>1|F<<7,b=(b<<8|L)>>>0}for(x=P,A=I>>4,N=0;4>N;N+=2){for(L=0,P=h.la>>4+N,I=v.la>>4+N,w=0;2>w;++w){for(F=1&I,_=0;2>_;++_)S=F+(1&P),P=P>>1|(F=0<(S=ni(f,d[2],S,g.Qc,0,l,m)))<<3,L=L<<2|(3<S?3:1<S?2:0!=l[m+0]),m+=16;P>>=2,I=I>>1|F<<5}y|=L<<4*N,x|=P<<4<<N,A|=(240&I)<<N}h.la=x,v.la=A,p.Hc=b,p.Gc=y,p.ia=43690&y?0:g.ia,d=!(b|y)}if(0<c.L&&(c.wa[c.Y+c.ja]=c.gd[o.$b][o.Za],c.wa[c.Y+c.ja].La|=!d),u.Ka)return Jt(t,7,\"Premature end-of-file encountered.\")}if($t(t),c=r,u=1,o=(s=t).D,h=0<s.L&&s.M>=s.zb&&s.M<=s.Va,0==s.Aa)t:{if(o.M=s.M,o.uc=h,Or(s,o),u=1,o=(L=s.D).Nb,h=(y=Ri[s.L])*s.R,f=y/2*s.B,w=16*o*s.R,_=8*o*s.B,d=s.sa,p=s.ta-h+w,g=s.qa,l=s.ra-f+_,m=s.Ha,v=s.Ia-f+_,I=0==(P=L.M),b=P>=s.Va-1,2==s.Aa&&Or(s,L),L.uc)for(F=(S=s).D.M,e(S.D.uc),L=S.yb;L<S.Hb;++L){A=L,x=F;var C=(j=(U=S).D).Nb;N=U.R;var j=j.wa[j.Y+A],O=U.sa,B=U.ta+16*C*N+16*A,M=j.dd,E=j.tc;if(0!=E)if(e(3<=E),1==U.L)0<A&&wn(O,B,N,E+4),j.La&&Ln(O,B,N,E),0<x&&yn(O,B,N,E+4),j.La&&Nn(O,B,N,E);else{var q=U.B,D=U.qa,R=U.ra+8*C*q+8*A,T=U.Ha,U=U.Ia+8*C*q+8*A;C=j.ld;0<A&&(fn(O,B,N,E+4,M,C),pn(D,R,T,U,q,E+4,M,C)),j.La&&(mn(O,B,N,E,M,C),bn(D,R,T,U,q,E,M,C)),0<x&&(ln(O,B,N,E+4,M,C),dn(D,R,T,U,q,E+4,M,C)),j.La&&(gn(O,B,N,E,M,C),vn(D,R,T,U,q,E,M,C))}}if(s.ia&&alert(\"todo:DitherRow\"),null!=c.put){if(L=16*P,P=16*(P+1),I?(c.y=s.sa,c.O=s.ta+w,c.f=s.qa,c.N=s.ra+_,c.ea=s.Ha,c.W=s.Ia+_):(L-=y,c.y=d,c.O=p,c.f=g,c.N=l,c.ea=m,c.W=v),b||(P-=y),P>c.o&&(P=c.o),c.F=null,c.J=null,null!=s.Fa&&0<s.Fa.length&&L<P&&(c.J=lr(s,c,L,P-L),c.F=s.mb,null==c.F&&0==c.F.length)){u=Jt(s,3,\"Could not decode alpha data.\");break t}L<c.j&&(y=c.j-L,L=c.j,e(!(1&y)),c.O+=s.R*y,c.N+=s.B*(y>>1),c.W+=s.B*(y>>1),null!=c.F&&(c.J+=c.width*y)),L<P&&(c.O+=c.v,c.N+=c.v>>1,c.W+=c.v>>1,null!=c.F&&(c.J+=c.v),c.ka=L-c.j,c.U=c.va-c.v,c.T=P-L,u=c.put(c))}o+1!=s.Ic||b||(n(s.sa,s.ta-h,d,p+16*s.R,h),n(s.qa,s.ra-f,g,l+8*s.B,f),n(s.Ha,s.Ia-f,m,v+8*s.B,f))}if(!u)return Jt(t,6,\"Output aborted.\")}return 1}(t,r)),null!=r.bc&&r.bc(r),s&=1}return s?(t.cb=0,s):0}function te(t,e,r,n,i){i=t[e+r+32*n]+(i>>3),t[e+r+32*n]=-256&i?0>i?0:255:i}function ee(t,e,r,n,i,a){te(t,e,0,r,n+i),te(t,e,1,r,n+a),te(t,e,2,r,n-a),te(t,e,3,r,n-i)}function re(t){return(20091*t>>16)+t}function ne(t,e,r,n){var i,o=0,s=a(16);for(i=0;4>i;++i){var c=t[e+0]+t[e+8],u=t[e+0]-t[e+8],h=(35468*t[e+4]>>16)-re(t[e+12]),l=re(t[e+4])+(35468*t[e+12]>>16);s[o+0]=c+l,s[o+1]=u+h,s[o+2]=u-h,s[o+3]=c-l,o+=4,e++}for(i=o=0;4>i;++i)c=(t=s[o+0]+4)+s[o+8],u=t-s[o+8],h=(35468*s[o+4]>>16)-re(s[o+12]),te(r,n,0,0,c+(l=re(s[o+4])+(35468*s[o+12]>>16))),te(r,n,1,0,u+h),te(r,n,2,0,u-h),te(r,n,3,0,c-l),o++,n+=32}function ie(t,e,r,n){var i=t[e+0]+4,a=35468*t[e+4]>>16,o=re(t[e+4]),s=35468*t[e+1]>>16;ee(r,n,0,i+o,t=re(t[e+1]),s),ee(r,n,1,i+a,t,s),ee(r,n,2,i-a,t,s),ee(r,n,3,i-o,t,s)}function ae(t,e,r,n,i){ne(t,e,r,n),i&&ne(t,e+16,r,n+4)}function oe(t,e,r,n){on(t,e+0,r,n,1),on(t,e+32,r,n+128,1)}function se(t,e,r,n){var i;for(t=t[e+0]+4,i=0;4>i;++i)for(e=0;4>e;++e)te(r,n,e,i,t)}function ce(t,e,r,n){t[e+0]&&un(t,e+0,r,n),t[e+16]&&un(t,e+16,r,n+4),t[e+32]&&un(t,e+32,r,n+128),t[e+48]&&un(t,e+48,r,n+128+4)}function ue(t,e,r,n){var i,o=a(16);for(i=0;4>i;++i){var s=t[e+0+i]+t[e+12+i],c=t[e+4+i]+t[e+8+i],u=t[e+4+i]-t[e+8+i],h=t[e+0+i]-t[e+12+i];o[0+i]=s+c,o[8+i]=s-c,o[4+i]=h+u,o[12+i]=h-u}for(i=0;4>i;++i)s=(t=o[0+4*i]+3)+o[3+4*i],c=o[1+4*i]+o[2+4*i],u=o[1+4*i]-o[2+4*i],h=t-o[3+4*i],r[n+0]=s+c>>3,r[n+16]=h+u>>3,r[n+32]=s-c>>3,r[n+48]=h-u>>3,n+=64}function he(t,e,r){var n,i=e-32,a=Bn,o=255-t[i-1];for(n=0;n<r;++n){var s,c=a,u=o+t[e-1];for(s=0;s<r;++s)t[e+s]=c[u+t[i+s]];e+=32}}function le(t,e){he(t,e,4)}function fe(t,e){he(t,e,8)}function de(t,e){he(t,e,16)}function pe(t,e){var r;for(r=0;16>r;++r)n(t,e+32*r,t,e-32,16)}function ge(t,e){var r;for(r=16;0<r;--r)i(t,e,t[e-1],16),e+=32}function me(t,e,r){var n;for(n=0;16>n;++n)i(e,r+32*n,t,16)}function ve(t,e){var r,n=16;for(r=0;16>r;++r)n+=t[e-1+32*r]+t[e+r-32];me(n>>5,t,e)}function be(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e-1+32*r];me(n>>4,t,e)}function ye(t,e){var r,n=8;for(r=0;16>r;++r)n+=t[e+r-32];me(n>>4,t,e)}function we(t,e){me(128,t,e)}function Ne(t,e,r){return t+2*e+r+2>>2}function Le(t,e){var r,i=e-32;i=new Uint8Array([Ne(t[i-1],t[i+0],t[i+1]),Ne(t[i+0],t[i+1],t[i+2]),Ne(t[i+1],t[i+2],t[i+3]),Ne(t[i+2],t[i+3],t[i+4])]);for(r=0;4>r;++r)n(t,e+32*r,i,0,i.length)}function Ae(t,e){var r=t[e-1],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];I(t,e+0,16843009*Ne(t[e-1-32],r,n)),I(t,e+32,16843009*Ne(r,n,i)),I(t,e+64,16843009*Ne(n,i,a)),I(t,e+96,16843009*Ne(i,a,a))}function xe(t,e){var r,n=4;for(r=0;4>r;++r)n+=t[e+r-32]+t[e-1+32*r];for(n>>=3,r=0;4>r;++r)i(t,e+32*r,n,4)}function Se(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+96]=Ne(n,i,t[e-1+96]),t[e+1+96]=t[e+0+64]=Ne(r,n,i),t[e+2+96]=t[e+1+64]=t[e+0+32]=Ne(a,r,n),t[e+3+96]=t[e+2+64]=t[e+1+32]=t[e+0+0]=Ne(o,a,r),t[e+3+64]=t[e+2+32]=t[e+1+0]=Ne(s,o,a),t[e+3+32]=t[e+2+0]=Ne(c,s,o),t[e+3+0]=Ne(u,c,s)}function _e(t,e){var r=t[e+1-32],n=t[e+2-32],i=t[e+3-32],a=t[e+4-32],o=t[e+5-32],s=t[e+6-32],c=t[e+7-32];t[e+0+0]=Ne(t[e+0-32],r,n),t[e+1+0]=t[e+0+32]=Ne(r,n,i),t[e+2+0]=t[e+1+32]=t[e+0+64]=Ne(n,i,a),t[e+3+0]=t[e+2+32]=t[e+1+64]=t[e+0+96]=Ne(i,a,o),t[e+3+32]=t[e+2+64]=t[e+1+96]=Ne(a,o,s),t[e+3+64]=t[e+2+96]=Ne(o,s,c),t[e+3+96]=Ne(s,c,c)}function Pe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1-32],o=t[e+0-32],s=t[e+1-32],c=t[e+2-32],u=t[e+3-32];t[e+0+0]=t[e+1+64]=a+o+1>>1,t[e+1+0]=t[e+2+64]=o+s+1>>1,t[e+2+0]=t[e+3+64]=s+c+1>>1,t[e+3+0]=c+u+1>>1,t[e+0+96]=Ne(i,n,r),t[e+0+64]=Ne(n,r,a),t[e+0+32]=t[e+1+96]=Ne(r,a,o),t[e+1+32]=t[e+2+96]=Ne(a,o,s),t[e+2+32]=t[e+3+96]=Ne(o,s,c),t[e+3+32]=Ne(s,c,u)}function ke(t,e){var r=t[e+0-32],n=t[e+1-32],i=t[e+2-32],a=t[e+3-32],o=t[e+4-32],s=t[e+5-32],c=t[e+6-32],u=t[e+7-32];t[e+0+0]=r+n+1>>1,t[e+1+0]=t[e+0+64]=n+i+1>>1,t[e+2+0]=t[e+1+64]=i+a+1>>1,t[e+3+0]=t[e+2+64]=a+o+1>>1,t[e+0+32]=Ne(r,n,i),t[e+1+32]=t[e+0+96]=Ne(n,i,a),t[e+2+32]=t[e+1+96]=Ne(i,a,o),t[e+3+32]=t[e+2+96]=Ne(a,o,s),t[e+3+64]=Ne(o,s,c),t[e+3+96]=Ne(s,c,u)}function Ie(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96];t[e+0+0]=r+n+1>>1,t[e+2+0]=t[e+0+32]=n+i+1>>1,t[e+2+32]=t[e+0+64]=i+a+1>>1,t[e+1+0]=Ne(r,n,i),t[e+3+0]=t[e+1+32]=Ne(n,i,a),t[e+3+32]=t[e+1+64]=Ne(i,a,a),t[e+3+64]=t[e+2+64]=t[e+0+96]=t[e+1+96]=t[e+2+96]=t[e+3+96]=a}function Fe(t,e){var r=t[e-1+0],n=t[e-1+32],i=t[e-1+64],a=t[e-1+96],o=t[e-1-32],s=t[e+0-32],c=t[e+1-32],u=t[e+2-32];t[e+0+0]=t[e+2+32]=r+o+1>>1,t[e+0+32]=t[e+2+64]=n+r+1>>1,t[e+0+64]=t[e+2+96]=i+n+1>>1,t[e+0+96]=a+i+1>>1,t[e+3+0]=Ne(s,c,u),t[e+2+0]=Ne(o,s,c),t[e+1+0]=t[e+3+32]=Ne(r,o,s),t[e+1+32]=t[e+3+64]=Ne(n,r,o),t[e+1+64]=t[e+3+96]=Ne(i,n,r),t[e+1+96]=Ne(a,i,n)}function Ce(t,e){var r;for(r=0;8>r;++r)n(t,e+32*r,t,e-32,8)}function je(t,e){var r;for(r=0;8>r;++r)i(t,e,t[e-1],8),e+=32}function Oe(t,e,r){var n;for(n=0;8>n;++n)i(e,r+32*n,t,8)}function Be(t,e){var r,n=8;for(r=0;8>r;++r)n+=t[e+r-32]+t[e-1+32*r];Oe(n>>4,t,e)}function Me(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e+r-32];Oe(n>>3,t,e)}function Ee(t,e){var r,n=4;for(r=0;8>r;++r)n+=t[e-1+32*r];Oe(n>>3,t,e)}function qe(t,e){Oe(128,t,e)}function De(t,e,r){var n=t[e-r],i=t[e+0],a=3*(i-n)+jn[1020+t[e-2*r]-t[e+r]],o=On[112+(a+4>>3)];t[e-r]=Bn[255+n+On[112+(a+3>>3)]],t[e+0]=Bn[255+i-o]}function Re(t,e,r,n){var i=t[e+0],a=t[e+r];return Mn[255+t[e-2*r]-t[e-r]]>n||Mn[255+a-i]>n}function Te(t,e,r,n){return 4*Mn[255+t[e-r]-t[e+0]]+Mn[255+t[e-2*r]-t[e+r]]<=n}function Ue(t,e,r,n,i){var a=t[e-3*r],o=t[e-2*r],s=t[e-r],c=t[e+0],u=t[e+r],h=t[e+2*r],l=t[e+3*r];return 4*Mn[255+s-c]+Mn[255+o-u]>n?0:Mn[255+t[e-4*r]-a]<=i&&Mn[255+a-o]<=i&&Mn[255+o-s]<=i&&Mn[255+l-h]<=i&&Mn[255+h-u]<=i&&Mn[255+u-c]<=i}function ze(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n,r,i)&&De(t,e+n,r)}function He(t,e,r,n){var i=2*n+1;for(n=0;16>n;++n)Te(t,e+n*r,1,i)&&De(t,e+n*r,1)}function We(t,e,r,n){var i;for(i=3;0<i;--i)ze(t,e+=4*r,r,n)}function Ve(t,e,r,n){var i;for(i=3;0<i;--i)He(t,e+=4,r,n)}function Ge(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Ue(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-2*h],f=c[u-h],d=c[u+0],p=c[u+h],g=c[u+2*h],m=27*(b=jn[1020+3*(d-f)+jn[1020+l-p]])+63>>7,v=18*b+63>>7,b=9*b+63>>7;c[u-3*h]=Bn[255+c[u-3*h]+b],c[u-2*h]=Bn[255+l+v],c[u-h]=Bn[255+f+m],c[u+0]=Bn[255+d-m],c[u+h]=Bn[255+p-v],c[u+2*h]=Bn[255+g-b]}e+=n}}function Ye(t,e,r,n,i,a,o,s){for(a=2*a+1;0<i--;){if(Ue(t,e,r,a,o))if(Re(t,e,r,s))De(t,e,r);else{var c=t,u=e,h=r,l=c[u-h],f=c[u+0],d=c[u+h],p=On[112+((g=3*(f-l))+4>>3)],g=On[112+(g+3>>3)],m=p+1>>1;c[u-2*h]=Bn[255+c[u-2*h]+m],c[u-h]=Bn[255+l+g],c[u+0]=Bn[255+f-p],c[u+h]=Bn[255+d-m]}e+=n}}function Je(t,e,r,n,i,a){Ge(t,e,r,1,16,n,i,a)}function Xe(t,e,r,n,i,a){Ge(t,e,1,r,16,n,i,a)}function Ke(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4*r,r,1,16,n,i,a)}function Ze(t,e,r,n,i,a){var o;for(o=3;0<o;--o)Ye(t,e+=4,1,r,16,n,i,a)}function $e(t,e,r,n,i,a,o,s){Ge(t,e,i,1,8,a,o,s),Ge(r,n,i,1,8,a,o,s)}function Qe(t,e,r,n,i,a,o,s){Ge(t,e,1,i,8,a,o,s),Ge(r,n,1,i,8,a,o,s)}function tr(t,e,r,n,i,a,o,s){Ye(t,e+4*i,i,1,8,a,o,s),Ye(r,n+4*i,i,1,8,a,o,s)}function er(t,e,r,n,i,a,o,s){Ye(t,e+4,1,i,8,a,o,s),Ye(r,n+4,1,i,8,a,o,s)}function rr(){this.ba=new ot,this.ec=[],this.cc=[],this.Mc=[],this.Dc=this.Nc=this.dc=this.fc=0,this.Oa=new ct,this.memory=0,this.Ib=\"OutputFunc\",this.Jb=\"OutputAlphaFunc\",this.Nd=\"OutputRowFunc\"}function nr(){this.data=[],this.offset=this.kd=this.ha=this.w=0,this.na=[],this.xa=this.gb=this.Ja=this.Sa=this.P=0}function ir(){this.nc=this.Ea=this.b=this.hc=0,this.K=[],this.w=0}function ar(){this.ua=0,this.Wa=new M,this.vb=new M,this.md=this.xc=this.wc=0,this.vc=[],this.Wb=0,this.Ya=new d,this.yc=new l}function or(){this.xb=this.a=0,this.l=new Gt,this.ca=new ot,this.V=[],this.Ba=0,this.Ta=[],this.Ua=0,this.m=new N,this.Pb=0,this.wd=new N,this.Ma=this.$=this.C=this.i=this.c=this.xd=0,this.s=new ar,this.ab=0,this.gc=o(4,ir),this.Oc=0}function sr(){this.Lc=this.Z=this.$a=this.i=this.c=0,this.l=new Gt,this.ic=0,this.ca=[],this.tb=0,this.qd=null,this.rd=0}function cr(t,e,r,n,i,a,o){for(t=null==t?0:t[e+0],e=0;e<o;++e)i[a+e]=t+r[n+e]&255,t=i[a+e]}function ur(t,e,r,n,i,a,o){var s;if(null==t)cr(null,null,r,n,i,a,o);else for(s=0;s<o;++s)i[a+s]=t[e+s]+r[n+s]&255}function hr(t,e,r,n,i,a,o){if(null==t)cr(null,null,r,n,i,a,o);else{var s,c=t[e+0],u=c,h=c;for(s=0;s<o;++s)u=h+(c=t[e+s])-u,h=r[n+s]+(-256&u?0>u?0:255:u)&255,u=c,i[a+s]=h}}function lr(t,r,i,o){var s=r.width,c=r.o;if(e(null!=t&&null!=r),0>i||0>=o||i+o>c)return null;if(!t.Cc){if(null==t.ga){var u;if(t.ga=new sr,(u=null==t.ga)||(u=r.width*r.o,e(0==t.Gb.length),t.Gb=a(u),t.Uc=0,null==t.Gb?u=0:(t.mb=t.Gb,t.nb=t.Uc,t.rc=null,u=1),u=!u),!u){u=t.ga;var h=t.Fa,l=t.P,f=t.qc,d=t.mb,p=t.nb,g=l+1,m=f-1,b=u.l;if(e(null!=h&&null!=d&&null!=r),mi[0]=null,mi[1]=cr,mi[2]=ur,mi[3]=hr,u.ca=d,u.tb=p,u.c=r.width,u.i=r.height,e(0<u.c&&0<u.i),1>=f)r=0;else if(u.$a=h[l+0]>>0&3,u.Z=h[l+0]>>2&3,u.Lc=h[l+0]>>4&3,l=h[l+0]>>6&3,0>u.$a||1<u.$a||4<=u.Z||1<u.Lc||l)r=0;else if(b.put=dt,b.ac=ft,b.bc=pt,b.ma=u,b.width=r.width,b.height=r.height,b.Da=r.Da,b.v=r.v,b.va=r.va,b.j=r.j,b.o=r.o,u.$a)t:{e(1==u.$a),r=kt();e:for(;;){if(null==r){r=0;break t}if(e(null!=u),u.mc=r,r.c=u.c,r.i=u.i,r.l=u.l,r.l.ma=u,r.l.width=u.c,r.l.height=u.i,r.a=0,v(r.m,h,g,m),!It(u.c,u.i,1,r,null))break e;if(1==r.ab&&3==r.gc[0].hc&&At(r.s)?(u.ic=1,h=r.c*r.i,r.Ta=null,r.Ua=0,r.V=a(h),r.Ba=0,null==r.V?(r.a=1,r=0):r=1):(u.ic=0,r=Ft(r,u.c)),!r)break e;r=1;break t}u.mc=null,r=0}else r=m>=u.c*u.i;u=!r}if(u)return null;1!=t.ga.Lc?t.Ga=0:o=c-i}e(null!=t.ga),e(i+o<=c);t:{if(r=(h=t.ga).c,c=h.l.o,0==h.$a){if(g=t.rc,m=t.Vc,b=t.Fa,l=t.P+1+i*r,f=t.mb,d=t.nb+i*r,e(l<=t.P+t.qc),0!=h.Z)for(e(null!=mi[h.Z]),u=0;u<o;++u)mi[h.Z](g,m,b,l,f,d,r),g=f,m=d,d+=r,l+=r;else for(u=0;u<o;++u)n(f,d,b,l,r),g=f,m=d,d+=r,l+=r;t.rc=g,t.Vc=m}else{if(e(null!=h.mc),r=i+o,e(null!=(u=h.mc)),e(r<=u.i),u.C>=r)r=1;else if(h.ic||mr(),h.ic){h=u.V,g=u.Ba,m=u.c;var y=u.i,w=(b=1,l=u.$/m,f=u.$%m,d=u.m,p=u.s,u.$),N=m*y,L=m*r,x=p.wc,_=w<L?wt(p,f,l):null;e(w<=N),e(r<=y),e(At(p));e:for(;;){for(;!d.h&&w<L;){if(f&x||(_=wt(p,f,l)),e(null!=_),S(d),256>(y=bt(_.G[0],_.H[0],d)))h[g+w]=y,++w,++f>=m&&(f=0,++l<=r&&!(l%16)&&St(u,l));else{if(!(280>y)){b=0;break e}y=mt(y-256,d);var P,k=bt(_.G[4],_.H[4],d);if(S(d),!(w>=(k=vt(m,k=mt(k,d)))&&N-w>=y)){b=0;break e}for(P=0;P<y;++P)h[g+w+P]=h[g+w+P-k];for(w+=y,f+=y;f>=m;)f-=m,++l<=r&&!(l%16)&&St(u,l);w<L&&f&x&&(_=wt(p,f,l))}e(d.h==A(d))}St(u,l>r?r:l);break e}!b||d.h&&w<N?(b=0,u.a=d.h?5:3):u.$=w,r=b}else r=_t(u,u.V,u.Ba,u.c,u.i,r,Ct);if(!r){o=0;break t}}i+o>=c&&(t.Cc=1),o=1}if(!o)return null;if(t.Cc&&(null!=(o=t.ga)&&(o.mc=null),t.ga=null,0<t.Ga))return alert(\"todo:WebPDequantizeLevels\"),null}return t.nb+i*s}function fr(t,e,r,n,i,a){for(;0<i--;){var o,s=t,c=e+(r?1:0),u=t,h=e+(r?0:3);for(o=0;o<n;++o){var l=u[h+4*o];255!=l&&(l*=32897,s[c+4*o+0]=s[c+4*o+0]*l>>23,s[c+4*o+1]=s[c+4*o+1]*l>>23,s[c+4*o+2]=s[c+4*o+2]*l>>23)}e+=a}}function dr(t,e,r,n,i){for(;0<n--;){var a;for(a=0;a<r;++a){var o=t[e+2*a+0],s=15&(u=t[e+2*a+1]),c=4369*s,u=(240&u|u>>4)*c>>16;t[e+2*a+0]=(240&o|o>>4)*c>>16&240|(15&o|o<<4)*c>>16>>4&15,t[e+2*a+1]=240&u|s}e+=i}}function pr(t,e,r,n,i,a,o,s){var c,u,h=255;for(u=0;u<i;++u){for(c=0;c<n;++c){var l=t[e+c];a[o+4*c]=l,h&=l}e+=r,o+=s}return 255!=h}function gr(t,e,r,n,i){var a;for(a=0;a<i;++a)r[n+a]=t[e+a]>>8}function mr(){An=fr,xn=dr,Sn=pr,_n=gr}function vr(r,n,i){t[r]=function(t,r,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y){var w,N=y-1>>1,L=s[c+0]|u[h+0]<<16,A=l[f+0]|d[p+0]<<16;e(null!=t);var x=3*L+A+131074>>2;for(n(t[r+0],255&x,x>>16,g,m),null!=a&&(x=3*A+L+131074>>2,n(a[o+0],255&x,x>>16,v,b)),w=1;w<=N;++w){var S=s[c+w]|u[h+w]<<16,_=l[f+w]|d[p+w]<<16,P=L+S+A+_+524296,k=P+2*(S+A)>>3;x=k+L>>1,L=(P=P+2*(L+_)>>3)+S>>1,n(t[r+2*w-1],255&x,x>>16,g,m+(2*w-1)*i),n(t[r+2*w-0],255&L,L>>16,g,m+(2*w-0)*i),null!=a&&(x=P+A>>1,L=k+_>>1,n(a[o+2*w-1],255&x,x>>16,v,b+(2*w-1)*i),n(a[o+2*w+0],255&L,L>>16,v,b+(2*w+0)*i)),L=S,A=_}1&y||(x=3*L+A+131074>>2,n(t[r+y-1],255&x,x>>16,g,m+(y-1)*i),null!=a&&(x=3*A+L+131074>>2,n(a[o+y-1],255&x,x>>16,v,b+(y-1)*i)))}}function br(){vi[En]=bi,vi[qn]=wi,vi[Dn]=yi,vi[Rn]=Ni,vi[Tn]=Li,vi[Un]=Ai,vi[zn]=xi,vi[Hn]=wi,vi[Wn]=Ni,vi[Vn]=Li,vi[Gn]=Ai}function yr(t){return t&~Fi?0>t?0:255:t>>Ii}function wr(t,e){return yr((19077*t>>8)+(26149*e>>8)-14234)}function Nr(t,e,r){return yr((19077*t>>8)-(6419*e>>8)-(13320*r>>8)+8708)}function Lr(t,e){return yr((19077*t>>8)+(33050*e>>8)-17685)}function Ar(t,e,r,n,i){n[i+0]=wr(t,r),n[i+1]=Nr(t,e,r),n[i+2]=Lr(t,e)}function xr(t,e,r,n,i){n[i+0]=Lr(t,e),n[i+1]=Nr(t,e,r),n[i+2]=wr(t,r)}function Sr(t,e,r,n,i){var a=Nr(t,e,r);e=a<<3&224|Lr(t,e)>>3,n[i+0]=248&wr(t,r)|a>>5,n[i+1]=e}function _r(t,e,r,n,i){var a=240&Lr(t,e)|15;n[i+0]=240&wr(t,r)|Nr(t,e,r)>>4,n[i+1]=a}function Pr(t,e,r,n,i){n[i+0]=255,Ar(t,e,r,n,i+1)}function kr(t,e,r,n,i){xr(t,e,r,n,i),n[i+3]=255}function Ir(t,e,r,n,i){Ar(t,e,r,n,i),n[i+3]=255}function Vt(t,e){return 0>t?0:t>e?e:t}function Fr(e,r,n){t[e]=function(t,e,i,a,o,s,c,u,h){for(var l=u+(-2&h)*n;u!=l;)r(t[e+0],i[a+0],o[s+0],c,u),r(t[e+1],i[a+0],o[s+0],c,u+n),e+=2,++a,++s,u+=2*n;1&h&&r(t[e+0],i[a+0],o[s+0],c,u)}}function Cr(t,e,r){return 0==r?0==t?0==e?6:5:0==e?4:0:r}function jr(t,e,r,n,i){switch(t>>>30){case 3:on(e,r,n,i,0);break;case 2:sn(e,r,n,i);break;case 1:un(e,r,n,i)}}function Or(t,e){var r,a,o=e.M,s=e.Nb,c=t.oc,u=t.pc+40,h=t.oc,l=t.pc+584,f=t.oc,d=t.pc+600;for(r=0;16>r;++r)c[u+32*r-1]=129;for(r=0;8>r;++r)h[l+32*r-1]=129,f[d+32*r-1]=129;for(0<o?c[u-1-32]=h[l-1-32]=f[d-1-32]=129:(i(c,u-32-1,127,21),i(h,l-32-1,127,9),i(f,d-32-1,127,9)),a=0;a<t.za;++a){var p=e.ya[e.aa+a];if(0<a){for(r=-1;16>r;++r)n(c,u+32*r-4,c,u+32*r+12,4);for(r=-1;8>r;++r)n(h,l+32*r-4,h,l+32*r+4,4),n(f,d+32*r-4,f,d+32*r+4,4)}var g=t.Gd,m=t.Hd+a,v=p.ad,b=p.Hc;if(0<o&&(n(c,u-32,g[m].y,0,16),n(h,l-32,g[m].f,0,8),n(f,d-32,g[m].ea,0,8)),p.Za){var y=c,w=u-32+16;for(0<o&&(a>=t.za-1?i(y,w,g[m].y[15],4):n(y,w,g[m+1].y,0,4)),r=0;4>r;r++)y[w+128+r]=y[w+256+r]=y[w+384+r]=y[w+0+r];for(r=0;16>r;++r,b<<=2)y=c,w=u+Di[r],fi[p.Ob[r]](y,w),jr(b,v,16*+r,y,w)}else if(y=Cr(a,o,p.Ob[0]),li[y](c,u),0!=b)for(r=0;16>r;++r,b<<=2)jr(b,v,16*+r,c,u+Di[r]);for(r=p.Gc,y=Cr(a,o,p.Dd),di[y](h,l),di[y](f,d),b=v,y=h,w=l,255&(p=r>>0)&&(170&p?cn(b,256,y,w):hn(b,256,y,w)),p=f,b=d,255&(r>>=8)&&(170&r?cn(v,320,p,b):hn(v,320,p,b)),o<t.Ub-1&&(n(g[m].y,0,c,u+480,16),n(g[m].f,0,h,l+224,8),n(g[m].ea,0,f,d+224,8)),r=8*s*t.B,g=t.sa,m=t.ta+16*a+16*s*t.R,v=t.qa,p=t.ra+8*a+r,b=t.Ha,y=t.Ia+8*a+r,r=0;16>r;++r)n(g,m+r*t.R,c,u+32*r,16);for(r=0;8>r;++r)n(v,p+r*t.B,h,l+32*r,8),n(b,y+r*t.B,f,d+32*r,8)}}function Br(t,n,i,a,o,s,c,u,h){var l=[0],f=[0],d=0,p=null!=h?h.kd:0,g=null!=h?h:new nr;if(null==t||12>i)return 7;g.data=t,g.w=n,g.ha=i,n=[n],i=[i],g.gb=[g.gb];t:{var m=n,b=i,y=g.gb;if(e(null!=t),e(null!=b),e(null!=y),y[0]=0,12<=b[0]&&!r(t,m[0],\"RIFF\")){if(r(t,m[0]+8,\"WEBP\")){y=3;break t}var w=j(t,m[0]+4);if(12>w||4294967286<w){y=3;break t}if(p&&w>b[0]-8){y=7;break t}y[0]=w,m[0]+=12,b[0]-=12}y=0}if(0!=y)return y;for(w=0<g.gb[0],i=i[0];;){t:{var L=t;b=n,y=i;var A=l,x=f,S=m=[0];if((k=d=[d])[0]=0,8>y[0])y=7;else{if(!r(L,b[0],\"VP8X\")){if(10!=j(L,b[0]+4)){y=3;break t}if(18>y[0]){y=7;break t}var _=j(L,b[0]+8),P=1+C(L,b[0]+12);if(2147483648<=P*(L=1+C(L,b[0]+15))){y=3;break t}null!=S&&(S[0]=_),null!=A&&(A[0]=P),null!=x&&(x[0]=L),b[0]+=18,y[0]-=18,k[0]=1}y=0}}if(d=d[0],m=m[0],0!=y)return y;if(b=!!(2&m),!w&&d)return 3;if(null!=s&&(s[0]=!!(16&m)),null!=c&&(c[0]=b),null!=u&&(u[0]=0),c=l[0],m=f[0],d&&b&&null==h){y=0;break}if(4>i){y=7;break}if(w&&d||!w&&!d&&!r(t,n[0],\"ALPH\")){i=[i],g.na=[g.na],g.P=[g.P],g.Sa=[g.Sa];t:{_=t,y=n,w=i;var k=g.gb;A=g.na,x=g.P,S=g.Sa;P=22,e(null!=_),e(null!=w),L=y[0];var I=w[0];for(e(null!=A),e(null!=S),A[0]=null,x[0]=null,S[0]=0;;){if(y[0]=L,w[0]=I,8>I){y=7;break t}var F=j(_,L+4);if(4294967286<F){y=3;break t}var O=8+F+1&-2;if(P+=O,0<k&&P>k){y=3;break t}if(!r(_,L,\"VP8 \")||!r(_,L,\"VP8L\")){y=0;break t}if(I[0]<O){y=7;break t}r(_,L,\"ALPH\")||(A[0]=_,x[0]=L+8,S[0]=F),L+=O,I-=O}}if(i=i[0],g.na=g.na[0],g.P=g.P[0],g.Sa=g.Sa[0],0!=y)break}i=[i],g.Ja=[g.Ja],g.xa=[g.xa];t:if(k=t,y=n,w=i,A=g.gb[0],x=g.Ja,S=g.xa,_=y[0],L=!r(k,_,\"VP8 \"),P=!r(k,_,\"VP8L\"),e(null!=k),e(null!=w),e(null!=x),e(null!=S),8>w[0])y=7;else{if(L||P){if(k=j(k,_+4),12<=A&&k>A-12){y=3;break t}if(p&&k>w[0]-8){y=7;break t}x[0]=k,y[0]+=8,w[0]-=8,S[0]=P}else S[0]=5<=w[0]&&47==k[_+0]&&!(k[_+4]>>5),x[0]=w[0];y=0}if(i=i[0],g.Ja=g.Ja[0],g.xa=g.xa[0],n=n[0],0!=y)break;if(4294967286<g.Ja)return 3;if(null==u||b||(u[0]=g.xa?2:1),c=[c],m=[m],g.xa){if(5>i){y=7;break}u=c,p=m,b=s,null==t||5>i?t=0:5<=i&&47==t[n+0]&&!(t[n+4]>>5)?(w=[0],k=[0],A=[0],v(x=new N,t,n,i),gt(x,w,k,A)?(null!=u&&(u[0]=w[0]),null!=p&&(p[0]=k[0]),null!=b&&(b[0]=A[0]),t=1):t=0):t=0}else{if(10>i){y=7;break}u=m,null==t||10>i||!Xt(t,n+3,i-3)?t=0:(p=t[n+0]|t[n+1]<<8|t[n+2]<<16,b=16383&(t[n+7]<<8|t[n+6]),t=16383&(t[n+9]<<8|t[n+8]),1&p||3<(p>>1&7)||!(p>>4&1)||p>>5>=g.Ja||!b||!t?t=0:(c&&(c[0]=b),u&&(u[0]=t),t=1))}if(!t)return 3;if(c=c[0],m=m[0],d&&(l[0]!=c||f[0]!=m))return 3;null!=h&&(h[0]=g,h.offset=n-h.w,e(4294967286>n-h.w),e(h.offset==h.ha-i));break}return 0==y||7==y&&d&&null==h?(null!=s&&(s[0]|=null!=g.na&&0<g.na.length),null!=a&&(a[0]=c),null!=o&&(o[0]=m),0):y}function Mr(t,e,r){var n=e.width,i=e.height,a=0,o=0,s=n,c=i;if(e.Da=null!=t&&0<t.Da,e.Da&&(s=t.cd,c=t.bd,a=t.v,o=t.j,11>r||(a&=-2,o&=-2),0>a||0>o||0>=s||0>=c||a+s>n||o+c>i))return 0;if(e.v=a,e.j=o,e.va=a+s,e.o=o+c,e.U=s,e.T=c,e.da=null!=t&&0<t.da,e.da){if(!E(s,c,r=[t.ib],a=[t.hb]))return 0;e.ib=r[0],e.hb=a[0]}return e.ob=null!=t&&t.ob,e.Kb=null==t||!t.Sd,e.da&&(e.ob=e.ib<3*n/4&&e.hb<3*i/4,e.Kb=0),1}function Er(t){if(null==t)return 2;if(11>t.S){var e=t.f.RGBA;e.fb+=(t.height-1)*e.A,e.A=-e.A}else e=t.f.kb,t=t.height,e.O+=(t-1)*e.fa,e.fa=-e.fa,e.N+=(t-1>>1)*e.Ab,e.Ab=-e.Ab,e.W+=(t-1>>1)*e.Db,e.Db=-e.Db,null!=e.F&&(e.J+=(t-1)*e.lb,e.lb=-e.lb);return 0}function qr(t,e,r,n){if(null==n||0>=t||0>=e)return 2;if(null!=r){if(r.Da){var i=r.cd,o=r.bd,s=-2&r.v,c=-2&r.j;if(0>s||0>c||0>=i||0>=o||s+i>t||c+o>e)return 2;t=i,e=o}if(r.da){if(!E(t,e,i=[r.ib],o=[r.hb]))return 2;t=i[0],e=o[0]}}n.width=t,n.height=e;t:{var u=n.width,h=n.height;if(t=n.S,0>=u||0>=h||!(t>=En&&13>t))t=2;else{if(0>=n.Rd&&null==n.sd){s=o=i=e=0;var l=(c=u*zi[t])*h;if(11>t||(o=(h+1)/2*(e=(u+1)/2),12==t&&(s=(i=u)*h)),null==(h=a(l+2*o+s))){t=1;break t}n.sd=h,11>t?((u=n.f.RGBA).eb=h,u.fb=0,u.A=c,u.size=l):((u=n.f.kb).y=h,u.O=0,u.fa=c,u.Fd=l,u.f=h,u.N=0+l,u.Ab=e,u.Cd=o,u.ea=h,u.W=0+l+o,u.Db=e,u.Ed=o,12==t&&(u.F=h,u.J=0+l+2*o),u.Tc=s,u.lb=i)}if(e=1,i=n.S,o=n.width,s=n.height,i>=En&&13>i)if(11>i)t=n.f.RGBA,e&=(c=Math.abs(t.A))*(s-1)+o<=t.size,e&=c>=o*zi[i],e&=null!=t.eb;else{t=n.f.kb,c=(o+1)/2,l=(s+1)/2,u=Math.abs(t.fa);h=Math.abs(t.Ab);var f=Math.abs(t.Db),d=Math.abs(t.lb),p=d*(s-1)+o;e&=u*(s-1)+o<=t.Fd,e&=h*(l-1)+c<=t.Cd,e=(e&=f*(l-1)+c<=t.Ed)&u>=o&h>=c&f>=c,e&=null!=t.y,e&=null!=t.f,e&=null!=t.ea,12==i&&(e&=d>=o,e&=p<=t.Tc,e&=null!=t.F)}else e=0;t=e?0:2}}return 0!=t||null!=r&&r.fd&&(t=Er(n)),t}var Dr=64,Rr=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],Tr=24,Ur=32,zr=8,Hr=[0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7];R(\"Predictor0\",\"PredictorAdd0\"),t.Predictor0=function(){return 4278190080},t.Predictor1=function(t){return t},t.Predictor2=function(t,e,r){return e[r+0]},t.Predictor3=function(t,e,r){return e[r+1]},t.Predictor4=function(t,e,r){return e[r-1]},t.Predictor5=function(t,e,r){return U(U(t,e[r+1]),e[r+0])},t.Predictor6=function(t,e,r){return U(t,e[r-1])},t.Predictor7=function(t,e,r){return U(t,e[r+0])},t.Predictor8=function(t,e,r){return U(e[r-1],e[r+0])},t.Predictor9=function(t,e,r){return U(e[r+0],e[r+1])},t.Predictor10=function(t,e,r){return U(U(t,e[r-1]),U(e[r+0],e[r+1]))},t.Predictor11=function(t,e,r){var n=e[r+0];return 0>=W(n>>24&255,t>>24&255,(e=e[r-1])>>24&255)+W(n>>16&255,t>>16&255,e>>16&255)+W(n>>8&255,t>>8&255,e>>8&255)+W(255&n,255&t,255&e)?n:t},t.Predictor12=function(t,e,r){var n=e[r+0];return(z((t>>24&255)+(n>>24&255)-((e=e[r-1])>>24&255))<<24|z((t>>16&255)+(n>>16&255)-(e>>16&255))<<16|z((t>>8&255)+(n>>8&255)-(e>>8&255))<<8|z((255&t)+(255&n)-(255&e)))>>>0},t.Predictor13=function(t,e,r){var n=e[r-1];return(H((t=U(t,e[r+0]))>>24&255,n>>24&255)<<24|H(t>>16&255,n>>16&255)<<16|H(t>>8&255,n>>8&255)<<8|H(t>>0&255,n>>0&255))>>>0};var Wr=t.PredictorAdd0;t.PredictorAdd1=V,R(\"Predictor2\",\"PredictorAdd2\"),R(\"Predictor3\",\"PredictorAdd3\"),R(\"Predictor4\",\"PredictorAdd4\"),R(\"Predictor5\",\"PredictorAdd5\"),R(\"Predictor6\",\"PredictorAdd6\"),R(\"Predictor7\",\"PredictorAdd7\"),R(\"Predictor8\",\"PredictorAdd8\"),R(\"Predictor9\",\"PredictorAdd9\"),R(\"Predictor10\",\"PredictorAdd10\"),R(\"Predictor11\",\"PredictorAdd11\"),R(\"Predictor12\",\"PredictorAdd12\"),R(\"Predictor13\",\"PredictorAdd13\");var Vr=t.PredictorAdd2;X(\"ColorIndexInverseTransform\",\"MapARGB\",\"32b\",(function(t){return t>>8&255}),(function(t){return t})),X(\"VP8LColorIndexInverseTransformAlpha\",\"MapAlpha\",\"8b\",(function(t){return t}),(function(t){return t>>8&255}));var Gr,Yr=t.ColorIndexInverseTransform,Jr=t.MapARGB,Xr=t.VP8LColorIndexInverseTransformAlpha,Kr=t.MapAlpha,Zr=t.VP8LPredictorsAdd=[];Zr.length=16,(t.VP8LPredictors=[]).length=16,(t.VP8LPredictorsAdd_C=[]).length=16,(t.VP8LPredictors_C=[]).length=16;var $r,Qr,tn,en,rn,nn,an,on,sn,cn,un,hn,ln,fn,dn,pn,gn,mn,vn,bn,yn,wn,Nn,Ln,An,xn,Sn,_n,Pn=a(511),kn=a(2041),In=a(225),Fn=a(767),Cn=0,jn=kn,On=In,Bn=Fn,Mn=Pn,En=0,qn=1,Dn=2,Rn=3,Tn=4,Un=5,zn=6,Hn=7,Wn=8,Vn=9,Gn=10,Yn=[2,3,7],Jn=[3,3,11],Xn=[280,256,256,256,40],Kn=[0,1,1,1,0],Zn=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],$n=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Qn=[2954,2956,2958,2962,2970,2986,3018,3082,3212,3468,3980,5004],ti=8,ei=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],ri=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],ni=null,ii=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],ai=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],oi=[-0,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],si=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],ci=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],ui=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]],hi=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],li=[],fi=[],di=[],pi=1,gi=2,mi=[],vi=[];vr(\"UpsampleRgbLinePair\",Ar,3),vr(\"UpsampleBgrLinePair\",xr,3),vr(\"UpsampleRgbaLinePair\",Ir,4),vr(\"UpsampleBgraLinePair\",kr,4),vr(\"UpsampleArgbLinePair\",Pr,4),vr(\"UpsampleRgba4444LinePair\",_r,2),vr(\"UpsampleRgb565LinePair\",Sr,2);var bi=t.UpsampleRgbLinePair,yi=t.UpsampleBgrLinePair,wi=t.UpsampleRgbaLinePair,Ni=t.UpsampleBgraLinePair,Li=t.UpsampleArgbLinePair,Ai=t.UpsampleRgba4444LinePair,xi=t.UpsampleRgb565LinePair,Si=16,_i=1<<Si-1,Pi=-227,ki=482,Ii=6,Fi=(256<<Ii)-1,Ci=0,ji=a(256),Oi=a(256),Bi=a(256),Mi=a(256),Ei=a(ki-Pi),qi=a(ki-Pi);Fr(\"YuvToRgbRow\",Ar,3),Fr(\"YuvToBgrRow\",xr,3),Fr(\"YuvToRgbaRow\",Ir,4),Fr(\"YuvToBgraRow\",kr,4),Fr(\"YuvToArgbRow\",Pr,4),Fr(\"YuvToRgba4444Row\",_r,2),Fr(\"YuvToRgb565Row\",Sr,2);var Di=[0,4,8,12,128,132,136,140,256,260,264,268,384,388,392,396],Ri=[0,2,8],Ti=[8,7,6,4,4,2,2,2,1,1,1,1],Ui=1;this.WebPDecodeRGBA=function(t,r,n,i,a){var o=qn,s=new rr,c=new ot;s.ba=c,c.S=o,c.width=[c.width],c.height=[c.height];var u=c.width,h=c.height,l=new st;if(null==l||null==t)var f=2;else e(null!=l),f=Br(t,r,n,l.width,l.height,l.Pd,l.Qd,l.format,null);if(0!=f?u=0:(null!=u&&(u[0]=l.width[0]),null!=h&&(h[0]=l.height[0]),u=1),u){c.width=c.width[0],c.height=c.height[0],null!=i&&(i[0]=c.width),null!=a&&(a[0]=c.height);t:{if(i=new Gt,(a=new nr).data=t,a.w=r,a.ha=n,a.kd=1,r=[0],e(null!=a),(0==(t=Br(a.data,a.w,a.ha,null,null,null,r,null,a))||7==t)&&r[0]&&(t=4),0==(r=t)){if(e(null!=s),i.data=a.data,i.w=a.w+a.offset,i.ha=a.ha-a.offset,i.put=dt,i.ac=ft,i.bc=pt,i.ma=s,a.xa){if(null==(t=kt())){s=1;break t}if(function(t,r){var n=[0],i=[0],a=[0];e:for(;;){if(null==t)return 0;if(null==r)return t.a=2,0;if(t.l=r,t.a=0,v(t.m,r.data,r.w,r.ha),!gt(t.m,n,i,a)){t.a=3;break e}if(t.xb=gi,r.width=n[0],r.height=i[0],!It(n[0],i[0],1,t,null))break e;return 1}return e(0!=t.a),0}(t,i)){if(i=0==(r=qr(i.width,i.height,s.Oa,s.ba))){e:{i=t;r:for(;;){if(null==i){i=0;break e}if(e(null!=i.s.yc),e(null!=i.s.Ya),e(0<i.s.Wb),e(null!=(n=i.l)),e(null!=(a=n.ma)),0!=i.xb){if(i.ca=a.ba,i.tb=a.tb,e(null!=i.ca),!Mr(a.Oa,n,Rn)){i.a=2;break r}if(!Ft(i,n.width))break r;if(n.da)break r;if((n.da||nt(i.ca.S))&&mr(),11>i.ca.S||(alert(\"todo:WebPInitConvertARGBToYUV\"),null!=i.ca.f.kb.F&&mr()),i.Pb&&0<i.s.ua&&null==i.s.vb.X&&!O(i.s.vb,i.s.Wa.Xa)){i.a=1;break r}i.xb=0}if(!_t(i,i.V,i.Ba,i.c,i.i,n.o,Lt))break r;a.Dc=i.Ma,i=1;break e}e(0!=i.a),i=0}i=!i}i&&(r=t.a)}else r=t.a}else{if(null==(t=new Yt)){s=1;break t}if(t.Fa=a.na,t.P=a.P,t.qc=a.Sa,Kt(t,i)){if(0==(r=qr(i.width,i.height,s.Oa,s.ba))){if(t.Aa=0,n=s.Oa,e(null!=(a=t)),null!=n){if(0<(u=0>(u=n.Md)?0:100<u?255:255*u/100)){for(h=l=0;4>h;++h)12>(f=a.pb[h]).lc&&(f.ia=u*Ti[0>f.lc?0:f.lc]>>3),l|=f.ia;l&&(alert(\"todo:VP8InitRandom\"),a.ia=1)}a.Ga=n.Id,100<a.Ga?a.Ga=100:0>a.Ga&&(a.Ga=0)}Qt(t,i)||(r=t.a)}}else r=t.a}0==r&&null!=s.Oa&&s.Oa.fd&&(r=Er(s.ba))}s=r}o=0!=s?null:11>o?c.f.RGBA.eb:c.f.kb.y}else o=null;return o};var zi=[3,4,3,4,4,2,2,4,4,4,2,1,1]};function u(t,e){for(var r=\"\",n=0;n<4;n++)r+=String.fromCharCode(t[e++]);return r}function h(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16)>>>0}function l(t,e){return(t[e+0]<<0|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}new c;var f=[0],d=[0],p=[],g=new c,m=t,v=function(t,e){var r={},n=0,i=!1,a=0,o=0;if(r.frames=[],!\n/** @license\n * Copyright (c) 2017 Dominik Homberger\n Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n https://webpjs.appspot.com\n WebPRiffParser dominikhlbg@gmail.com\n */\nfunction(t,e,r,n){for(var i=0;i<n;i++)if(t[e+i]!=r.charCodeAt(i))return!0;return!1}(t,e,\"RIFF\",4)){var s,c;l(t,e+=4);for(e+=8;e<t.length;){var f=u(t,e),d=l(t,e+=4);e+=4;var p=d+(1&d);switch(f){case\"VP8 \":case\"VP8L\":void 0===r.frames[n]&&(r.frames[n]={});(v=r.frames[n]).src_off=i?o:e-8,v.src_size=a+d+8,n++,i&&(i=!1,a=0,o=0);break;case\"VP8X\":(v=r.header={}).feature_flags=t[e];var g=e+4;v.canvas_width=1+h(t,g);g+=3;v.canvas_height=1+h(t,g);g+=3;break;case\"ALPH\":i=!0,a=p+8,o=e-8;break;case\"ANIM\":(v=r.header).bgcolor=l(t,e);g=e+4;v.loop_count=(s=t)[(c=g)+0]<<0|s[c+1]<<8;g+=2;break;case\"ANMF\":var m,v;(v=r.frames[n]={}).offset_x=2*h(t,e),e+=3,v.offset_y=2*h(t,e),e+=3,v.width=1+h(t,e),e+=3,v.height=1+h(t,e),e+=3,v.duration=h(t,e),e+=3,m=t[e++],v.dispose=1&m,v.blend=m>>1&1}\"ANMF\"!=f&&(e+=p)}return r}}(m,0);v.response=m,v.rgbaoutput=!0,v.dataurl=!1;var b=v.header?v.header:null,y=v.frames?v.frames:null;if(b){b.loop_counter=b.loop_count,f=[b.canvas_height],d=[b.canvas_width];for(var w=0;w<y.length&&0!=y[w].blend;w++);}var N=y[0],L=g.WebPDecodeRGBA(m,N.src_off,N.src_size,d,f);N.rgba=L,N.imgwidth=d[0],N.imgheight=f[0];for(var A=0;A<d[0]*f[0]*4;A++)p[A]=L[A];return this.width=d,this.height=f,this.data=p,this}!function(t){var r=function(){return\"function\"==typeof e},n=function(r,n,a,h){var l=4,f=s;switch(h){case t.image_compression.FAST:l=1,f=o;break;case t.image_compression.MEDIUM:l=6,f=c;break;case t.image_compression.SLOW:l=9,f=u}r=i(r,n,a,f);var d=e(r,{level:l});return t.__addimage__.arrayBufferToBinaryString(d)},i=function(t,e,r,n){for(var i,a,o,s=t.length/e,c=new Uint8Array(t.length+s),u=l(),h=0;h<s;h+=1){if(o=h*e,i=t.subarray(o,o+e),n)c.set(n(i,r,a),o+h);else{for(var d,p=u.length,g=[];d<p;d+=1)g[d]=u[d](i,r,a);var m=f(g.concat());c.set(g[m],o+h)}a=i}return c},a=function(t){var e=Array.apply([],t);return e.unshift(0),e},o=function(t,e){var r,n=[],i=t.length;n[0]=1;for(var a=0;a<i;a+=1)r=t[a-e]||0,n[a+1]=t[a]-r+256&255;return n},s=function(t,e,r){var n,i=[],a=t.length;i[0]=2;for(var o=0;o<a;o+=1)n=r&&r[o]||0,i[o+1]=t[o]-n+256&255;return i},c=function(t,e,r){var n,i,a=[],o=t.length;a[0]=3;for(var s=0;s<o;s+=1)n=t[s-e]||0,i=r&&r[s]||0,a[s+1]=t[s]+256-(n+i>>>1)&255;return a},u=function(t,e,r){var n,i,a,o,s=[],c=t.length;s[0]=4;for(var u=0;u<c;u+=1)n=t[u-e]||0,i=r&&r[u]||0,a=r&&r[u-e]||0,o=h(n,i,a),s[u+1]=t[u]-o+256&255;return s},h=function(t,e,r){if(t===e&&e===r)return t;var n=Math.abs(e-r),i=Math.abs(t-r),a=Math.abs(t+e-r-r);return n<=i&&n<=a?t:i<=a?e:r},l=function(){return[a,o,s,c,u]},f=function(t){var e=t.map((function(t){return t.reduce((function(t,e){return t+Math.abs(e)}),0)}));return e.indexOf(Math.min.apply(null,e))};t.processPNG=function(e,i,a,o){var s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L=this.decode.FLATE_DECODE,A=\"\";if(this.__addimage__.isArrayBuffer(e)&&(e=new Uint8Array(e)),this.__addimage__.isArrayBufferView(e)){if(e=(u=new Kt(e)).imgData,c=u.bits,s=u.colorSpace,l=u.colors,-1!==[4,6].indexOf(u.colorType)){if(8===u.bits){g=(p=32==u.pixelBitlength?new Uint32Array(u.decodePixels().buffer):16==u.pixelBitlength?new Uint16Array(u.decodePixels().buffer):new Uint8Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*u.colors),m=new Uint8Array(g);var x,S=u.pixelBitlength-u.bits;for(w=0,N=0;w<g;w++){for(y=p[w],x=0;x<S;)v[N++]=y>>>x&255,x+=u.bits;m[w]=y>>>x&255}}if(16===u.bits){g=(p=new Uint32Array(u.decodePixels().buffer)).length,v=new Uint8Array(g*(32/u.pixelBitlength)*u.colors),m=new Uint8Array(g*(32/u.pixelBitlength)),b=u.colors>1,w=0,N=0;for(var _=0;w<g;)y=p[w++],v[N++]=y>>>0&255,b&&(v[N++]=y>>>16&255,y=p[w++],v[N++]=y>>>0&255),m[_++]=y>>>16&255;c=8}o!==t.image_compression.NONE&&r()?(e=n(v,u.width*u.colors,u.colors,o),d=n(m,u.width,1,o)):(e=v,d=m,L=void 0)}if(3===u.colorType&&(s=this.color_spaces.INDEXED,f=u.palette,u.transparency.indexed)){var P=u.transparency.indexed,k=0;for(w=0,g=P.length;w<g;++w)k+=P[w];if((k/=255)===g-1&&-1!==P.indexOf(0))h=[P.indexOf(0)];else if(k!==g){for(p=u.decodePixels(),m=new Uint8Array(p.length),w=0,g=p.length;w<g;w++)m[w]=P[p[w]];d=n(m,u.width,1)}}var I=function(e){var r;switch(e){case t.image_compression.FAST:r=11;break;case t.image_compression.MEDIUM:r=13;break;case t.image_compression.SLOW:r=14;break;default:r=12}return r}(o);return L===this.decode.FLATE_DECODE&&(A=\"/Predictor \"+I+\" \"),A+=\"/Colors \"+l+\" /BitsPerComponent \"+c+\" /Columns \"+u.width,(this.__addimage__.isArrayBuffer(e)||this.__addimage__.isArrayBufferView(e))&&(e=this.__addimage__.arrayBufferToBinaryString(e)),(d&&this.__addimage__.isArrayBuffer(d)||this.__addimage__.isArrayBufferView(d))&&(d=this.__addimage__.arrayBufferToBinaryString(d)),{alias:a,data:e,index:i,filter:L,decodeParameters:A,transparency:h,palette:f,sMask:d,predictor:I,width:u.width,height:u.height,bitsPerComponent:c,colorSpace:s}}}}(E.API),function(t){t.processGIF89A=function(e,r,n,i){var a=new Zt(e),o=a.width,s=a.height,c=[];a.decodeAndBlitFrameRGBA(0,c);var u={data:c,width:o,height:s},h=new Qt(100).encode(u,100);return t.processJPEG.call(this,h,r,n,i)},t.processGIF87A=t.processGIF89A}(E.API),te.prototype.parseHeader=function(){if(this.fileSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.reserved=this.datav.getUint32(this.pos,!0),this.pos+=4,this.offset=this.datav.getUint32(this.pos,!0),this.pos+=4,this.headerSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.width=this.datav.getUint32(this.pos,!0),this.pos+=4,this.height=this.datav.getInt32(this.pos,!0),this.pos+=4,this.planes=this.datav.getUint16(this.pos,!0),this.pos+=2,this.bitPP=this.datav.getUint16(this.pos,!0),this.pos+=2,this.compress=this.datav.getUint32(this.pos,!0),this.pos+=4,this.rawSize=this.datav.getUint32(this.pos,!0),this.pos+=4,this.hr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.vr=this.datav.getUint32(this.pos,!0),this.pos+=4,this.colors=this.datav.getUint32(this.pos,!0),this.pos+=4,this.importantColors=this.datav.getUint32(this.pos,!0),this.pos+=4,16===this.bitPP&&this.is_with_alpha&&(this.bitPP=15),this.bitPP<15){var t=0===this.colors?1<<this.bitPP:this.colors;this.palette=new Array(t);for(var e=0;e<t;e++){var r=this.datav.getUint8(this.pos++,!0),n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0);this.palette[e]={red:i,green:n,blue:r,quad:a}}}this.height<0&&(this.height*=-1,this.bottom_up=!1)},te.prototype.parseBGR=function(){this.pos=this.offset;try{var t=\"bit\"+this.bitPP,e=this.width*this.height*4;this.data=new Uint8Array(e),this[t]()}catch(t){a.log(\"bit decode error:\"+t)}},te.prototype.bit1=function(){var t,e=Math.ceil(this.width/8),r=e%4;for(t=this.height-1;t>=0;t--){for(var n=this.bottom_up?t:this.height-1-t,i=0;i<e;i++)for(var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+8*i*4,s=0;s<8&&8*i+s<this.width;s++){var c=this.palette[a>>7-s&1];this.data[o+4*s]=c.blue,this.data[o+4*s+1]=c.green,this.data[o+4*s+2]=c.red,this.data[o+4*s+3]=255}0!==r&&(this.pos+=4-r)}},te.prototype.bit4=function(){for(var t=Math.ceil(this.width/2),e=t%4,r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<t;i++){var a=this.datav.getUint8(this.pos++,!0),o=n*this.width*4+2*i*4,s=a>>4,c=15&a,u=this.palette[s];if(this.data[o]=u.blue,this.data[o+1]=u.green,this.data[o+2]=u.red,this.data[o+3]=255,2*i+1>=this.width)break;u=this.palette[c],this.data[o+4]=u.blue,this.data[o+4+1]=u.green,this.data[o+4+2]=u.red,this.data[o+4+3]=255}0!==e&&(this.pos+=4-e)}},te.prototype.bit8=function(){for(var t=this.width%4,e=this.height-1;e>=0;e--){for(var r=this.bottom_up?e:this.height-1-e,n=0;n<this.width;n++){var i=this.datav.getUint8(this.pos++,!0),a=r*this.width*4+4*n;if(i<this.palette.length){var o=this.palette[i];this.data[a]=o.red,this.data[a+1]=o.green,this.data[a+2]=o.blue,this.data[a+3]=255}else this.data[a]=255,this.data[a+1]=255,this.data[a+2]=255,this.data[a+3]=255}0!==t&&(this.pos+=4-t)}},te.prototype.bit15=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=this.height-1;r>=0;r--){for(var n=this.bottom_up?r:this.height-1-r,i=0;i<this.width;i++){var a=this.datav.getUint16(this.pos,!0);this.pos+=2;var o=(a&e)/e*255|0,s=(a>>5&e)/e*255|0,c=(a>>10&e)/e*255|0,u=a>>15?255:0,h=n*this.width*4+4*i;this.data[h]=c,this.data[h+1]=s,this.data[h+2]=o,this.data[h+3]=u}this.pos+=t}},te.prototype.bit16=function(){for(var t=this.width%3,e=parseInt(\"11111\",2),r=parseInt(\"111111\",2),n=this.height-1;n>=0;n--){for(var i=this.bottom_up?n:this.height-1-n,a=0;a<this.width;a++){var o=this.datav.getUint16(this.pos,!0);this.pos+=2;var s=(o&e)/e*255|0,c=(o>>5&r)/r*255|0,u=(o>>11)/e*255|0,h=i*this.width*4+4*a;this.data[h]=u,this.data[h+1]=c,this.data[h+2]=s,this.data[h+3]=255}this.pos+=t}},te.prototype.bit24=function(){for(var t=this.height-1;t>=0;t--){for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=e*this.width*4+4*r;this.data[o]=a,this.data[o+1]=i,this.data[o+2]=n,this.data[o+3]=255}this.pos+=this.width%4}},te.prototype.bit32=function(){for(var t=this.height-1;t>=0;t--)for(var e=this.bottom_up?t:this.height-1-t,r=0;r<this.width;r++){var n=this.datav.getUint8(this.pos++,!0),i=this.datav.getUint8(this.pos++,!0),a=this.datav.getUint8(this.pos++,!0),o=this.datav.getUint8(this.pos++,!0),s=e*this.width*4+4*r;this.data[s]=a,this.data[s+1]=i,this.data[s+2]=n,this.data[s+3]=o}},te.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2018 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processBMP=function(e,r,n,i){var a=new te(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(E.API),ee.prototype.getData=function(){return this.data},\n/**\n * @license\n * Copyright (c) 2019 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){t.processWEBP=function(e,r,n,i){var a=new ee(e,!1),o=a.width,s=a.height,c={data:a.getData(),width:o,height:s},u=new Qt(100).encode(c,100);return t.processJPEG.call(this,u,r,n,i)}}(E.API),E.API.processRGBA=function(t,e,r){for(var n=t.data,i=n.length,a=new Uint8Array(i/4*3),o=new Uint8Array(i/4),s=0,c=0,u=0;u<i;u+=4){var h=n[u],l=n[u+1],f=n[u+2],d=n[u+3];a[s++]=h,a[s++]=l,a[s++]=f,o[c++]=d}var p=this.__addimage__.arrayBufferToBinaryString(a);return{alpha:this.__addimage__.arrayBufferToBinaryString(o),data:p,index:e,alias:r,colorSpace:\"DeviceRGB\",bitsPerComponent:8,width:t.width,height:t.height}},E.API.setLanguage=function(t){return void 0===this.internal.languageSettings&&(this.internal.languageSettings={},this.internal.languageSettings.isSubscribed=!1),void 0!=={af:\"Afrikaans\",sq:\"Albanian\",ar:\"Arabic (Standard)\",\"ar-DZ\":\"Arabic (Algeria)\",\"ar-BH\":\"Arabic (Bahrain)\",\"ar-EG\":\"Arabic (Egypt)\",\"ar-IQ\":\"Arabic (Iraq)\",\"ar-JO\":\"Arabic (Jordan)\",\"ar-KW\":\"Arabic (Kuwait)\",\"ar-LB\":\"Arabic (Lebanon)\",\"ar-LY\":\"Arabic (Libya)\",\"ar-MA\":\"Arabic (Morocco)\",\"ar-OM\":\"Arabic (Oman)\",\"ar-QA\":\"Arabic (Qatar)\",\"ar-SA\":\"Arabic (Saudi Arabia)\",\"ar-SY\":\"Arabic (Syria)\",\"ar-TN\":\"Arabic (Tunisia)\",\"ar-AE\":\"Arabic (U.A.E.)\",\"ar-YE\":\"Arabic (Yemen)\",an:\"Aragonese\",hy:\"Armenian\",as:\"Assamese\",ast:\"Asturian\",az:\"Azerbaijani\",eu:\"Basque\",be:\"Belarusian\",bn:\"Bengali\",bs:\"Bosnian\",br:\"Breton\",bg:\"Bulgarian\",my:\"Burmese\",ca:\"Catalan\",ch:\"Chamorro\",ce:\"Chechen\",zh:\"Chinese\",\"zh-HK\":\"Chinese (Hong Kong)\",\"zh-CN\":\"Chinese (PRC)\",\"zh-SG\":\"Chinese (Singapore)\",\"zh-TW\":\"Chinese (Taiwan)\",cv:\"Chuvash\",co:\"Corsican\",cr:\"Cree\",hr:\"Croatian\",cs:\"Czech\",da:\"Danish\",nl:\"Dutch (Standard)\",\"nl-BE\":\"Dutch (Belgian)\",en:\"English\",\"en-AU\":\"English (Australia)\",\"en-BZ\":\"English (Belize)\",\"en-CA\":\"English (Canada)\",\"en-IE\":\"English (Ireland)\",\"en-JM\":\"English (Jamaica)\",\"en-NZ\":\"English (New Zealand)\",\"en-PH\":\"English (Philippines)\",\"en-ZA\":\"English (South Africa)\",\"en-TT\":\"English (Trinidad & Tobago)\",\"en-GB\":\"English (United Kingdom)\",\"en-US\":\"English (United States)\",\"en-ZW\":\"English (Zimbabwe)\",eo:\"Esperanto\",et:\"Estonian\",fo:\"Faeroese\",fj:\"Fijian\",fi:\"Finnish\",fr:\"French (Standard)\",\"fr-BE\":\"French (Belgium)\",\"fr-CA\":\"French (Canada)\",\"fr-FR\":\"French (France)\",\"fr-LU\":\"French (Luxembourg)\",\"fr-MC\":\"French (Monaco)\",\"fr-CH\":\"French (Switzerland)\",fy:\"Frisian\",fur:\"Friulian\",gd:\"Gaelic (Scots)\",\"gd-IE\":\"Gaelic (Irish)\",gl:\"Galacian\",ka:\"Georgian\",de:\"German (Standard)\",\"de-AT\":\"German (Austria)\",\"de-DE\":\"German (Germany)\",\"de-LI\":\"German (Liechtenstein)\",\"de-LU\":\"German (Luxembourg)\",\"de-CH\":\"German (Switzerland)\",el:\"Greek\",gu:\"Gujurati\",ht:\"Haitian\",he:\"Hebrew\",hi:\"Hindi\",hu:\"Hungarian\",is:\"Icelandic\",id:\"Indonesian\",iu:\"Inuktitut\",ga:\"Irish\",it:\"Italian (Standard)\",\"it-CH\":\"Italian (Switzerland)\",ja:\"Japanese\",kn:\"Kannada\",ks:\"Kashmiri\",kk:\"Kazakh\",km:\"Khmer\",ky:\"Kirghiz\",tlh:\"Klingon\",ko:\"Korean\",\"ko-KP\":\"Korean (North Korea)\",\"ko-KR\":\"Korean (South Korea)\",la:\"Latin\",lv:\"Latvian\",lt:\"Lithuanian\",lb:\"Luxembourgish\",mk:\"North Macedonia\",ms:\"Malay\",ml:\"Malayalam\",mt:\"Maltese\",mi:\"Maori\",mr:\"Marathi\",mo:\"Moldavian\",nv:\"Navajo\",ng:\"Ndonga\",ne:\"Nepali\",no:\"Norwegian\",nb:\"Norwegian (Bokmal)\",nn:\"Norwegian (Nynorsk)\",oc:\"Occitan\",or:\"Oriya\",om:\"Oromo\",fa:\"Persian\",\"fa-IR\":\"Persian/Iran\",pl:\"Polish\",pt:\"Portuguese\",\"pt-BR\":\"Portuguese (Brazil)\",pa:\"Punjabi\",\"pa-IN\":\"Punjabi (India)\",\"pa-PK\":\"Punjabi (Pakistan)\",qu:\"Quechua\",rm:\"Rhaeto-Romanic\",ro:\"Romanian\",\"ro-MO\":\"Romanian (Moldavia)\",ru:\"Russian\",\"ru-MO\":\"Russian (Moldavia)\",sz:\"Sami (Lappish)\",sg:\"Sango\",sa:\"Sanskrit\",sc:\"Sardinian\",sd:\"Sindhi\",si:\"Singhalese\",sr:\"Serbian\",sk:\"Slovak\",sl:\"Slovenian\",so:\"Somani\",sb:\"Sorbian\",es:\"Spanish\",\"es-AR\":\"Spanish (Argentina)\",\"es-BO\":\"Spanish (Bolivia)\",\"es-CL\":\"Spanish (Chile)\",\"es-CO\":\"Spanish (Colombia)\",\"es-CR\":\"Spanish (Costa Rica)\",\"es-DO\":\"Spanish (Dominican Republic)\",\"es-EC\":\"Spanish (Ecuador)\",\"es-SV\":\"Spanish (El Salvador)\",\"es-GT\":\"Spanish (Guatemala)\",\"es-HN\":\"Spanish (Honduras)\",\"es-MX\":\"Spanish (Mexico)\",\"es-NI\":\"Spanish (Nicaragua)\",\"es-PA\":\"Spanish (Panama)\",\"es-PY\":\"Spanish (Paraguay)\",\"es-PE\":\"Spanish (Peru)\",\"es-PR\":\"Spanish (Puerto Rico)\",\"es-ES\":\"Spanish (Spain)\",\"es-UY\":\"Spanish (Uruguay)\",\"es-VE\":\"Spanish (Venezuela)\",sx:\"Sutu\",sw:\"Swahili\",sv:\"Swedish\",\"sv-FI\":\"Swedish (Finland)\",\"sv-SV\":\"Swedish (Sweden)\",ta:\"Tamil\",tt:\"Tatar\",te:\"Teluga\",th:\"Thai\",tig:\"Tigre\",ts:\"Tsonga\",tn:\"Tswana\",tr:\"Turkish\",tk:\"Turkmen\",uk:\"Ukrainian\",hsb:\"Upper Sorbian\",ur:\"Urdu\",ve:\"Venda\",vi:\"Vietnamese\",vo:\"Volapuk\",wa:\"Walloon\",cy:\"Welsh\",xh:\"Xhosa\",ji:\"Yiddish\",zu:\"Zulu\"}[t]&&(this.internal.languageSettings.languageCode=t,!1===this.internal.languageSettings.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){this.internal.write(\"/Lang (\"+this.internal.languageSettings.languageCode+\")\")})),this.internal.languageSettings.isSubscribed=!0)),this},Vt=E.API,Gt=Vt.getCharWidthsArray=function(e,r){var n,i,a=(r=r||{}).font||this.internal.getFont(),o=r.fontSize||this.internal.getFontSize(),s=r.charSpace||this.internal.getCharSpace(),c=r.widths?r.widths:a.metadata.Unicode.widths,u=c.fof?c.fof:1,h=r.kerning?r.kerning:a.metadata.Unicode.kerning,l=h.fof?h.fof:1,f=!1!==r.doKerning,d=0,p=e.length,g=0,m=c[0]||u,v=[];for(n=0;n<p;n++)i=e.charCodeAt(n),\"function\"==typeof a.metadata.widthOfString?v.push((a.metadata.widthOfGlyph(a.metadata.characterToGlyph(i))+s*(1e3/o)||0)/1e3):(d=f&&\"object\"===t(h[i])&&!isNaN(parseInt(h[i][g],10))?h[i][g]/l:0,v.push((c[i]||m)/u+d)),g=i;return v},Yt=Vt.getStringUnitWidth=function(t,e){var r=(e=e||{}).fontSize||this.internal.getFontSize(),n=e.font||this.internal.getFont(),i=e.charSpace||this.internal.getCharSpace();return Vt.processArabic&&(t=Vt.processArabic(t)),\"function\"==typeof n.metadata.widthOfString?n.metadata.widthOfString(t,r,i)/r:Gt.apply(this,arguments).reduce((function(t,e){return t+e}),0)},Jt=function(t,e,r,n){for(var i=[],a=0,o=t.length,s=0;a!==o&&s+e[a]<r;)s+=e[a],a++;i.push(t.slice(0,a));var c=a;for(s=0;a!==o;)s+e[a]>n&&(i.push(t.slice(c,a)),s=0,c=a),s+=e[a],a++;return c!==a&&i.push(t.slice(c,a)),i},Xt=function(t,e,r){r||(r={});var n,i,a,o,s,c,u,h=[],l=[h],f=r.textIndent||0,d=0,p=0,g=t.split(\" \"),m=Gt.apply(this,[\" \",r])[0];if(c=-1===r.lineIndent?g[0].length+2:r.lineIndent||0){var v=Array(c).join(\" \"),b=[];g.map((function(t){(t=t.split(/\\s*\\n/)).length>1?b=b.concat(t.map((function(t,e){return(e&&t.length?\"\\n\":\"\")+t}))):b.push(t[0])})),g=b,c=Yt.apply(this,[v,r])}for(a=0,o=g.length;a<o;a++){var y=0;if(n=g[a],c&&\"\\n\"==n[0]&&(n=n.substr(1),y=1),f+d+(p=(i=Gt.apply(this,[n,r])).reduce((function(t,e){return t+e}),0))>e||y){if(p>e){for(s=Jt.apply(this,[n,i,e-(f+d),e]),h.push(s.shift()),h=[s.pop()];s.length;)l.push([s.shift()]);p=i.slice(n.length-(h[0]?h[0].length:0)).reduce((function(t,e){return t+e}),0)}else h=[n];l.push(h),f=p+c,d=m}else h.push(n),f+=d+p,d=m}return u=c?function(t,e){return(e?v:\"\")+t.join(\" \")}:function(t){return t.join(\" \")},l.map(u)},Vt.splitTextToSize=function(t,e,r){var n,i=(r=r||{}).fontSize||this.internal.getFontSize(),a=function(t){if(t.widths&&t.kerning)return{widths:t.widths,kerning:t.kerning};var e=this.internal.getFont(t.fontName,t.fontStyle);return e.metadata.Unicode?{widths:e.metadata.Unicode.widths||{0:1},kerning:e.metadata.Unicode.kerning||{}}:{font:e.metadata,fontSize:this.internal.getFontSize(),charSpace:this.internal.getCharSpace()}}.call(this,r);n=Array.isArray(t)?t:String(t).split(/\\r?\\n/);var o=1*this.internal.scaleFactor*e/i;a.textIndent=r.textIndent?1*r.textIndent*this.internal.scaleFactor/i:0,a.lineIndent=r.lineIndent;var s,c,u=[];for(s=0,c=n.length;s<c;s++)u=u.concat(Xt.apply(this,[n[s],o,a]));return u},function(e){e.__fontmetrics__=e.__fontmetrics__||{};for(var r=\"klmnopqrstuvwxyz\",n={},i={},a=0;a<r.length;a++)n[r[a]]=\"0123456789abcdef\"[a],i[\"0123456789abcdef\"[a]]=r[a];var o=function(t){return\"0x\"+parseInt(t,10).toString(16)},s=e.__fontmetrics__.compress=function(e){var r,n,a,c,u=[\"{\"];for(var h in e){if(r=e[h],isNaN(parseInt(h,10))?n=\"'\"+h+\"'\":(h=parseInt(h,10),n=(n=o(h).slice(2)).slice(0,-1)+i[n.slice(-1)]),\"number\"==typeof r)r<0?(a=o(r).slice(3),c=\"-\"):(a=o(r).slice(2),c=\"\"),a=c+a.slice(0,-1)+i[a.slice(-1)];else{if(\"object\"!==t(r))throw new Error(\"Don't know what to do with value type \"+t(r)+\".\");a=s(r)}u.push(n+a)}return u.push(\"}\"),u.join(\"\")},c=e.__fontmetrics__.uncompress=function(t){if(\"string\"!=typeof t)throw new Error(\"Invalid argument passed to uncompress.\");for(var e,r,i,a,o={},s=1,c=o,u=[],h=\"\",l=\"\",f=t.length-1,d=1;d<f;d+=1)\"'\"==(a=t[d])?e?(i=e.join(\"\"),e=void 0):e=[]:e?e.push(a):\"{\"==a?(u.push([c,i]),c={},i=void 0):\"}\"==a?((r=u.pop())[0][r[1]]=c,i=void 0,c=r[0]):\"-\"==a?s=-1:void 0===i?n.hasOwnProperty(a)?(h+=n[a],i=parseInt(h,16)*s,s=1,h=\"\"):h+=a:n.hasOwnProperty(a)?(l+=n[a],c[i]=parseInt(l,16)*s,s=1,i=void 0,l=\"\"):l+=a;return o},u={codePages:[\"WinAnsiEncoding\"],WinAnsiEncoding:c(\"{19m8n201n9q201o9r201s9l201t9m201u8m201w9n201x9o201y8o202k8q202l8r202m9p202q8p20aw8k203k8t203t8v203u9v2cq8s212m9t15m8w15n9w2dw9s16k8u16l9u17s9z17x8y17y9y}\")},h={Unicode:{Courier:u,\"Courier-Bold\":u,\"Courier-BoldOblique\":u,\"Courier-Oblique\":u,Helvetica:u,\"Helvetica-Bold\":u,\"Helvetica-BoldOblique\":u,\"Helvetica-Oblique\":u,\"Times-Roman\":u,\"Times-Bold\":u,\"Times-BoldItalic\":u,\"Times-Italic\":u}},l={Unicode:{\"Courier-Oblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-BoldItalic\":c(\"{'widths'{k3o2q4ycx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2r202m2n2n3m2o3m2p5n202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5n4l4m4m4m4n4m4o4s4p4m4q4m4r4s4s4y4t2r4u3m4v4m4w3x4x5t4y4s4z4s5k3x5l4s5m4m5n3r5o3x5p4s5q4m5r5t5s4m5t3x5u3x5v2l5w1w5x2l5y3t5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q2l6r3m6s3r6t1w6u1w6v3m6w1w6x4y6y3r6z3m7k3m7l3m7m2r7n2r7o1w7p3r7q2w7r4m7s3m7t2w7u2r7v2n7w1q7x2n7y3t202l3mcl4mal2ram3man3mao3map3mar3mas2lat4uau1uav3maw3way4uaz2lbk2sbl3t'fof'6obo2lbp3tbq3mbr1tbs2lbu1ybv3mbz3mck4m202k3mcm4mcn4mco4mcp4mcq5ycr4mcs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz2w203k6o212m6o2dw2l2cq2l3t3m3u2l17s3x19m3m}'kerning'{cl{4qu5kt5qt5rs17ss5ts}201s{201ss}201t{cks4lscmscnscoscpscls2wu2yu201ts}201x{2wu2yu}2k{201ts}2w{4qx5kx5ou5qx5rs17su5tu}2x{17su5tu5ou}2y{4qx5kx5ou5qx5rs17ss5ts}'fof'-6ofn{17sw5tw5ou5qw5rs}7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qs}3v{17su5tu5os5qs}7p{17su5tu}ck{4qu5kt5qt5rs17ss5ts}4l{4qu5kt5qt5rs17ss5ts}cm{4qu5kt5qt5rs17ss5ts}cn{4qu5kt5qt5rs17ss5ts}co{4qu5kt5qt5rs17ss5ts}cp{4qu5kt5qt5rs17ss5ts}6l{4qu5ou5qw5rt17su5tu}5q{ckuclucmucnucoucpu4lu}5r{ckuclucmucnucoucpu4lu}7q{cksclscmscnscoscps4ls}6p{4qu5ou5qw5rt17sw5tw}ek{4qu5ou5qw5rt17su5tu}el{4qu5ou5qw5rt17su5tu}em{4qu5ou5qw5rt17su5tu}en{4qu5ou5qw5rt17su5tu}eo{4qu5ou5qw5rt17su5tu}ep{4qu5ou5qw5rt17su5tu}es{17ss5ts5qs4qu}et{4qu5ou5qw5rt17sw5tw}eu{4qu5ou5qw5rt17ss5ts}ev{17ss5ts5qs4qu}6z{17sw5tw5ou5qw5rs}fm{17sw5tw5ou5qw5rs}7n{201ts}fo{17sw5tw5ou5qw5rs}fp{17sw5tw5ou5qw5rs}fq{17sw5tw5ou5qw5rs}7r{cksclscmscnscoscps4ls}fs{17sw5tw5ou5qw5rs}ft{17su5tu}fu{17su5tu}fv{17su5tu}fw{17su5tu}fz{cksclscmscnscoscps4ls}}}\"),\"Helvetica-Bold\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),Courier:c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-BoldOblique\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Bold\":c(\"{'widths'{k3q2q5ncx2r201n3m201o6o201s2l201t2l201u2l201w3m201x3m201y3m2k1t2l2l202m2n2n3m2o3m2p6o202q6o2r1w2s2l2t2l2u3m2v3t2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w3t3x3t3y3t3z3m4k5x4l4s4m4m4n4s4o4s4p4m4q3x4r4y4s4y4t2r4u3m4v4y4w4m4x5y4y4s4z4y5k3x5l4y5m4s5n3r5o4m5p4s5q4s5r6o5s4s5t4s5u4m5v2l5w1w5x2l5y3u5z3m6k2l6l3m6m3r6n2w6o3r6p2w6q2l6r3m6s3r6t1w6u2l6v3r6w1w6x5n6y3r6z3m7k3r7l3r7m2w7n2r7o2l7p3r7q3m7r4s7s3m7t3m7u2w7v2r7w1q7x2r7y3o202l3mcl4sal2lam3man3mao3map3mar3mas2lat4uau1yav3maw3tay4uaz2lbk2sbl3t'fof'6obo2lbp3rbr1tbs2lbu2lbv3mbz3mck4s202k3mcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw2r2m3rcy2rcz2rdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3rek3mel3mem3men3meo3mep3meq4ser2wes2wet2weu2wev2wew1wex1wey1wez1wfl3rfm3mfn3mfo3mfp3mfq3mfr3tfs3mft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3m3u2l17s4s19m3m}'kerning'{cl{4qt5ks5ot5qy5rw17sv5tv}201t{cks4lscmscnscoscpscls4wv}2k{201ts}2w{4qu5ku7mu5os5qx5ru17su5tu}2x{17su5tu5ou5qs}2y{4qv5kv7mu5ot5qz5ru17su5tu}'fof'-6o7t{cksclscmscnscoscps4ls}3u{17su5tu5os5qu}3v{17su5tu5os5qu}fu{17su5tu5ou5qu}7p{17su5tu5ou5qu}ck{4qt5ks5ot5qy5rw17sv5tv}4l{4qt5ks5ot5qy5rw17sv5tv}cm{4qt5ks5ot5qy5rw17sv5tv}cn{4qt5ks5ot5qy5rw17sv5tv}co{4qt5ks5ot5qy5rw17sv5tv}cp{4qt5ks5ot5qy5rw17sv5tv}6l{17st5tt5ou5qu}17s{ckuclucmucnucoucpu4lu4wu}5o{ckuclucmucnucoucpu4lu4wu}5q{ckzclzcmzcnzcozcpz4lz4wu}5r{ckxclxcmxcnxcoxcpx4lx4wu}5t{ckuclucmucnucoucpu4lu4wu}7q{ckuclucmucnucoucpu4lu}6p{17sw5tw5ou5qu}ek{17st5tt5qu}el{17st5tt5ou5qu}em{17st5tt5qu}en{17st5tt5qu}eo{17st5tt5qu}ep{17st5tt5ou5qu}es{17ss5ts5qu}et{17sw5tw5ou5qu}eu{17sw5tw5ou5qu}ev{17ss5ts5qu}6z{17sw5tw5ou5qu5rs}fm{17sw5tw5ou5qu5rs}fn{17sw5tw5ou5qu5rs}fo{17sw5tw5ou5qu5rs}fp{17sw5tw5ou5qu5rs}fq{17sw5tw5ou5qu5rs}7r{cktcltcmtcntcotcpt4lt5os}fs{17sw5tw5ou5qu5rs}ft{17su5tu5ou5qu}7m{5os}fv{17su5tu5ou5qu}fw{17su5tu5ou5qu}fz{cksclscmscnscoscps4ls}}}\"),Symbol:c(\"{'widths'{k3uaw4r19m3m2k1t2l2l202m2y2n3m2p5n202q6o3k3m2s2l2t2l2v3r2w1t3m3m2y1t2z1wbk2sbl3r'fof'6o3n3m3o3m3p3m3q3m3r3m3s3m3t3m3u1w3v1w3w3r3x3r3y3r3z2wbp3t3l3m5v2l5x2l5z3m2q4yfr3r7v3k7w1o7x3k}'kerning'{'fof'-6o}}\"),Helvetica:c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\"),\"Helvetica-BoldOblique\":c(\"{'widths'{k3s2q4scx1w201n3r201o6o201s1w201t1w201u1w201w3m201x3m201y3m2k1w2l2l202m2n2n3r2o3r2p5t202q6o2r1s2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v2l3w3u3x3u3y3u3z3x4k6l4l4s4m4s4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3r4v4s4w3x4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v2l5w1w5x2l5y3u5z3r6k2l6l3r6m3x6n3r6o3x6p3r6q2l6r3x6s3x6t1w6u1w6v3r6w1w6x5t6y3x6z3x7k3x7l3x7m2r7n3r7o2l7p3x7q3r7r4y7s3r7t3r7u3m7v2r7w1w7x2r7y3u202l3rcl4sal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3xbq3rbr1wbs2lbu2obv3rbz3xck4s202k3rcm4scn4sco4scp4scq6ocr4scs4mct4mcu4mcv4mcw1w2m2zcy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3res3ret3reu3rev3rew1wex1wey1wez1wfl3xfm3xfn3xfo3xfp3xfq3xfr3ufs3xft3xfu3xfv3xfw3xfz3r203k6o212m6o2dw2l2cq2l3t3r3u2l17s4m19m3r}'kerning'{cl{4qs5ku5ot5qs17sv5tv}201t{2ww4wy2yw}201w{2ks}201x{2ww4wy2yw}2k{201ts201xs}2w{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}2x{5ow5qs}2y{7qs4qu5kw5os5qw5rs17su5tu7tsfzs}'fof'-6o7p{17su5tu5ot}ck{4qs5ku5ot5qs17sv5tv}4l{4qs5ku5ot5qs17sv5tv}cm{4qs5ku5ot5qs17sv5tv}cn{4qs5ku5ot5qs17sv5tv}co{4qs5ku5ot5qs17sv5tv}cp{4qs5ku5ot5qs17sv5tv}6l{17st5tt5os}17s{2kwclvcmvcnvcovcpv4lv4wwckv}5o{2kucltcmtcntcotcpt4lt4wtckt}5q{2ksclscmscnscoscps4ls4wvcks}5r{2ks4ws}5t{2kwclvcmvcnvcovcpv4lv4wwckv}eo{17st5tt5os}fu{17su5tu5ot}6p{17ss5ts}ek{17st5tt5os}el{17st5tt5os}em{17st5tt5os}en{17st5tt5os}6o{201ts}ep{17st5tt5os}es{17ss5ts}et{17ss5ts}eu{17ss5ts}ev{17ss5ts}6z{17su5tu5os5qt}fm{17su5tu5os5qt}fn{17su5tu5os5qt}fo{17su5tu5os5qt}fp{17su5tu5os5qt}fq{17su5tu5os5qt}fs{17su5tu5os5qt}ft{17su5tu5ot}7m{5os}fv{17su5tu5ot}fw{17su5tu5ot}}}\"),ZapfDingbats:c(\"{'widths'{k4u2k1w'fof'6o}'kerning'{'fof'-6o}}\"),\"Courier-Bold\":c(\"{'widths'{k3w'fof'6o}'kerning'{'fof'-6o}}\"),\"Times-Italic\":c(\"{'widths'{k3n2q4ycx2l201n3m201o5t201s2l201t2l201u2l201w3r201x3r201y3r2k1t2l2l202m2n2n3m2o3m2p5n202q5t2r1p2s2l2t2l2u3m2v4n2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v2l3w4n3x4n3y4n3z3m4k5w4l3x4m3x4n4m4o4s4p3x4q3x4r4s4s4s4t2l4u2w4v4m4w3r4x5n4y4m4z4s5k3x5l4s5m3x5n3m5o3r5p4s5q3x5r5n5s3x5t3r5u3r5v2r5w1w5x2r5y2u5z3m6k2l6l3m6m3m6n2w6o3m6p2w6q1w6r3m6s3m6t1w6u1w6v2w6w1w6x4s6y3m6z3m7k3m7l3m7m2r7n2r7o1w7p3m7q2w7r4m7s2w7t2w7u2r7v2s7w1v7x2s7y3q202l3mcl3xal2ram3man3mao3map3mar3mas2lat4wau1vav3maw4nay4waz2lbk2sbl4n'fof'6obo2lbp3mbq3obr1tbs2lbu1zbv3mbz3mck3x202k3mcm3xcn3xco3xcp3xcq5tcr4mcs3xct3xcu3xcv3xcw2l2m2ucy2lcz2ldl4mdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek3mel3mem3men3meo3mep3meq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr4nfs3mft3mfu3mfv3mfw3mfz2w203k6o212m6m2dw2l2cq2l3t3m3u2l17s3r19m3m}'kerning'{cl{5kt4qw}201s{201sw}201t{201tw2wy2yy6q-t}201x{2wy2yy}2k{201tw}2w{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}2x{17ss5ts5os}2y{7qs4qy7rs5ky7mw5os5qx5ru17su5tu}'fof'-6o6t{17ss5ts5qs}7t{5os}3v{5qs}7p{17su5tu5qs}ck{5kt4qw}4l{5kt4qw}cm{5kt4qw}cn{5kt4qw}co{5kt4qw}cp{5kt4qw}6l{4qs5ks5ou5qw5ru17su5tu}17s{2ks}5q{ckvclvcmvcnvcovcpv4lv}5r{ckuclucmucnucoucpu4lu}5t{2ks}6p{4qs5ks5ou5qw5ru17su5tu}ek{4qs5ks5ou5qw5ru17su5tu}el{4qs5ks5ou5qw5ru17su5tu}em{4qs5ks5ou5qw5ru17su5tu}en{4qs5ks5ou5qw5ru17su5tu}eo{4qs5ks5ou5qw5ru17su5tu}ep{4qs5ks5ou5qw5ru17su5tu}es{5ks5qs4qs}et{4qs5ks5ou5qw5ru17su5tu}eu{4qs5ks5qw5ru17su5tu}ev{5ks5qs4qs}ex{17ss5ts5qs}6z{4qv5ks5ou5qw5ru17su5tu}fm{4qv5ks5ou5qw5ru17su5tu}fn{4qv5ks5ou5qw5ru17su5tu}fo{4qv5ks5ou5qw5ru17su5tu}fp{4qv5ks5ou5qw5ru17su5tu}fq{4qv5ks5ou5qw5ru17su5tu}7r{5os}fs{4qv5ks5ou5qw5ru17su5tu}ft{17su5tu5qs}fu{17su5tu5qs}fv{17su5tu5qs}fw{17su5tu5qs}}}\"),\"Times-Roman\":c(\"{'widths'{k3n2q4ycx2l201n3m201o6o201s2l201t2l201u2l201w2w201x2w201y2w2k1t2l2l202m2n2n3m2o3m2p5n202q6o2r1m2s2l2t2l2u3m2v3s2w1t2x2l2y1t2z1w3k3m3l3m3m3m3n3m3o3m3p3m3q3m3r3m3s3m203t2l203u2l3v1w3w3s3x3s3y3s3z2w4k5w4l4s4m4m4n4m4o4s4p3x4q3r4r4s4s4s4t2l4u2r4v4s4w3x4x5t4y4s4z4s5k3r5l4s5m4m5n3r5o3x5p4s5q4s5r5y5s4s5t4s5u3x5v2l5w1w5x2l5y2z5z3m6k2l6l2w6m3m6n2w6o3m6p2w6q2l6r3m6s3m6t1w6u1w6v3m6w1w6x4y6y3m6z3m7k3m7l3m7m2l7n2r7o1w7p3m7q3m7r4s7s3m7t3m7u2w7v3k7w1o7x3k7y3q202l3mcl4sal2lam3man3mao3map3mar3mas2lat4wau1vav3maw3say4waz2lbk2sbl3s'fof'6obo2lbp3mbq2xbr1tbs2lbu1zbv3mbz2wck4s202k3mcm4scn4sco4scp4scq5tcr4mcs3xct3xcu3xcv3xcw2l2m2tcy2lcz2ldl4sdm4sdn4sdo4sdp4sdq4sds4sdt4sdu4sdv4sdw4sdz3mek2wel2wem2wen2weo2wep2weq4mer2wes2wet2weu2wev2wew1wex1wey1wez1wfl3mfm3mfn3mfo3mfp3mfq3mfr3sfs3mft3mfu3mfv3mfw3mfz3m203k6o212m6m2dw2l2cq2l3t3m3u1w17s4s19m3m}'kerning'{cl{4qs5ku17sw5ou5qy5rw201ss5tw201ws}201s{201ss}201t{ckw4lwcmwcnwcowcpwclw4wu201ts}2k{201ts}2w{4qs5kw5os5qx5ru17sx5tx}2x{17sw5tw5ou5qu}2y{4qs5kw5os5qx5ru17sx5tx}'fof'-6o7t{ckuclucmucnucoucpu4lu5os5rs}3u{17su5tu5qs}3v{17su5tu5qs}7p{17sw5tw5qs}ck{4qs5ku17sw5ou5qy5rw201ss5tw201ws}4l{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cm{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cn{4qs5ku17sw5ou5qy5rw201ss5tw201ws}co{4qs5ku17sw5ou5qy5rw201ss5tw201ws}cp{4qs5ku17sw5ou5qy5rw201ss5tw201ws}6l{17su5tu5os5qw5rs}17s{2ktclvcmvcnvcovcpv4lv4wuckv}5o{ckwclwcmwcnwcowcpw4lw4wu}5q{ckyclycmycnycoycpy4ly4wu5ms}5r{cktcltcmtcntcotcpt4lt4ws}5t{2ktclvcmvcnvcovcpv4lv4wuckv}7q{cksclscmscnscoscps4ls}6p{17su5tu5qw5rs}ek{5qs5rs}el{17su5tu5os5qw5rs}em{17su5tu5os5qs5rs}en{17su5qs5rs}eo{5qs5rs}ep{17su5tu5os5qw5rs}es{5qs}et{17su5tu5qw5rs}eu{17su5tu5qs5rs}ev{5qs}6z{17sv5tv5os5qx5rs}fm{5os5qt5rs}fn{17sv5tv5os5qx5rs}fo{17sv5tv5os5qx5rs}fp{5os5qt5rs}fq{5os5qt5rs}7r{ckuclucmucnucoucpu4lu5os}fs{17sv5tv5os5qx5rs}ft{17ss5ts5qs}fu{17sw5tw5qs}fv{17sw5tw5qs}fw{17ss5ts5qs}fz{ckuclucmucnucoucpu4lu5os5rs}}}\"),\"Helvetica-Oblique\":c(\"{'widths'{k3p2q4mcx1w201n3r201o6o201s1q201t1q201u1q201w2l201x2l201y2l2k1w2l1w202m2n2n3r2o3r2p5t202q6o2r1n2s2l2t2l2u2r2v3u2w1w2x2l2y1w2z1w3k3r3l3r3m3r3n3r3o3r3p3r3q3r3r3r3s3r203t2l203u2l3v1w3w3u3x3u3y3u3z3r4k6p4l4m4m4m4n4s4o4s4p4m4q3x4r4y4s4s4t1w4u3m4v4m4w3r4x5n4y4s4z4y5k4m5l4y5m4s5n4m5o3x5p4s5q4m5r5y5s4m5t4m5u3x5v1w5w1w5x1w5y2z5z3r6k2l6l3r6m3r6n3m6o3r6p3r6q1w6r3r6s3r6t1q6u1q6v3m6w1q6x5n6y3r6z3r7k3r7l3r7m2l7n3m7o1w7p3r7q3m7r4s7s3m7t3m7u3m7v2l7w1u7x2l7y3u202l3rcl4mal2lam3ran3rao3rap3rar3ras2lat4tau2pav3raw3uay4taz2lbk2sbl3u'fof'6obo2lbp3rbr1wbs2lbu2obv3rbz3xck4m202k3rcm4mcn4mco4mcp4mcq6ocr4scs4mct4mcu4mcv4mcw1w2m2ncy1wcz1wdl4sdm4ydn4ydo4ydp4ydq4yds4ydt4sdu4sdv4sdw4sdz3xek3rel3rem3ren3reo3rep3req5ter3mes3ret3reu3rev3rew1wex1wey1wez1wfl3rfm3rfn3rfo3rfp3rfq3rfr3ufs3xft3rfu3rfv3rfw3rfz3m203k6o212m6o2dw2l2cq2l3t3r3u1w17s4m19m3r}'kerning'{5q{4wv}cl{4qs5kw5ow5qs17sv5tv}201t{2wu4w1k2yu}201x{2wu4wy2yu}17s{2ktclucmucnu4otcpu4lu4wycoucku}2w{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}2x{17sy5ty5oy5qs}2y{7qs4qz5k1m17sy5ow5qx5rsfsu5ty7tufzu}'fof'-6o7p{17sv5tv5ow}ck{4qs5kw5ow5qs17sv5tv}4l{4qs5kw5ow5qs17sv5tv}cm{4qs5kw5ow5qs17sv5tv}cn{4qs5kw5ow5qs17sv5tv}co{4qs5kw5ow5qs17sv5tv}cp{4qs5kw5ow5qs17sv5tv}6l{17sy5ty5ow}do{17st5tt}4z{17st5tt}7s{fst}dm{17st5tt}dn{17st5tt}5o{ckwclwcmwcnwcowcpw4lw4wv}dp{17st5tt}dq{17st5tt}7t{5ow}ds{17st5tt}5t{2ktclucmucnu4otcpu4lu4wycoucku}fu{17sv5tv5ow}6p{17sy5ty5ow5qs}ek{17sy5ty5ow}el{17sy5ty5ow}em{17sy5ty5ow}en{5ty}eo{17sy5ty5ow}ep{17sy5ty5ow}es{17sy5ty5qs}et{17sy5ty5ow5qs}eu{17sy5ty5ow5qs}ev{17sy5ty5ow5qs}6z{17sy5ty5ow5qs}fm{17sy5ty5ow5qs}fn{17sy5ty5ow5qs}fo{17sy5ty5ow5qs}fp{17sy5ty5qs}fq{17sy5ty5ow5qs}7r{5ow}fs{17sy5ty5ow5qs}ft{17sv5tv5ow}7m{5ow}fv{17sv5tv5ow}fw{17sv5tv5ow}}}\")}};e.events.push([\"addFont\",function(t){var e=t.font,r=l.Unicode[e.postScriptName];r&&(e.metadata.Unicode={},e.metadata.Unicode.widths=r.widths,e.metadata.Unicode.kerning=r.kerning);var n=h.Unicode[e.postScriptName];n&&(e.metadata.Unicode.encoding=n,e.encoding=n.codePages[0])}])}(E.API),\n/**\n * @license\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(t){for(var e=t.length,r=new Uint8Array(e),n=0;n<e;n++)r[n]=t.charCodeAt(n);return r};t.API.events.push([\"addFont\",function(r){var n=void 0,i=r.font,a=r.instance;if(!i.isStandardFont){if(void 0===a)throw new Error(\"Font does not exist in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");if(\"string\"!=typeof(n=!1===a.existsFileInVFS(i.postScriptName)?a.loadFile(i.postScriptName):a.getFileFromVFS(i.postScriptName)))throw new Error(\"Font is not stored as string-data in vFS, import fonts or remove declaration doc.addFont('\"+i.postScriptName+\"').\");!function(r,n){n=/^\\x00\\x01\\x00\\x00/.test(n)?e(n):e(u(n)),r.metadata=t.API.TTFFont.open(n),r.metadata.Unicode=r.metadata.Unicode||{encoding:{},kerning:{},widths:[]},r.metadata.glyIdsUsed=[0]}(i,n)}}])}(E),\n/** @license\n * Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){function e(){return(n.canvg?Promise.resolve(n.canvg):import(\"canvg\")).catch((function(t){return Promise.reject(new Error(\"Could not load canvg: \"+t))})).then((function(t){return t.default?t.default:t}))}E.API.addSvgAsImage=function(t,r,n,i,o,s,c,u){if(isNaN(r)||isNaN(n))throw a.error(\"jsPDF.addSvgAsImage: Invalid coordinates\",arguments),new Error(\"Invalid coordinates passed to jsPDF.addSvgAsImage\");if(isNaN(i)||isNaN(o))throw a.error(\"jsPDF.addSvgAsImage: Invalid measurements\",arguments),new Error(\"Invalid measurements (width and/or height) passed to jsPDF.addSvgAsImage\");var h=document.createElement(\"canvas\");h.width=i,h.height=o;var l=h.getContext(\"2d\");l.fillStyle=\"#fff\",l.fillRect(0,0,h.width,h.height);var f={ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0},d=this;return e().then((function(e){return e.fromString(l,t,f)}),(function(){return Promise.reject(new Error(\"Could not load canvg.\"))})).then((function(t){return t.render(f)})).then((function(){d.addImage(h.toDataURL(\"image/jpeg\",1),r,n,i,o,c,u)}))}}(),E.API.putTotalPages=function(t){var e,r=0;parseInt(this.internal.getFont().id.substr(1),10)<15?(e=new RegExp(t,\"g\"),r=this.internal.getNumberOfPages()):(e=new RegExp(this.pdfEscape16(t,this.internal.getFont()),\"g\"),r=this.pdfEscape16(this.internal.getNumberOfPages()+\"\",this.internal.getFont()));for(var n=1;n<=this.internal.getNumberOfPages();n++)for(var i=0;i<this.internal.pages[n].length;i++)this.internal.pages[n][i]=this.internal.pages[n][i].replace(e,r);return this},E.API.viewerPreferences=function(e,r){var n;e=e||{},r=r||!1;var i,a,o,s={HideToolbar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideMenubar:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},HideWindowUI:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},FitWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},CenterWindow:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.3},DisplayDocTitle:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.4},NonFullScreenPageMode:{defaultValue:\"UseNone\",value:\"UseNone\",type:\"name\",explicitSet:!1,valueSet:[\"UseNone\",\"UseOutlines\",\"UseThumbs\",\"UseOC\"],pdfVersion:1.3},Direction:{defaultValue:\"L2R\",value:\"L2R\",type:\"name\",explicitSet:!1,valueSet:[\"L2R\",\"R2L\"],pdfVersion:1.3},ViewArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},ViewClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintArea:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintClip:{defaultValue:\"CropBox\",value:\"CropBox\",type:\"name\",explicitSet:!1,valueSet:[\"MediaBox\",\"CropBox\",\"TrimBox\",\"BleedBox\",\"ArtBox\"],pdfVersion:1.4},PrintScaling:{defaultValue:\"AppDefault\",value:\"AppDefault\",type:\"name\",explicitSet:!1,valueSet:[\"AppDefault\",\"None\"],pdfVersion:1.6},Duplex:{defaultValue:\"\",value:\"none\",type:\"name\",explicitSet:!1,valueSet:[\"Simplex\",\"DuplexFlipShortEdge\",\"DuplexFlipLongEdge\",\"none\"],pdfVersion:1.7},PickTrayByPDFSize:{defaultValue:!1,value:!1,type:\"boolean\",explicitSet:!1,valueSet:[!0,!1],pdfVersion:1.7},PrintPageRange:{defaultValue:\"\",value:\"\",type:\"array\",explicitSet:!1,valueSet:null,pdfVersion:1.7},NumCopies:{defaultValue:1,value:1,type:\"integer\",explicitSet:!1,valueSet:null,pdfVersion:1.7}},c=Object.keys(s),u=[],h=0,l=0,f=0;function d(t,e){var r,n=!1;for(r=0;r<t.length;r+=1)t[r]===e&&(n=!0);return n}if(void 0===this.internal.viewerpreferences&&(this.internal.viewerpreferences={},this.internal.viewerpreferences.configuration=JSON.parse(JSON.stringify(s)),this.internal.viewerpreferences.isSubscribed=!1),n=this.internal.viewerpreferences.configuration,\"reset\"===e||!0===r){var p=c.length;for(f=0;f<p;f+=1)n[c[f]].value=n[c[f]].defaultValue,n[c[f]].explicitSet=!1}if(\"object\"===t(e))for(a in e)if(o=e[a],d(c,a)&&void 0!==o){if(\"boolean\"===n[a].type&&\"boolean\"==typeof o)n[a].value=o;else if(\"name\"===n[a].type&&d(n[a].valueSet,o))n[a].value=o;else if(\"integer\"===n[a].type&&Number.isInteger(o))n[a].value=o;else if(\"array\"===n[a].type){for(h=0;h<o.length;h+=1)if(i=!0,1===o[h].length&&\"number\"==typeof o[h][0])u.push(String(o[h]-1));else if(o[h].length>1){for(l=0;l<o[h].length;l+=1)\"number\"!=typeof o[h][l]&&(i=!1);!0===i&&u.push([o[h][0]-1,o[h][1]-1].join(\" \"))}n[a].value=\"[\"+u.join(\" \")+\"]\"}else n[a].value=n[a].defaultValue;n[a].explicitSet=!0}return!1===this.internal.viewerpreferences.isSubscribed&&(this.internal.events.subscribe(\"putCatalog\",(function(){var t,e=[];for(t in n)!0===n[t].explicitSet&&(\"name\"===n[t].type?e.push(\"/\"+t+\" /\"+n[t].value):e.push(\"/\"+t+\" \"+n[t].value));0!==e.length&&this.internal.write(\"/ViewerPreferences\\n<<\\n\"+e.join(\"\\n\")+\"\\n>>\")})),this.internal.viewerpreferences.isSubscribed=!0),this.internal.viewerpreferences.configuration=n,this},\n/** ====================================================================\n * @license\n * jsPDF XMP metadata plugin\n * Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\nfunction(t){var e=function(){var t='<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"><rdf:Description rdf:about=\"\" xmlns:jspdf=\"'+this.internal.__metadata__.namespaceuri+'\"><jspdf:metadata>',e=unescape(encodeURIComponent('<x:xmpmeta xmlns:x=\"adobe:ns:meta/\">')),r=unescape(encodeURIComponent(t)),n=unescape(encodeURIComponent(this.internal.__metadata__.metadata)),i=unescape(encodeURIComponent(\"</jspdf:metadata></rdf:Description></rdf:RDF>\")),a=unescape(encodeURIComponent(\"</x:xmpmeta>\")),o=r.length+n.length+i.length+e.length+a.length;this.internal.__metadata__.metadata_object_number=this.internal.newObject(),this.internal.write(\"<< /Type /Metadata /Subtype /XML /Length \"+o+\" >>\"),this.internal.write(\"stream\"),this.internal.write(e+r+n+i+a),this.internal.write(\"endstream\"),this.internal.write(\"endobj\")},r=function(){this.internal.__metadata__.metadata_object_number&&this.internal.write(\"/Metadata \"+this.internal.__metadata__.metadata_object_number+\" 0 R\")};t.addMetadata=function(t,n){return void 0===this.internal.__metadata__&&(this.internal.__metadata__={metadata:t,namespaceuri:n||\"http://jspdf.default.namespaceuri/\"},this.internal.events.subscribe(\"putCatalog\",r),this.internal.events.subscribe(\"postPutResources\",e)),this}}(E.API),function(t){var e=t.API,r=e.pdfEscape16=function(t,e){for(var r,n=e.metadata.Unicode.widths,i=[\"\",\"0\",\"00\",\"000\",\"0000\"],a=[\"\"],o=0,s=t.length;o<s;++o){if(r=e.metadata.characterToGlyph(t.charCodeAt(o)),e.metadata.glyIdsUsed.push(r),e.metadata.toUnicode[r]=t.charCodeAt(o),-1==n.indexOf(r)&&(n.push(r),n.push([parseInt(e.metadata.widthOfGlyph(r),10)])),\"0\"==r)return a.join(\"\");r=r.toString(16),a.push(i[4-r.length],r)}return a.join(\"\")},n=function(t){var e,r,n,i,a,o,s;for(a=\"/CIDInit /ProcSet findresource begin\\n12 dict begin\\nbegincmap\\n/CIDSystemInfo <<\\n /Registry (Adobe)\\n /Ordering (UCS)\\n /Supplement 0\\n>> def\\n/CMapName /Adobe-Identity-UCS def\\n/CMapType 2 def\\n1 begincodespacerange\\n<0000><ffff>\\nendcodespacerange\",n=[],o=0,s=(r=Object.keys(t).sort((function(t,e){return t-e}))).length;o<s;o++)e=r[o],n.length>=100&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\",n=[]),void 0!==t[e]&&null!==t[e]&&\"function\"==typeof t[e].toString&&(i=(\"0000\"+t[e].toString(16)).slice(-4),e=(\"0000\"+(+e).toString(16)).slice(-4),n.push(\"<\"+e+\"><\"+i+\">\"));return n.length&&(a+=\"\\n\"+n.length+\" beginbfchar\\n\"+n.join(\"\\n\")+\"\\nendbfchar\\n\"),a+=\"endcmap\\nCMapName currentdict /CMap defineresource pop\\nend\\nend\"};e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"Identity-H\"===r.encoding){for(var s=r.metadata.Unicode.widths,c=r.metadata.subset.encode(r.metadata.glyIdsUsed,1),u=\"\",h=0;h<c.length;h++)u+=String.fromCharCode(c[h]);var l=a();o({data:u,addLength1:!0,objectId:l}),i(\"endobj\");var f=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:f}),i(\"endobj\");var d=a();i(\"<<\"),i(\"/Type /FontDescriptor\"),i(\"/FontName /\"+F(r.fontName)),i(\"/FontFile2 \"+l+\" 0 R\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/Flags \"+r.metadata.flags),i(\"/StemV \"+r.metadata.stemV),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\">>\"),i(\"endobj\");var p=a();i(\"<<\"),i(\"/Type /Font\"),i(\"/BaseFont /\"+F(r.fontName)),i(\"/FontDescriptor \"+d+\" 0 R\"),i(\"/W \"+t.API.PDFObject.convert(s)),i(\"/CIDToGIDMap /Identity\"),i(\"/DW 1000\"),i(\"/Subtype /CIDFontType2\"),i(\"/CIDSystemInfo\"),i(\"<<\"),i(\"/Supplement 0\"),i(\"/Registry (Adobe)\"),i(\"/Ordering (\"+r.encoding+\")\"),i(\">>\"),i(\">>\"),i(\"endobj\"),r.objectNumber=a(),i(\"<<\"),i(\"/Type /Font\"),i(\"/Subtype /Type0\"),i(\"/ToUnicode \"+f+\" 0 R\"),i(\"/BaseFont /\"+F(r.fontName)),i(\"/Encoding /\"+r.encoding),i(\"/DescendantFonts [\"+p+\" 0 R]\"),i(\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);e.events.push([\"putFont\",function(e){!function(e){var r=e.font,i=e.out,a=e.newObject,o=e.putStream;if(r.metadata instanceof t.API.TTFFont&&\"WinAnsiEncoding\"===r.encoding){for(var s=r.metadata.rawData,c=\"\",u=0;u<s.length;u++)c+=String.fromCharCode(s[u]);var h=a();o({data:c,addLength1:!0,objectId:h}),i(\"endobj\");var l=a();o({data:n(r.metadata.toUnicode),addLength1:!0,objectId:l}),i(\"endobj\");var f=a();i(\"<<\"),i(\"/Descent \"+r.metadata.decender),i(\"/CapHeight \"+r.metadata.capHeight),i(\"/StemV \"+r.metadata.stemV),i(\"/Type /FontDescriptor\"),i(\"/FontFile2 \"+h+\" 0 R\"),i(\"/Flags 96\"),i(\"/FontBBox \"+t.API.PDFObject.convert(r.metadata.bbox)),i(\"/FontName /\"+F(r.fontName)),i(\"/ItalicAngle \"+r.metadata.italicAngle),i(\"/Ascent \"+r.metadata.ascender),i(\">>\"),i(\"endobj\"),r.objectNumber=a();for(var d=0;d<r.metadata.hmtx.widths.length;d++)r.metadata.hmtx.widths[d]=parseInt(r.metadata.hmtx.widths[d]*(1e3/r.metadata.head.unitsPerEm));i(\"<</Subtype/TrueType/Type/Font/ToUnicode \"+l+\" 0 R/BaseFont/\"+F(r.fontName)+\"/FontDescriptor \"+f+\" 0 R/Encoding/\"+r.encoding+\" /FirstChar 29 /LastChar 255 /Widths \"+t.API.PDFObject.convert(r.metadata.hmtx.widths)+\">>\"),i(\"endobj\"),r.isAlreadyPutted=!0}}(e)}]);var i=function(t){var e,n=t.text||\"\",i=t.x,a=t.y,o=t.options||{},s=t.mutex||{},c=s.pdfEscape,u=s.activeFontKey,h=s.fonts,l=u,f=\"\",d=0,p=\"\",g=h[l].encoding;if(\"Identity-H\"!==h[l].encoding)return{text:n,x:i,y:a,options:o,mutex:s};for(p=n,l=u,Array.isArray(n)&&(p=n[0]),d=0;d<p.length;d+=1)h[l].metadata.hasOwnProperty(\"cmap\")&&(e=h[l].metadata.cmap.unicode.codeMap[p[d].charCodeAt(0)]),e||p[d].charCodeAt(0)<256&&h[l].metadata.hasOwnProperty(\"Unicode\")?f+=p[d]:f+=\"\";var m=\"\";return parseInt(l.slice(1))<14||\"WinAnsiEncoding\"===g?m=c(f,l).split(\"\").map((function(t){return t.charCodeAt(0).toString(16)})).join(\"\"):\"Identity-H\"===g&&(m=r(f,h[l])),s.isHex=!0,{text:m,x:i,y:a,options:o,mutex:s}};e.events.push([\"postProcessText\",function(t){var e=t.text||\"\",r=[],n={text:e,x:t.x,y:t.y,options:t.options,mutex:t.mutex};if(Array.isArray(e)){var a=0;for(a=0;a<e.length;a+=1)Array.isArray(e[a])&&3===e[a].length?r.push([i(Object.assign({},n,{text:e[a][0]})).text,e[a][1],e[a][2]]):r.push(i(Object.assign({},n,{text:e[a]})).text);t.text=r}else t.text=i(Object.assign({},n,{text:e})).text}])}(E),\n/**\n * @license\n * jsPDF virtual FileSystem functionality\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\nfunction(t){var e=function(){return void 0===this.internal.vFS&&(this.internal.vFS={}),!0};t.existsFileInVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]},t.addFileToVFS=function(t,r){return e.call(this),this.internal.vFS[t]=r,this},t.getFileFromVFS=function(t){return e.call(this),void 0!==this.internal.vFS[t]?this.internal.vFS[t]:null}}(E.API),\n/**\n * @license\n * Unicode Bidi Engine based on the work of Alex Shensis (@asthensis)\n * MIT License\n */\nfunction(t){t.__bidiEngine__=t.prototype.__bidiEngine__=function(t){var r,n,i,a,o,s,c,u=e,h=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],l=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f={L:0,R:1,EN:2,AN:3,N:4,B:5,S:6},d={0:0,5:1,6:2,7:3,32:4,251:5,254:6,255:7},p=[\"(\",\")\",\"(\",\"<\",\">\",\"<\",\"[\",\"]\",\"[\",\"{\",\"}\",\"{\",\"«\",\"»\",\"«\",\"‹\",\"›\",\"‹\",\"â…\",\"â†\",\"â…\",\"â½\",\"â¾\",\"â½\",\"â‚\",\"â‚Ž\",\"â‚\",\"≤\",\"≥\",\"≤\",\"〈\",\"〉\",\"〈\",\"ï¹™\",\"﹚\",\"ï¹™\",\"ï¹›\",\"﹜\",\"ï¹›\",\"ï¹\",\"﹞\",\"ï¹\",\"﹤\",\"ï¹¥\",\"﹤\"],g=new RegExp(/^([1-4|9]|1[0-9]|2[0-9]|3[0168]|4[04589]|5[012]|7[78]|159|16[0-9]|17[0-2]|21[569]|22[03489]|250)$/),m=!1,v=0;this.__bidiEngine__={};var b=function(t){var e=t.charCodeAt(),r=e>>8,n=d[r];return void 0!==n?u[256*n+(255&e)]:252===r||253===r?\"AL\":g.test(r)?\"L\":8===r?\"R\":\"N\"},y=function(t){for(var e,r=0;r<t.length;r++){if(\"L\"===(e=b(t.charAt(r))))return!1;if(\"R\"===e)return!0}return!1},w=function(t,e,o,s){var c,u,h,l,f=e[s];switch(f){case\"L\":case\"R\":m=!1;break;case\"N\":case\"AN\":break;case\"EN\":m&&(f=\"AN\");break;case\"AL\":m=!0,f=\"R\";break;case\"WS\":f=\"N\";break;case\"CS\":s<1||s+1>=e.length||\"EN\"!==(c=o[s-1])&&\"AN\"!==c||\"EN\"!==(u=e[s+1])&&\"AN\"!==u?f=\"N\":m&&(u=\"AN\"),f=u===c?u:\"N\";break;case\"ES\":f=\"EN\"===(c=s>0?o[s-1]:\"B\")&&s+1<e.length&&\"EN\"===e[s+1]?\"EN\":\"N\";break;case\"ET\":if(s>0&&\"EN\"===o[s-1]){f=\"EN\";break}if(m){f=\"N\";break}for(h=s+1,l=e.length;h<l&&\"ET\"===e[h];)h++;f=h<l&&\"EN\"===e[h]?\"EN\":\"N\";break;case\"NSM\":if(i&&!a){for(l=e.length,h=s+1;h<l&&\"NSM\"===e[h];)h++;if(h<l){var d=t[s],p=d>=1425&&d<=2303||64286===d;if(c=e[h],p&&(\"R\"===c||\"AL\"===c)){f=\"R\";break}}}f=s<1||\"B\"===(c=e[s-1])?\"N\":o[s-1];break;case\"B\":m=!1,r=!0,f=v;break;case\"S\":n=!0,f=\"N\";break;case\"LRE\":case\"RLE\":case\"LRO\":case\"RLO\":case\"PDF\":m=!1;break;case\"BN\":f=\"N\"}return f},N=function(t,e,r){var n=t.split(\"\");return r&&L(n,r,{hiLevel:v}),n.reverse(),e&&e.reverse(),n.join(\"\")},L=function(t,e,i){var a,o,s,c,u,d=-1,p=t.length,g=0,y=[],N=v?l:h,L=[];for(m=!1,r=!1,n=!1,o=0;o<p;o++)L[o]=b(t[o]);for(s=0;s<p;s++){if(u=g,y[s]=w(t,L,y,s),a=240&(g=N[u][f[y[s]]]),g&=15,e[s]=c=N[g][5],a>0)if(16===a){for(o=d;o<s;o++)e[o]=1;d=-1}else d=-1;if(N[g][6])-1===d&&(d=s);else if(d>-1){for(o=d;o<s;o++)e[o]=c;d=-1}\"B\"===L[s]&&(e[s]=0),i.hiLevel|=c}n&&function(t,e,r){for(var n=0;n<r;n++)if(\"S\"===t[n]){e[n]=v;for(var i=n-1;i>=0&&\"WS\"===t[i];i--)e[i]=v}}(L,e,p)},A=function(t,e,n,i,a){if(!(a.hiLevel<t)){if(1===t&&1===v&&!r)return e.reverse(),void(n&&n.reverse());for(var o,s,c,u,h=e.length,l=0;l<h;){if(i[l]>=t){for(c=l+1;c<h&&i[c]>=t;)c++;for(u=l,s=c-1;u<s;u++,s--)o=e[u],e[u]=e[s],e[s]=o,n&&(o=n[u],n[u]=n[s],n[s]=o);l=c}l++}}},x=function(t,e,r){var n=t.split(\"\"),i={hiLevel:v};return r||(r=[]),L(n,r,i),function(t,e,r){if(0!==r.hiLevel&&c)for(var n,i=0;i<t.length;i++)1===e[i]&&(n=p.indexOf(t[i]))>=0&&(t[i]=p[n+1])}(n,r,i),A(2,n,e,r,i),A(1,n,e,r,i),n.join(\"\")};return this.__bidiEngine__.doBidiReorder=function(t,e,r){if(function(t,e){if(e)for(var r=0;r<t.length;r++)e[r]=r;void 0===a&&(a=y(t)),void 0===s&&(s=y(t))}(t,e),i||!o||s)if(i&&o&&a^s)v=a?1:0,t=N(t,e,r);else if(!i&&o&&s)v=a?1:0,t=x(t,e,r),t=N(t,e);else if(!i||a||o||s){if(i&&!o&&a^s)t=N(t,e),a?(v=0,t=x(t,e,r)):(v=1,t=x(t,e,r),t=N(t,e));else if(i&&a&&!o&&s)v=1,t=x(t,e,r),t=N(t,e);else if(!i&&!o&&a^s){var n=c;a?(v=1,t=x(t,e,r),v=0,c=!1,t=x(t,e,r),c=n):(v=0,t=x(t,e,r),t=N(t,e),v=1,c=!1,t=x(t,e,r),c=n,t=N(t,e))}}else v=0,t=x(t,e,r);else v=a?1:0,t=x(t,e,r);return t},this.__bidiEngine__.setOptions=function(t){t&&(i=t.isInputVisual,o=t.isOutputVisual,a=t.isInputRtl,s=t.isOutputRtl,c=t.isSymmetricSwapping)},this.__bidiEngine__.setOptions(t),this.__bidiEngine__};var e=[\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"S\",\"B\",\"S\",\"WS\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"B\",\"B\",\"S\",\"WS\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"B\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"CS\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"L\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"ET\",\"ET\",\"EN\",\"EN\",\"N\",\"L\",\"N\",\"N\",\"N\",\"EN\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"NSM\",\"R\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"N\",\"N\",\"AL\",\"ET\",\"ET\",\"AL\",\"CS\",\"AL\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"AN\",\"ET\",\"AN\",\"AN\",\"AL\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AN\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"AL\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"NSM\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"R\",\"R\",\"N\",\"N\",\"N\",\"N\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"WS\",\"BN\",\"BN\",\"BN\",\"L\",\"R\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"B\",\"LRE\",\"RLE\",\"PDF\",\"LRO\",\"RLO\",\"CS\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"WS\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"N\",\"LRI\",\"RLI\",\"FSI\",\"PDI\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"BN\",\"EN\",\"L\",\"N\",\"N\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"L\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"R\",\"NSM\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"ES\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"N\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"N\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"R\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"NSM\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"CS\",\"N\",\"CS\",\"N\",\"N\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"N\",\"N\",\"ES\",\"ES\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"AL\",\"N\",\"N\",\"BN\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"ES\",\"CS\",\"ES\",\"CS\",\"CS\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"EN\",\"CS\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"L\",\"L\",\"L\",\"N\",\"N\",\"L\",\"L\",\"L\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"ET\",\"ET\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\",\"N\"],r=new t.__bidiEngine__({isInputVisual:!0});t.API.events.push([\"postProcessText\",function(t){var e=t.text,n=(t.x,t.y,t.options||{}),i=(t.mutex,n.lang,[]);if(n.isInputVisual=\"boolean\"!=typeof n.isInputVisual||n.isInputVisual,r.setOptions(n),\"[object Array]\"===Object.prototype.toString.call(e)){var a=0;for(i=[],a=0;a<e.length;a+=1)\"[object Array]\"===Object.prototype.toString.call(e[a])?i.push([r.doBidiReorder(e[a][0]),e[a][1],e[a][2]]):i.push([r.doBidiReorder(e[a])]);t.text=i}else t.text=r.doBidiReorder(e);r.setOptions({isInputVisual:!0})}])}(E),E.API.TTFFont=function(){function t(t){var e;if(this.rawData=t,e=this.contents=new ne(t),this.contents.pos=4,\"ttcf\"===e.readString(4))throw new Error(\"TTCF not supported.\");e.pos=0,this.parse(),this.subset=new Le(this),this.registerTTF()}return t.open=function(e){return new t(e)},t.prototype.parse=function(){return this.directory=new ie(this.contents),this.head=new se(this),this.name=new pe(this),this.cmap=new ue(this),this.toUnicode={},this.hhea=new he(this),this.maxp=new ge(this),this.hmtx=new me(this),this.post=new fe(this),this.os2=new le(this),this.loca=new Ne(this),this.glyf=new be(this),this.ascender=this.os2.exists&&this.os2.ascender||this.hhea.ascender,this.decender=this.os2.exists&&this.os2.decender||this.hhea.decender,this.lineGap=this.os2.exists&&this.os2.lineGap||this.hhea.lineGap,this.bbox=[this.head.xMin,this.head.yMin,this.head.xMax,this.head.yMax]},t.prototype.registerTTF=function(){var t,e,r,n,i;if(this.scaleFactor=1e3/this.head.unitsPerEm,this.bbox=function(){var e,r,n,i;for(i=[],e=0,r=(n=this.bbox).length;e<r;e++)t=n[e],i.push(Math.round(t*this.scaleFactor));return i}.call(this),this.stemV=0,this.post.exists?(r=255&(n=this.post.italic_angle),0!=(32768&(e=n>>16))&&(e=-(1+(65535^e))),this.italicAngle=+(e+\".\"+r)):this.italicAngle=0,this.ascender=Math.round(this.ascender*this.scaleFactor),this.decender=Math.round(this.decender*this.scaleFactor),this.lineGap=Math.round(this.lineGap*this.scaleFactor),this.capHeight=this.os2.exists&&this.os2.capHeight||this.ascender,this.xHeight=this.os2.exists&&this.os2.xHeight||0,this.familyClass=(this.os2.exists&&this.os2.familyClass||0)>>8,this.isSerif=1===(i=this.familyClass)||2===i||3===i||4===i||5===i||7===i,this.isScript=10===this.familyClass,this.flags=0,this.post.isFixedPitch&&(this.flags|=1),this.isSerif&&(this.flags|=2),this.isScript&&(this.flags|=8),0!==this.italicAngle&&(this.flags|=64),this.flags|=32,!this.cmap.unicode)throw new Error(\"No unicode cmap for font\")},t.prototype.characterToGlyph=function(t){var e;return(null!=(e=this.cmap.unicode)?e.codeMap[t]:void 0)||0},t.prototype.widthOfGlyph=function(t){var e;return e=1e3/this.head.unitsPerEm,this.hmtx.forGlyph(t).advance*e},t.prototype.widthOfString=function(t,e,r){var n,i,a,o;for(a=0,i=0,o=(t=\"\"+t).length;0<=o?i<o:i>o;i=0<=o?++i:--i)n=t.charCodeAt(i),a+=this.widthOfGlyph(this.characterToGlyph(n))+r*(1e3/e)||0;return a*(e/1e3)},t.prototype.lineHeight=function(t,e){var r;return null==e&&(e=!1),r=e?this.lineGap:0,(this.ascender+r-this.decender)/1e3*t},t}();var re,ne=function(){function t(t){this.data=null!=t?t:[],this.pos=0,this.length=this.data.length}return t.prototype.readByte=function(){return this.data[this.pos++]},t.prototype.writeByte=function(t){return this.data[this.pos++]=t},t.prototype.readUInt32=function(){return 16777216*this.readByte()+(this.readByte()<<16)+(this.readByte()<<8)+this.readByte()},t.prototype.writeUInt32=function(t){return this.writeByte(t>>>24&255),this.writeByte(t>>16&255),this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt32=function(){var t;return(t=this.readUInt32())>=2147483648?t-4294967296:t},t.prototype.writeInt32=function(t){return t<0&&(t+=4294967296),this.writeUInt32(t)},t.prototype.readUInt16=function(){return this.readByte()<<8|this.readByte()},t.prototype.writeUInt16=function(t){return this.writeByte(t>>8&255),this.writeByte(255&t)},t.prototype.readInt16=function(){var t;return(t=this.readUInt16())>=32768?t-65536:t},t.prototype.writeInt16=function(t){return t<0&&(t+=65536),this.writeUInt16(t)},t.prototype.readString=function(t){var e,r;for(r=[],e=0;0<=t?e<t:e>t;e=0<=t?++e:--e)r[e]=String.fromCharCode(this.readByte());return r.join(\"\")},t.prototype.writeString=function(t){var e,r,n;for(n=[],e=0,r=t.length;0<=r?e<r:e>r;e=0<=r?++e:--e)n.push(this.writeByte(t.charCodeAt(e)));return n},t.prototype.readShort=function(){return this.readInt16()},t.prototype.writeShort=function(t){return this.writeInt16(t)},t.prototype.readLongLong=function(){var t,e,r,n,i,a,o,s;return t=this.readByte(),e=this.readByte(),r=this.readByte(),n=this.readByte(),i=this.readByte(),a=this.readByte(),o=this.readByte(),s=this.readByte(),128&t?-1*(72057594037927940*(255^t)+281474976710656*(255^e)+1099511627776*(255^r)+4294967296*(255^n)+16777216*(255^i)+65536*(255^a)+256*(255^o)+(255^s)+1):72057594037927940*t+281474976710656*e+1099511627776*r+4294967296*n+16777216*i+65536*a+256*o+s},t.prototype.writeLongLong=function(t){var e,r;return e=Math.floor(t/4294967296),r=4294967295&t,this.writeByte(e>>24&255),this.writeByte(e>>16&255),this.writeByte(e>>8&255),this.writeByte(255&e),this.writeByte(r>>24&255),this.writeByte(r>>16&255),this.writeByte(r>>8&255),this.writeByte(255&r)},t.prototype.readInt=function(){return this.readInt32()},t.prototype.writeInt=function(t){return this.writeInt32(t)},t.prototype.read=function(t){var e,r;for(e=[],r=0;0<=t?r<t:r>t;r=0<=t?++r:--r)e.push(this.readByte());return e},t.prototype.write=function(t){var e,r,n,i;for(i=[],r=0,n=t.length;r<n;r++)e=t[r],i.push(this.writeByte(e));return i},t}(),ie=function(){var t;function e(t){var e,r,n;for(this.scalarType=t.readInt(),this.tableCount=t.readShort(),this.searchRange=t.readShort(),this.entrySelector=t.readShort(),this.rangeShift=t.readShort(),this.tables={},r=0,n=this.tableCount;0<=n?r<n:r>n;r=0<=n?++r:--r)e={tag:t.readString(4),checksum:t.readInt(),offset:t.readInt(),length:t.readInt()},this.tables[e.tag]=e}return e.prototype.encode=function(e){var r,n,i,a,o,s,c,u,h,l,f,d,p;for(p in f=Object.keys(e).length,s=Math.log(2),h=16*Math.floor(Math.log(f)/s),a=Math.floor(h/s),u=16*f-h,(n=new ne).writeInt(this.scalarType),n.writeShort(f),n.writeShort(h),n.writeShort(a),n.writeShort(u),i=16*f,c=n.pos+i,o=null,d=[],e)for(l=e[p],n.writeString(p),n.writeInt(t(l)),n.writeInt(c),n.writeInt(l.length),d=d.concat(l),\"head\"===p&&(o=c),c+=l.length;c%4;)d.push(0),c++;return n.write(d),r=2981146554-t(n.data),n.pos=o+8,n.writeUInt32(r),n.data},t=function(t){var e,r,n,i;for(t=ve.call(t);t.length%4;)t.push(0);for(n=new ne(t),r=0,e=0,i=t.length;e<i;e=e+=4)r+=n.readUInt32();return 4294967295&r},e}(),ae={}.hasOwnProperty,oe=function(t,e){for(var r in e)ae.call(e,r)&&(t[r]=e[r]);function n(){this.constructor=t}return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t};re=function(){function t(t){var e;this.file=t,e=this.file.directory.tables[this.tag],this.exists=!!e,e&&(this.offset=e.offset,this.length=e.length,this.parse(this.file.contents))}return t.prototype.parse=function(){},t.prototype.encode=function(){},t.prototype.raw=function(){return this.exists?(this.file.contents.pos=this.offset,this.file.contents.read(this.length)):null},t}();var se=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"head\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.revision=t.readInt(),this.checkSumAdjustment=t.readInt(),this.magicNumber=t.readInt(),this.flags=t.readShort(),this.unitsPerEm=t.readShort(),this.created=t.readLongLong(),this.modified=t.readLongLong(),this.xMin=t.readShort(),this.yMin=t.readShort(),this.xMax=t.readShort(),this.yMax=t.readShort(),this.macStyle=t.readShort(),this.lowestRecPPEM=t.readShort(),this.fontDirectionHint=t.readShort(),this.indexToLocFormat=t.readShort(),this.glyphDataFormat=t.readShort()},e.prototype.encode=function(t){var e;return(e=new ne).writeInt(this.version),e.writeInt(this.revision),e.writeInt(this.checkSumAdjustment),e.writeInt(this.magicNumber),e.writeShort(this.flags),e.writeShort(this.unitsPerEm),e.writeLongLong(this.created),e.writeLongLong(this.modified),e.writeShort(this.xMin),e.writeShort(this.yMin),e.writeShort(this.xMax),e.writeShort(this.yMax),e.writeShort(this.macStyle),e.writeShort(this.lowestRecPPEM),e.writeShort(this.fontDirectionHint),e.writeShort(t),e.writeShort(this.glyphDataFormat),e.data},e}(),ce=function(){function t(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b;switch(this.platformID=t.readUInt16(),this.encodingID=t.readShort(),this.offset=e+t.readInt(),h=t.pos,t.pos=this.offset,this.format=t.readUInt16(),this.length=t.readUInt16(),this.language=t.readUInt16(),this.isUnicode=3===this.platformID&&1===this.encodingID&&4===this.format||0===this.platformID&&4===this.format,this.codeMap={},this.format){case 0:for(s=0;s<256;++s)this.codeMap[s]=t.readByte();break;case 4:for(f=t.readUInt16(),l=f/2,t.pos+=6,i=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),t.pos+=2,p=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),c=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),u=function(){var e,r;for(r=[],s=e=0;0<=l?e<l:e>l;s=0<=l?++e:--e)r.push(t.readUInt16());return r}(),n=(this.length-t.pos+this.offset)/2,o=function(){var e,r;for(r=[],s=e=0;0<=n?e<n:e>n;s=0<=n?++e:--e)r.push(t.readUInt16());return r}(),s=m=0,b=i.length;m<b;s=++m)for(g=i[s],r=v=d=p[s];d<=g?v<=g:v>=g;r=d<=g?++v:--v)0===u[s]?a=r+c[s]:0!==(a=o[u[s]/2+(r-d)-(l-s)]||0)&&(a+=c[s]),this.codeMap[r]=65535&a}t.pos=h}return t.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m,v,b,y,w,N,L,A,x,S,_,P,k,I,F,C,j,O,B,M,E,q,D,R,T,U,z,H,W,V,G,Y;switch(I=new ne,a=Object.keys(t).sort((function(t,e){return t-e})),e){case\"macroman\":for(p=0,g=function(){var t=[];for(d=0;d<256;++d)t.push(0);return t}(),v={0:0},i={},F=0,B=a.length;F<B;F++)null==v[W=t[n=a[F]]]&&(v[W]=++p),i[n]={old:t[n],new:v[t[n]]},g[n]=v[t[n]];return I.writeUInt16(1),I.writeUInt16(0),I.writeUInt32(12),I.writeUInt16(0),I.writeUInt16(262),I.writeUInt16(0),I.write(g),{charMap:i,subtable:I.data,maxGlyphID:p+1};case\"unicode\":for(P=[],h=[],b=0,v={},r={},m=c=null,C=0,M=a.length;C<M;C++)null==v[w=t[n=a[C]]]&&(v[w]=++b),r[n]={old:w,new:v[w]},o=v[w]-n,null!=m&&o===c||(m&&h.push(m),P.push(n),c=o),m=n;for(m&&h.push(m),h.push(65535),P.push(65535),S=2*(x=P.length),A=2*Math.pow(Math.log(x)/Math.LN2,2),l=Math.log(A/2)/Math.LN2,L=2*x-A,s=[],N=[],f=[],d=j=0,E=P.length;j<E;d=++j){if(_=P[d],u=h[d],65535===_){s.push(0),N.push(0);break}if(_-(k=r[_].new)>=32768)for(s.push(0),N.push(2*(f.length+x-d)),n=O=_;_<=u?O<=u:O>=u;n=_<=u?++O:--O)f.push(r[n].new);else s.push(k-_),N.push(0)}for(I.writeUInt16(3),I.writeUInt16(1),I.writeUInt32(12),I.writeUInt16(4),I.writeUInt16(16+8*x+2*f.length),I.writeUInt16(0),I.writeUInt16(S),I.writeUInt16(A),I.writeUInt16(l),I.writeUInt16(L),z=0,q=h.length;z<q;z++)n=h[z],I.writeUInt16(n);for(I.writeUInt16(0),H=0,D=P.length;H<D;H++)n=P[H],I.writeUInt16(n);for(V=0,R=s.length;V<R;V++)o=s[V],I.writeUInt16(o);for(G=0,T=N.length;G<T;G++)y=N[G],I.writeUInt16(y);for(Y=0,U=f.length;Y<U;Y++)p=f[Y],I.writeUInt16(p);return{charMap:r,subtable:I.data,maxGlyphID:b+1}}},t}(),ue=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"cmap\",e.prototype.parse=function(t){var e,r,n;for(t.pos=this.offset,this.version=t.readUInt16(),n=t.readUInt16(),this.tables=[],this.unicode=null,r=0;0<=n?r<n:r>n;r=0<=n?++r:--r)e=new ce(t,this.offset),this.tables.push(e),e.isUnicode&&null==this.unicode&&(this.unicode=e);return!0},e.encode=function(t,e){var r,n;return null==e&&(e=\"macroman\"),r=ce.encode(t,e),(n=new ne).writeUInt16(0),n.writeUInt16(1),r.table=n.data.concat(r.subtable),r},e}(),he=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"hhea\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.ascender=t.readShort(),this.decender=t.readShort(),this.lineGap=t.readShort(),this.advanceWidthMax=t.readShort(),this.minLeftSideBearing=t.readShort(),this.minRightSideBearing=t.readShort(),this.xMaxExtent=t.readShort(),this.caretSlopeRise=t.readShort(),this.caretSlopeRun=t.readShort(),this.caretOffset=t.readShort(),t.pos+=8,this.metricDataFormat=t.readShort(),this.numberOfMetrics=t.readUInt16()},e}(),le=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"OS/2\",e.prototype.parse=function(t){if(t.pos=this.offset,this.version=t.readUInt16(),this.averageCharWidth=t.readShort(),this.weightClass=t.readUInt16(),this.widthClass=t.readUInt16(),this.type=t.readShort(),this.ySubscriptXSize=t.readShort(),this.ySubscriptYSize=t.readShort(),this.ySubscriptXOffset=t.readShort(),this.ySubscriptYOffset=t.readShort(),this.ySuperscriptXSize=t.readShort(),this.ySuperscriptYSize=t.readShort(),this.ySuperscriptXOffset=t.readShort(),this.ySuperscriptYOffset=t.readShort(),this.yStrikeoutSize=t.readShort(),this.yStrikeoutPosition=t.readShort(),this.familyClass=t.readShort(),this.panose=function(){var e,r;for(r=[],e=0;e<10;++e)r.push(t.readByte());return r}(),this.charRange=function(){var e,r;for(r=[],e=0;e<4;++e)r.push(t.readInt());return r}(),this.vendorID=t.readString(4),this.selection=t.readShort(),this.firstCharIndex=t.readShort(),this.lastCharIndex=t.readShort(),this.version>0&&(this.ascent=t.readShort(),this.descent=t.readShort(),this.lineGap=t.readShort(),this.winAscent=t.readShort(),this.winDescent=t.readShort(),this.codePageRange=function(){var e,r;for(r=[],e=0;e<2;e=++e)r.push(t.readInt());return r}(),this.version>1))return this.xHeight=t.readShort(),this.capHeight=t.readShort(),this.defaultChar=t.readShort(),this.breakChar=t.readShort(),this.maxContext=t.readShort()},e}(),fe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"post\",e.prototype.parse=function(t){var e,r,n;switch(t.pos=this.offset,this.format=t.readInt(),this.italicAngle=t.readInt(),this.underlinePosition=t.readShort(),this.underlineThickness=t.readShort(),this.isFixedPitch=t.readInt(),this.minMemType42=t.readInt(),this.maxMemType42=t.readInt(),this.minMemType1=t.readInt(),this.maxMemType1=t.readInt(),this.format){case 65536:break;case 131072:var i;for(r=t.readUInt16(),this.glyphNameIndex=[],i=0;0<=r?i<r:i>r;i=0<=r?++i:--i)this.glyphNameIndex.push(t.readUInt16());for(this.names=[],n=[];t.pos<this.offset+this.length;)e=t.readByte(),n.push(this.names.push(t.readString(e)));return n;case 151552:return r=t.readUInt16(),this.offsets=t.read(r);case 196608:break;case 262144:return this.map=function(){var e,r,n;for(n=[],i=e=0,r=this.file.maxp.numGlyphs;0<=r?e<r:e>r;i=0<=r?++e:--e)n.push(t.readUInt32());return n}.call(this)}},e}(),de=function(t,e){this.raw=t,this.length=t.length,this.platformID=e.platformID,this.encodingID=e.encodingID,this.languageID=e.languageID},pe=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"name\",e.prototype.parse=function(t){var e,r,n,i,a,o,s,c,u,h,l;for(t.pos=this.offset,t.readShort(),e=t.readShort(),o=t.readShort(),r=[],i=0;0<=e?i<e:i>e;i=0<=e?++i:--i)r.push({platformID:t.readShort(),encodingID:t.readShort(),languageID:t.readShort(),nameID:t.readShort(),length:t.readShort(),offset:this.offset+o+t.readShort()});for(s={},i=u=0,h=r.length;u<h;i=++u)n=r[i],t.pos=n.offset,c=t.readString(n.length),a=new de(c,n),null==s[l=n.nameID]&&(s[l]=[]),s[n.nameID].push(a);this.strings=s,this.copyright=s[0],this.fontFamily=s[1],this.fontSubfamily=s[2],this.uniqueSubfamily=s[3],this.fontName=s[4],this.version=s[5];try{this.postscriptName=s[6][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}catch(t){this.postscriptName=s[4][0].raw.replace(/[\\x00-\\x19\\x80-\\xff]/g,\"\")}return this.trademark=s[7],this.manufacturer=s[8],this.designer=s[9],this.description=s[10],this.vendorUrl=s[11],this.designerUrl=s[12],this.license=s[13],this.licenseUrl=s[14],this.preferredFamily=s[15],this.preferredSubfamily=s[17],this.compatibleFull=s[18],this.sampleText=s[19]},e}(),ge=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"maxp\",e.prototype.parse=function(t){return t.pos=this.offset,this.version=t.readInt(),this.numGlyphs=t.readUInt16(),this.maxPoints=t.readUInt16(),this.maxContours=t.readUInt16(),this.maxCompositePoints=t.readUInt16(),this.maxComponentContours=t.readUInt16(),this.maxZones=t.readUInt16(),this.maxTwilightPoints=t.readUInt16(),this.maxStorage=t.readUInt16(),this.maxFunctionDefs=t.readUInt16(),this.maxInstructionDefs=t.readUInt16(),this.maxStackElements=t.readUInt16(),this.maxSizeOfInstructions=t.readUInt16(),this.maxComponentElements=t.readUInt16(),this.maxComponentDepth=t.readUInt16()},e}(),me=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"hmtx\",e.prototype.parse=function(t){var e,r,n,i,a,o,s;for(t.pos=this.offset,this.metrics=[],e=0,o=this.file.hhea.numberOfMetrics;0<=o?e<o:e>o;e=0<=o?++e:--e)this.metrics.push({advance:t.readUInt16(),lsb:t.readInt16()});for(n=this.file.maxp.numGlyphs-this.file.hhea.numberOfMetrics,this.leftSideBearings=function(){var r,i;for(i=[],e=r=0;0<=n?r<n:r>n;e=0<=n?++r:--r)i.push(t.readInt16());return i}(),this.widths=function(){var t,e,r,n;for(n=[],t=0,e=(r=this.metrics).length;t<e;t++)i=r[t],n.push(i.advance);return n}.call(this),r=this.widths[this.widths.length-1],s=[],e=a=0;0<=n?a<n:a>n;e=0<=n?++a:--a)s.push(this.widths.push(r));return s},e.prototype.forGlyph=function(t){return t in this.metrics?this.metrics[t]:{advance:this.metrics[this.metrics.length-1].advance,lsb:this.leftSideBearings[t-this.metrics.length]}},e}(),ve=[].slice,be=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"glyf\",e.prototype.parse=function(){return this.cache={}},e.prototype.glyphFor=function(t){var e,r,n,i,a,o,s,c,u,h;return t in this.cache?this.cache[t]:(i=this.file.loca,e=this.file.contents,r=i.indexOf(t),0===(n=i.lengthOf(t))?this.cache[t]=null:(e.pos=this.offset+r,a=(o=new ne(e.read(n))).readShort(),c=o.readShort(),h=o.readShort(),s=o.readShort(),u=o.readShort(),this.cache[t]=-1===a?new we(o,c,h,s,u):new ye(o,a,c,h,s,u),this.cache[t]))},e.prototype.encode=function(t,e,r){var n,i,a,o,s;for(a=[],i=[],o=0,s=e.length;o<s;o++)n=t[e[o]],i.push(a.length),n&&(a=a.concat(n.encode(r)));return i.push(a.length),{table:a,offsets:i}},e}(),ye=function(){function t(t,e,r,n,i,a){this.raw=t,this.numberOfContours=e,this.xMin=r,this.yMin=n,this.xMax=i,this.yMax=a,this.compound=!1}return t.prototype.encode=function(){return this.raw.data},t}(),we=function(){function t(t,e,r,n,i){var a,o;for(this.raw=t,this.xMin=e,this.yMin=r,this.xMax=n,this.yMax=i,this.compound=!0,this.glyphIDs=[],this.glyphOffsets=[],a=this.raw;o=a.readShort(),this.glyphOffsets.push(a.pos),this.glyphIDs.push(a.readUInt16()),32&o;)a.pos+=1&o?4:2,128&o?a.pos+=8:64&o?a.pos+=4:8&o&&(a.pos+=2)}return 1,8,32,64,128,t.prototype.encode=function(){var t,e,r;for(e=new ne(ve.call(this.raw.data)),t=0,r=this.glyphIDs.length;t<r;++t)e.pos=this.glyphOffsets[t];return e.data},t}(),Ne=function(t){function e(){return e.__super__.constructor.apply(this,arguments)}return oe(e,re),e.prototype.tag=\"loca\",e.prototype.parse=function(t){var e,r;return t.pos=this.offset,e=this.file.head.indexToLocFormat,this.offsets=0===e?function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=2)n.push(2*t.readUInt16());return n}.call(this):function(){var e,n;for(n=[],r=0,e=this.length;r<e;r+=4)n.push(t.readUInt32());return n}.call(this)},e.prototype.indexOf=function(t){return this.offsets[t]},e.prototype.lengthOf=function(t){return this.offsets[t+1]-this.offsets[t]},e.prototype.encode=function(t,e){for(var r=new Uint32Array(this.offsets.length),n=0,i=0,a=0;a<r.length;++a)if(r[a]=n,i<e.length&&e[i]==a){++i,r[a]=n;var o=this.offsets[a],s=this.offsets[a+1]-o;s>0&&(n+=s)}for(var c=new Array(4*r.length),u=0;u<r.length;++u)c[4*u+3]=255&r[u],c[4*u+2]=(65280&r[u])>>8,c[4*u+1]=(16711680&r[u])>>16,c[4*u]=(4278190080&r[u])>>24;return c},e}(),Le=function(){function t(t){this.font=t,this.subset={},this.unicodes={},this.next=33}return t.prototype.generateCmap=function(){var t,e,r,n,i;for(e in n=this.font.cmap.tables[0].codeMap,t={},i=this.subset)r=i[e],t[e]=n[r];return t},t.prototype.glyphsFor=function(t){var e,r,n,i,a,o,s;for(n={},a=0,o=t.length;a<o;a++)n[i=t[a]]=this.font.glyf.glyphFor(i);for(i in e=[],n)(null!=(r=n[i])?r.compound:void 0)&&e.push.apply(e,r.glyphIDs);if(e.length>0)for(i in s=this.glyphsFor(e))r=s[i],n[i]=r;return n},t.prototype.encode=function(t,e){var r,n,i,a,o,s,c,u,h,l,f,d,p,g,m;for(n in r=ue.encode(this.generateCmap(),\"unicode\"),a=this.glyphsFor(t),f={0:0},m=r.charMap)f[(s=m[n]).old]=s.new;for(d in l=r.maxGlyphID,a)d in f||(f[d]=l++);return u=function(t){var e,r;for(e in r={},t)r[t[e]]=e;return r}(f),h=Object.keys(u).sort((function(t,e){return t-e})),p=function(){var t,e,r;for(r=[],t=0,e=h.length;t<e;t++)o=h[t],r.push(u[o]);return r}(),i=this.font.glyf.encode(a,p,f),c=this.font.loca.encode(i.offsets,p),g={cmap:this.font.cmap.raw(),glyf:i.table,loca:c,hmtx:this.font.hmtx.raw(),hhea:this.font.hhea.raw(),maxp:this.font.maxp.raw(),post:this.font.post.raw(),name:this.font.name.raw(),head:this.font.head.encode(e)},this.font.os2.exists&&(g[\"OS/2\"]=this.font.os2.raw()),this.font.directory.encode(g)},t}();E.API.PDFObject=function(){var t;function e(){}return t=function(t,e){return(Array(e+1).join(\"0\")+t).slice(-e)},e.convert=function(r){var n,i,a,o;if(Array.isArray(r))return\"[\"+function(){var t,i,a;for(a=[],t=0,i=r.length;t<i;t++)n=r[t],a.push(e.convert(n));return a}().join(\" \")+\"]\";if(\"string\"==typeof r)return\"/\"+r;if(null!=r?r.isString:void 0)return\"(\"+r+\")\";if(r instanceof Date)return\"(D:\"+t(r.getUTCFullYear(),4)+t(r.getUTCMonth(),2)+t(r.getUTCDate(),2)+t(r.getUTCHours(),2)+t(r.getUTCMinutes(),2)+t(r.getUTCSeconds(),2)+\"Z)\";if(\"[object Object]\"==={}.toString.call(r)){for(i in a=[\"<<\"],r)o=r[i],a.push(\"/\"+i+\" \"+e.convert(o));return a.push(\">>\"),a.join(\"\\n\")}return\"\"+r},e}();export default E;export{St as AcroForm,At as AcroFormAppearance,mt as AcroFormButton,wt as AcroFormCheckBox,ft as AcroFormChoiceField,pt as AcroFormComboBox,gt as AcroFormEditBox,dt as AcroFormListBox,Lt as AcroFormPasswordField,vt as AcroFormPushButton,bt as AcroFormRadioButton,Nt as AcroFormTextField,j as GState,B as ShadingPattern,M as TilingPattern,E as jsPDF};\n//# sourceMappingURL=jspdf.es.min.js.map\n","/*!\n * html2canvas 1.4.1 <https://html2canvas.hertzen.com>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.html2canvas = factory());\n}(this, (function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n\r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\n\n var Bounds = /** @class */ (function () {\n function Bounds(left, top, width, height) {\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n Bounds.prototype.add = function (x, y, w, h) {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n };\n Bounds.fromClientRect = function (context, clientRect) {\n return new Bounds(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height);\n };\n Bounds.fromDOMRectList = function (context, domRectList) {\n var domRect = Array.from(domRectList).find(function (rect) { return rect.width !== 0; });\n return domRect\n ? new Bounds(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height)\n : Bounds.EMPTY;\n };\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\n return Bounds;\n }());\n var parseBounds = function (context, node) {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n };\n var parseDocumentSize = function (document) {\n var body = document.body;\n var documentElement = document.documentElement;\n if (!body || !documentElement) {\n throw new Error(\"Unable to get document size\");\n }\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\n return new Bounds(0, 0, width, height);\n };\n\n /*\n * css-line-break 2.1.0 <https://github.com/niklasvh/css-line-break#readme>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var toCodePoints$1 = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint$1 = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var chars$2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$2 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\n }\n\n /*\n * utrie 1.0.2 <https://github.com/niklasvh/utrie>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars$1$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\n }\n var decode$1 = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array$1 = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2$1 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1$1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT$1 = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\n var slice16$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32$1 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64$1 = function (base64, _byteLength) {\n var buffer = decode$1(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie$1 = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars$3 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$3 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\n }\n\n var base64$1 = 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\n\n var LETTER_NUMBER_MODIFIER = 50;\n // Non-tailorable Line Breaking Classes\n var BK = 1; // Cause a line break (after)\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\n var LF$1 = 3; // Cause a line break (after)\n var CM = 4; // Prohibit a line break between the character and the preceding character\n var NL = 5; // Cause a line break (after)\n var WJ = 7; // Prohibit line breaks before and after\n var ZW = 8; // Provide a break opportunity\n var GL = 9; // Prohibit line breaks before and after\n var SP = 10; // Enable indirect line breaks\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\n // Break Opportunities\n var B2 = 12; // Provide a line break opportunity before and after the character\n var BA = 13; // Generally provide a line break opportunity after the character\n var BB = 14; // Generally provide a line break opportunity before the character\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\n var CB = 16; // Provide a line break opportunity contingent on additional information\n // Characters Prohibiting Certain Breaks\n var CL = 17; // Prohibit line breaks before\n var CP = 18; // Prohibit line breaks before\n var EX = 19; // Prohibit line breaks before\n var IN = 20; // Allow only indirect line breaks between pairs\n var NS = 21; // Allow only indirect line breaks before\n var OP = 22; // Prohibit line breaks after\n var QU = 23; // Act like they are both opening and closing\n // Numeric Context\n var IS = 24; // Prevent breaks after any and before numeric\n var NU = 25; // Form numeric expressions for line breaking purposes\n var PO = 26; // Do not break following a numeric expression\n var PR = 27; // Do not break in front of a numeric expression\n var SY = 28; // Prevent a break before; and allow a break after\n // Other Characters\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\n var EB = 32; // Do not break from following Emoji Modifier\n var EM = 33; // Do not break from preceding Emoji Base\n var H2 = 34; // Form Korean syllable blocks\n var H3 = 35; // Form Korean syllable blocks\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\n var ID = 37; // Break before or after; except in some numeric context\n var JL = 38; // Form Korean syllable blocks\n var JV = 39; // Form Korean syllable blocks\n var JT = 40; // Form Korean syllable blocks\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n var ea_OP = [0x2329, 0xff08];\n var BREAK_MANDATORY = '!';\n var BREAK_NOT_ALLOWED$1 = '×';\n var BREAK_ALLOWED$1 = '÷';\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\n var ALPHABETICS = [AL, HL];\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\n var SPACE$1 = [SP, ZW];\n var PREFIX_POSTFIX = [PR, PO];\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\n var HYPHEN = [HY, BA];\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\n if (lineBreak === void 0) { lineBreak = 'strict'; }\n var types = [];\n var indices = [];\n var categories = [];\n codePoints.forEach(function (codePoint, index) {\n var classType = UnicodeTrie$1.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n }\n else {\n categories.push(false);\n }\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ã‚ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n if (classType === CM || classType === ZWJ$1) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n var prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n indices.push(index);\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n if (classType === SA) {\n return types.push(AL);\n }\n if (classType === AI) {\n return types.push(AL);\n }\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n }\n else {\n return types.push(AL);\n }\n }\n types.push(classType);\n });\n return [indices, types, categories];\n };\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\n var current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n var i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n var next = classTypes[i];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (current === SP) {\n var i = currentIndex;\n while (i > 0) {\n i--;\n var prev = classTypes[i];\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n var n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n var next = classTypes[n];\n if (next === b) {\n return true;\n }\n if (next !== SP) {\n break;\n }\n }\n }\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n };\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\n var i = currentIndex;\n while (i >= 0) {\n var type = classTypes[i];\n if (type === SP) {\n i--;\n }\n else {\n return type;\n }\n }\n return 0;\n };\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n var currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED$1;\n }\n var beforeIndex = currentIndex - 1;\n var afterIndex = currentIndex + 1;\n var current = classTypes[currentIndex];\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n var next = classTypes[afterIndex];\n if (current === CR$1 && next === LF$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB7 Do not break before spaces or zero width space.\n if (SPACE$1.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED$1;\n }\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB15 Do not break within ‘â€[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED$1;\n }\n // LB19 Do not break before or after quotation marks, such as ‘ †’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED$1;\n }\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n var prevIndex = currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n var type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED$1;\n }\n else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n }\n else {\n break;\n }\n }\n }\n // LB26 Do not break a Korean syllable.\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB27 Treat a Korean Syllable Block the same as ID.\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB28 Do not break between alphabetics (“atâ€).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.â€).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\n return BREAK_NOT_ALLOWED$1;\n }\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI$1 && next === RI$1) {\n var i = indicies[currentIndex];\n var count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI$1) {\n count++;\n }\n else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED$1;\n }\n }\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED$1;\n }\n return BREAK_ALLOWED$1;\n };\n var cssFormattedClasses = function (codePoints, options) {\n if (!options) {\n options = { lineBreak: 'normal', wordBreak: 'normal' };\n }\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\n }\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\n ? isLetterNumber.map(function (letterNumber, i) {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n return [indicies, classTypes, forbiddenBreakpoints];\n };\n var Break = /** @class */ (function () {\n function Break(codePoints, lineBreak, start, end) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n Break.prototype.slice = function () {\n return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end));\n };\n return Break;\n }());\n var LineBreaker = function (str, options) {\n var codePoints = toCodePoints$1(str);\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\n var length = codePoints.length;\n var lastEnd = 0;\n var nextIndex = 0;\n return {\n next: function () {\n if (nextIndex >= length) {\n return { done: true, value: null };\n }\n var lineBreak = BREAK_NOT_ALLOWED$1;\n while (nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED$1) { }\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n\n // https://www.w3.org/TR/css-syntax-3\n var FLAG_UNRESTRICTED = 1 << 0;\n var FLAG_ID = 1 << 1;\n var FLAG_INTEGER = 1 << 2;\n var FLAG_NUMBER = 1 << 3;\n var LINE_FEED = 0x000a;\n var SOLIDUS = 0x002f;\n var REVERSE_SOLIDUS = 0x005c;\n var CHARACTER_TABULATION = 0x0009;\n var SPACE = 0x0020;\n var QUOTATION_MARK = 0x0022;\n var EQUALS_SIGN = 0x003d;\n var NUMBER_SIGN = 0x0023;\n var DOLLAR_SIGN = 0x0024;\n var PERCENTAGE_SIGN = 0x0025;\n var APOSTROPHE = 0x0027;\n var LEFT_PARENTHESIS = 0x0028;\n var RIGHT_PARENTHESIS = 0x0029;\n var LOW_LINE = 0x005f;\n var HYPHEN_MINUS = 0x002d;\n var EXCLAMATION_MARK = 0x0021;\n var LESS_THAN_SIGN = 0x003c;\n var GREATER_THAN_SIGN = 0x003e;\n var COMMERCIAL_AT = 0x0040;\n var LEFT_SQUARE_BRACKET = 0x005b;\n var RIGHT_SQUARE_BRACKET = 0x005d;\n var CIRCUMFLEX_ACCENT = 0x003d;\n var LEFT_CURLY_BRACKET = 0x007b;\n var QUESTION_MARK = 0x003f;\n var RIGHT_CURLY_BRACKET = 0x007d;\n var VERTICAL_LINE = 0x007c;\n var TILDE = 0x007e;\n var CONTROL = 0x0080;\n var REPLACEMENT_CHARACTER = 0xfffd;\n var ASTERISK = 0x002a;\n var PLUS_SIGN = 0x002b;\n var COMMA = 0x002c;\n var COLON = 0x003a;\n var SEMICOLON = 0x003b;\n var FULL_STOP = 0x002e;\n var NULL = 0x0000;\n var BACKSPACE = 0x0008;\n var LINE_TABULATION = 0x000b;\n var SHIFT_OUT = 0x000e;\n var INFORMATION_SEPARATOR_ONE = 0x001f;\n var DELETE = 0x007f;\n var EOF = -1;\n var ZERO = 0x0030;\n var a = 0x0061;\n var e = 0x0065;\n var f = 0x0066;\n var u = 0x0075;\n var z = 0x007a;\n var A = 0x0041;\n var E = 0x0045;\n var F = 0x0046;\n var U = 0x0055;\n var Z = 0x005a;\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\n var isHex = function (codePoint) {\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\n };\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\n var isWhiteSpace = function (codePoint) {\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\n };\n var isNameStartCodePoint = function (codePoint) {\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\n };\n var isNameCodePoint = function (codePoint) {\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\n };\n var isNonPrintableCodePoint = function (codePoint) {\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE);\n };\n var isValidEscape = function (c1, c2) {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n return c2 !== LINE_FEED;\n };\n var isIdentifierStart = function (c1, c2, c3) {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n }\n else if (isNameStartCodePoint(c1)) {\n return true;\n }\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n };\n var isNumberStart = function (c1, c2, c3) {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n return c2 === FULL_STOP && isDigit(c3);\n }\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n return isDigit(c1);\n };\n var stringToNumber = function (codePoints) {\n var c = 0;\n var sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n var integers = [];\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0;\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n var fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n var fracd = fraction.length;\n var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0;\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n var expsign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n var exponent = [];\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0;\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n };\n var LEFT_PARENTHESIS_TOKEN = {\n type: 2 /* LEFT_PARENTHESIS_TOKEN */\n };\n var RIGHT_PARENTHESIS_TOKEN = {\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */\n };\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\n var LEFT_CURLY_BRACKET_TOKEN = {\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */\n };\n var RIGHT_CURLY_BRACKET_TOKEN = {\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */\n };\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\n var LEFT_SQUARE_BRACKET_TOKEN = {\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */\n };\n var RIGHT_SQUARE_BRACKET_TOKEN = {\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\n };\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\n var Tokenizer = /** @class */ (function () {\n function Tokenizer() {\n this._value = [];\n }\n Tokenizer.prototype.write = function (chunk) {\n this._value = this._value.concat(toCodePoints$1(chunk));\n };\n Tokenizer.prototype.read = function () {\n var tokens = [];\n var token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n };\n Tokenizer.prototype.consumeToken = function () {\n var codePoint = this.consumeCodePoint();\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n var value = this.consumeName();\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n var e1 = codePoint;\n var e2 = this.peekCodePoint(0);\n var e3 = this.peekCodePoint(1);\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n var c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n var a1 = this.peekCodePoint(0);\n var a2 = this.peekCodePoint(1);\n var a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n var value = this.consumeName();\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n var u1 = this.peekCodePoint(0);\n var u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\n };\n Tokenizer.prototype.consumeCodePoint = function () {\n var value = this._value.shift();\n return typeof value === 'undefined' ? -1 : value;\n };\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\n this._value.unshift(codePoint);\n };\n Tokenizer.prototype.peekCodePoint = function (delta) {\n if (delta >= this._value.length) {\n return -1;\n }\n return this._value[delta];\n };\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\n var digits = [];\n var codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n if (questionMarks) {\n var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\n var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\n }\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n var endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\n }\n else {\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\n }\n };\n Tokenizer.prototype.consumeIdentLikeToken = function () {\n var value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n }\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\n }\n return { type: 20 /* IDENT_TOKEN */, value: value };\n };\n Tokenizer.prototype.consumeUrlToken = function () {\n var value = [];\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF) {\n return { type: 22 /* URL_TOKEN */, value: '' };\n }\n var next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === 0 /* STRING_TOKEN */) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\n }\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return { type: 22 /* URL_TOKEN */, value: fromCodePoint$1.apply(void 0, value) };\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n }\n else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n }\n else {\n value.push(codePoint);\n }\n }\n };\n Tokenizer.prototype.consumeWhiteSpace = function () {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n };\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n };\n Tokenizer.prototype.consumeStringSlice = function (count) {\n var SLICE_STACK_SIZE = 50000;\n var value = '';\n while (count > 0) {\n var amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n return value;\n };\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\n var value = '';\n var i = 0;\n do {\n var codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return { type: 0 /* STRING_TOKEN */, value: value };\n }\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n if (codePoint === REVERSE_SOLIDUS) {\n var next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n }\n else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n i++;\n } while (true);\n };\n Tokenizer.prototype.consumeNumber = function () {\n var repr = [];\n var type = FLAG_INTEGER;\n var c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n return [stringToNumber(repr), type];\n };\n Tokenizer.prototype.consumeNumericToken = function () {\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\n var c1 = this.peekCodePoint(0);\n var c2 = this.peekCodePoint(1);\n var c3 = this.peekCodePoint(2);\n if (isIdentifierStart(c1, c2, c3)) {\n var unit = this.consumeName();\n return { type: 15 /* DIMENSION_TOKEN */, number: number, flags: flags, unit: unit };\n }\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return { type: 16 /* PERCENTAGE_TOKEN */, number: number, flags: flags };\n }\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\n };\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\n var codePoint = this.consumeCodePoint();\n if (isHex(codePoint)) {\n var hex = fromCodePoint$1(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint$1(this.consumeCodePoint());\n }\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n var hexCodePoint = parseInt(hex, 16);\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n return hexCodePoint;\n }\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n return codePoint;\n };\n Tokenizer.prototype.consumeName = function () {\n var result = '';\n while (true) {\n var codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint$1(codePoint);\n }\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\n }\n else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n };\n return Tokenizer;\n }());\n\n var Parser = /** @class */ (function () {\n function Parser(tokens) {\n this._tokens = tokens;\n }\n Parser.create = function (value) {\n var tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n };\n Parser.parseValue = function (value) {\n return Parser.create(value).parseComponentValue();\n };\n Parser.parseValues = function (value) {\n return Parser.create(value).parseComponentValues();\n };\n Parser.prototype.parseComponentValue = function () {\n var token = this.consumeToken();\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\n token = this.consumeToken();\n }\n if (token.type === 32 /* EOF_TOKEN */) {\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\n }\n this.reconsumeToken(token);\n var value = this.consumeComponentValue();\n do {\n token = this.consumeToken();\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\n if (token.type === 32 /* EOF_TOKEN */) {\n return value;\n }\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\n };\n Parser.prototype.parseComponentValues = function () {\n var values = [];\n while (true) {\n var value = this.consumeComponentValue();\n if (value.type === 32 /* EOF_TOKEN */) {\n return values;\n }\n values.push(value);\n values.push();\n }\n };\n Parser.prototype.consumeComponentValue = function () {\n var token = this.consumeToken();\n switch (token.type) {\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\n return this.consumeSimpleBlock(token.type);\n case 19 /* FUNCTION_TOKEN */:\n return this.consumeFunction(token);\n }\n return token;\n };\n Parser.prototype.consumeSimpleBlock = function (type) {\n var block = { type: type, values: [] };\n var token = this.consumeToken();\n while (true) {\n if (token.type === 32 /* EOF_TOKEN */ || isEndingTokenFor(token, type)) {\n return block;\n }\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n };\n Parser.prototype.consumeFunction = function (functionToken) {\n var cssFunction = {\n name: functionToken.value,\n values: [],\n type: 18 /* FUNCTION */\n };\n while (true) {\n var token = this.consumeToken();\n if (token.type === 32 /* EOF_TOKEN */ || token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */) {\n return cssFunction;\n }\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n };\n Parser.prototype.consumeToken = function () {\n var token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n };\n Parser.prototype.reconsumeToken = function (token) {\n this._tokens.unshift(token);\n };\n return Parser;\n }());\n var isDimensionToken = function (token) { return token.type === 15 /* DIMENSION_TOKEN */; };\n var isNumberToken = function (token) { return token.type === 17 /* NUMBER_TOKEN */; };\n var isIdentToken = function (token) { return token.type === 20 /* IDENT_TOKEN */; };\n var isStringToken = function (token) { return token.type === 0 /* STRING_TOKEN */; };\n var isIdentWithValue = function (token, value) {\n return isIdentToken(token) && token.value === value;\n };\n var nonWhiteSpace = function (token) { return token.type !== 31 /* WHITESPACE_TOKEN */; };\n var nonFunctionArgSeparator = function (token) {\n return token.type !== 31 /* WHITESPACE_TOKEN */ && token.type !== 4 /* COMMA_TOKEN */;\n };\n var parseFunctionArgs = function (tokens) {\n var args = [];\n var arg = [];\n tokens.forEach(function (token) {\n if (token.type === 4 /* COMMA_TOKEN */) {\n if (arg.length === 0) {\n throw new Error(\"Error parsing function args, zero tokens for arg\");\n }\n args.push(arg);\n arg = [];\n return;\n }\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n return args;\n };\n var isEndingTokenFor = function (token, type) {\n if (type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ && token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */) {\n return true;\n }\n if (type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ && token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */) {\n return true;\n }\n return type === 2 /* LEFT_PARENTHESIS_TOKEN */ && token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */;\n };\n\n var isLength = function (token) {\n return token.type === 17 /* NUMBER_TOKEN */ || token.type === 15 /* DIMENSION_TOKEN */;\n };\n\n var isLengthPercentage = function (token) {\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\n };\n var parseLengthPercentageTuple = function (tokens) {\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\n };\n var ZERO_LENGTH = {\n type: 17 /* NUMBER_TOKEN */,\n number: 0,\n flags: FLAG_INTEGER\n };\n var FIFTY_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var HUNDRED_PERCENT = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 100,\n flags: FLAG_INTEGER\n };\n var getAbsoluteValueForTuple = function (tuple, width, height) {\n var x = tuple[0], y = tuple[1];\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n };\n var getAbsoluteValue = function (token, parent) {\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n return (token.number / 100) * parent;\n }\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n return token.number;\n };\n\n var DEG = 'deg';\n var GRAD = 'grad';\n var RAD = 'rad';\n var TURN = 'turn';\n var angle = {\n name: 'angle',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n throw new Error(\"Unsupported angle type\");\n }\n };\n var isAngle = function (value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n };\n var parseNamedSide = function (tokens) {\n var sideOrCorner = tokens\n .filter(isIdentToken)\n .map(function (ident) { return ident.value; })\n .join(' ');\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n return 0;\n };\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color$1 = {\n name: 'color',\n parse: function (context, value) {\n if (value.type === 18 /* FUNCTION */) {\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\n }\n return colorFunction(context, value.values);\n }\n if (value.type === 5 /* HASH_TOKEN */) {\n if (value.value.length === 3) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n if (value.value.length === 4) {\n var r = value.value.substring(0, 1);\n var g = value.value.substring(1, 2);\n var b = value.value.substring(2, 3);\n var a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n if (value.value.length === 6) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n if (value.value.length === 8) {\n var r = value.value.substring(0, 2);\n var g = value.value.substring(2, 4);\n var b = value.value.substring(4, 6);\n var a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n if (value.type === 20 /* IDENT_TOKEN */) {\n var namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n return COLORS.TRANSPARENT;\n }\n };\n var isTransparent = function (color) { return (0xff & color) === 0; };\n var asString = function (color) {\n var alpha = 0xff & color;\n var blue = 0xff & (color >> 8);\n var green = 0xff & (color >> 16);\n var red = 0xff & (color >> 24);\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\n };\n var pack = function (r, g, b, a) {\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n };\n var getTokenColorValue = function (token, i) {\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\n var max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n return 0;\n };\n var rgb = function (_context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n if (tokens.length === 3) {\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\n return pack(r, g, b, 1);\n }\n if (tokens.length === 4) {\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\n return pack(r, g, b, a);\n }\n return 0;\n };\n function hue2rgb(t1, t2, hue) {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n }\n else if (hue < 1 / 2) {\n return t2;\n }\n else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n }\n else {\n return t1;\n }\n }\n var hsl = function (context, args) {\n var tokens = args.filter(nonFunctionArgSeparator);\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\n var h = (hue.type === 17 /* NUMBER_TOKEN */ ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var t1 = l * 2 - t2;\n var r = hue2rgb(t1, t2, h + 1 / 3);\n var g = hue2rgb(t1, t2, h);\n var b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n };\n var SUPPORTED_COLOR_FUNCTIONS = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n };\n var parseColor = function (context, value) {\n return color$1.parse(context, Parser.create(value).parseComponentValue());\n };\n var COLORS = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n };\n\n var backgroundClip = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundColor = {\n name: \"background-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var parseColorStop = function (context, args) {\n var color = color$1.parse(context, args[0]);\n var stop = args[1];\n return stop && isLengthPercentage(stop) ? { color: color, stop: stop } : { color: color, stop: null };\n };\n var processColorStops = function (stops, lineLength) {\n var first = stops[0];\n var last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n var processStops = [];\n var previous = 0;\n for (var i = 0; i < stops.length; i++) {\n var stop_1 = stops[i].stop;\n if (stop_1 !== null) {\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n }\n else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n }\n else {\n processStops.push(null);\n }\n }\n var gapBegin = null;\n for (var i = 0; i < processStops.length; i++) {\n var stop_2 = processStops[i];\n if (stop_2 === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n }\n else if (gapBegin !== null) {\n var gapLength = i - gapBegin;\n var beforeGap = processStops[gapBegin - 1];\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\n for (var g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n return stops.map(function (_a, i) {\n var color = _a.color;\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\n });\n };\n var getAngleFromCorner = function (corner, width, height) {\n var centerX = width / 2;\n var centerY = height / 2;\n var x = getAbsoluteValue(corner[0], width) - centerX;\n var y = centerY - getAbsoluteValue(corner[1], height);\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n };\n var calculateGradientDirection = function (angle, width, height) {\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n var halfWidth = width / 2;\n var halfHeight = height / 2;\n var halfLineLength = lineLength / 2;\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n };\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\n var findCorner = function (width, height, x, y, closest) {\n var corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n return corners.reduce(function (stat, corner) {\n var cx = corner[0], cy = corner[1];\n var d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n return stat;\n }, {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }).optimumCorner;\n };\n var calculateRadius = function (gradient, x, y, width, height) {\n var rx = 0;\n var ry = 0;\n switch (gradient.size) {\n case 0 /* CLOSEST_SIDE */:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 2 /* CLOSEST_CORNER */:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n case 1 /* FARTHEST_SIDE */:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n case 3 /* FARTHEST_CORNER */:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === 0 /* CIRCLE */) {\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\n }\n else if (gradient.shape === 1 /* ELLIPSE */) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n return [rx, ry];\n };\n\n var linearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ && firstToken.value === 'to') {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = angle.parse(context, firstToken);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\n };\n\n var prefixLinearGradient = function (context, tokens) {\n var angle$1 = deg(180);\n var stops = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n if (i === 0) {\n var firstToken = arg[0];\n if (firstToken.type === 20 /* IDENT_TOKEN */ &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\n angle$1 = parseNamedSide(arg);\n return;\n }\n else if (isAngle(firstToken)) {\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n return {\n angle: angle$1,\n stops: stops,\n type: 1 /* LINEAR_GRADIENT */\n };\n };\n\n var webkitGradient = function (context, tokens) {\n var angle = deg(180);\n var stops = [];\n var type = 1 /* LINEAR_GRADIENT */;\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = 1 /* LINEAR_GRADIENT */;\n return;\n }\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = 2 /* RADIAL_GRADIENT */;\n return;\n }\n }\n if (firstToken.type === 18 /* FUNCTION */) {\n if (firstToken.name === 'from') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: ZERO_LENGTH, color: color });\n }\n else if (firstToken.name === 'to') {\n var color = color$1.parse(context, firstToken.values[0]);\n stops.push({ stop: HUNDRED_PERCENT, color: color });\n }\n else if (firstToken.name === 'color-stop') {\n var values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n var color = color$1.parse(context, values[1]);\n var stop_1 = values[0];\n if (isNumberToken(stop_1)) {\n stops.push({\n stop: { type: 16 /* PERCENTAGE_TOKEN */, number: stop_1.number * 100, flags: stop_1.flags },\n color: color\n });\n }\n }\n }\n }\n });\n return type === 1 /* LINEAR_GRADIENT */\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops: stops,\n type: type\n }\n : { size: size, shape: shape, stops: stops, position: position, type: type };\n };\n\n var CLOSEST_SIDE = 'closest-side';\n var FARTHEST_SIDE = 'farthest-side';\n var CLOSEST_CORNER = 'closest-corner';\n var FARTHEST_CORNER = 'farthest-corner';\n var CIRCLE = 'circle';\n var ELLIPSE = 'ellipse';\n var COVER = 'cover';\n var CONTAIN = 'contain';\n var radialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n var isAtPosition_1 = false;\n isColorStop = arg.reduce(function (acc, token) {\n if (isAtPosition_1) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n }\n else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case 'at':\n isAtPosition_1 = true;\n return false;\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var prefixRadialGradient = function (context, tokens) {\n var shape = 0 /* CIRCLE */;\n var size = 3 /* FARTHEST_CORNER */;\n var stops = [];\n var position = [];\n parseFunctionArgs(tokens).forEach(function (arg, i) {\n var isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n }\n else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n else if (i === 1) {\n isColorStop = arg.reduce(function (acc, token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = 0 /* CIRCLE */;\n return false;\n case ELLIPSE:\n shape = 1 /* ELLIPSE */;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = 0 /* CLOSEST_SIDE */;\n return false;\n case FARTHEST_SIDE:\n size = 1 /* FARTHEST_SIDE */;\n return false;\n case CLOSEST_CORNER:\n size = 2 /* CLOSEST_CORNER */;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = 3 /* FARTHEST_CORNER */;\n return false;\n }\n }\n else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n if (isColorStop) {\n var colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n return { size: size, shape: shape, stops: stops, position: position, type: 2 /* RADIAL_GRADIENT */ };\n };\n\n var isLinearGradient = function (background) {\n return background.type === 1 /* LINEAR_GRADIENT */;\n };\n var isRadialGradient = function (background) {\n return background.type === 2 /* RADIAL_GRADIENT */;\n };\n var image = {\n name: 'image',\n parse: function (context, value) {\n if (value.type === 22 /* URL_TOKEN */) {\n var image_1 = { url: value.value, type: 0 /* URL */ };\n context.cache.addImage(value.value);\n return image_1;\n }\n if (value.type === 18 /* FUNCTION */) {\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\n }\n return imageFunction(context, value.values);\n }\n throw new Error(\"Unsupported image type \" + value.type);\n }\n };\n function isSupportedImage(value) {\n return (!(value.type === 20 /* IDENT_TOKEN */ && value.value === 'none') &&\n (value.type !== 18 /* FUNCTION */ || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]));\n }\n var SUPPORTED_IMAGE_FUNCTIONS = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n };\n\n var backgroundImage = {\n name: 'background-image',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens\n .filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); })\n .map(function (value) { return image.parse(context, value); });\n }\n };\n\n var backgroundOrigin = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.map(function (token) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return 1 /* PADDING_BOX */;\n case 'content-box':\n return 2 /* CONTENT_BOX */;\n }\n }\n return 0 /* BORDER_BOX */;\n });\n }\n };\n\n var backgroundPosition = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) { return values.filter(isLengthPercentage); })\n .map(parseLengthPercentageTuple);\n }\n };\n\n var backgroundRepeat = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens)\n .map(function (values) {\n return values\n .filter(isIdentToken)\n .map(function (token) { return token.value; })\n .join(' ');\n })\n .map(parseBackgroundRepeat);\n }\n };\n var parseBackgroundRepeat = function (value) {\n switch (value) {\n case 'no-repeat':\n return 1 /* NO_REPEAT */;\n case 'repeat-x':\n case 'repeat no-repeat':\n return 2 /* REPEAT_X */;\n case 'repeat-y':\n case 'no-repeat repeat':\n return 3 /* REPEAT_Y */;\n case 'repeat':\n default:\n return 0 /* REPEAT */;\n }\n };\n\n var BACKGROUND_SIZE;\n (function (BACKGROUND_SIZE) {\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\n var backgroundSize = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\n }\n };\n var isBackgroundSizeInfoToken = function (value) {\n return isIdentToken(value) || isLengthPercentage(value);\n };\n\n var borderColorForSide = function (side) { return ({\n name: \"border-\" + side + \"-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n }); };\n var borderTopColor = borderColorForSide('top');\n var borderRightColor = borderColorForSide('right');\n var borderBottomColor = borderColorForSide('bottom');\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\n name: \"border-radius-\" + side,\n initialValue: '0 0',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\n }\n }); };\n var borderTopLeftRadius = borderRadiusForSide('top-left');\n var borderTopRightRadius = borderRadiusForSide('top-right');\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var borderStyleForSide = function (side) { return ({\n name: \"border-\" + side + \"-style\",\n initialValue: 'solid',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, style) {\n switch (style) {\n case 'none':\n return 0 /* NONE */;\n case 'dashed':\n return 2 /* DASHED */;\n case 'dotted':\n return 3 /* DOTTED */;\n case 'double':\n return 4 /* DOUBLE */;\n }\n return 1 /* SOLID */;\n }\n }); };\n var borderTopStyle = borderStyleForSide('top');\n var borderRightStyle = borderStyleForSide('right');\n var borderBottomStyle = borderStyleForSide('bottom');\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\n name: \"border-\" + side + \"-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n }); };\n var borderTopWidth = borderWidthForSide('top');\n var borderRightWidth = borderWidthForSide('right');\n var borderBottomWidth = borderWidthForSide('bottom');\n var borderLeftWidth = borderWidthForSide('left');\n\n var color = {\n name: \"color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var direction = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, direction) {\n switch (direction) {\n case 'rtl':\n return 1 /* RTL */;\n case 'ltr':\n default:\n return 0 /* LTR */;\n }\n }\n };\n\n var display = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\n return bit | parseDisplayValue(token.value);\n }, 0 /* NONE */);\n }\n };\n var parseDisplayValue = function (display) {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return 2 /* BLOCK */;\n case 'inline':\n return 4 /* INLINE */;\n case 'run-in':\n return 8 /* RUN_IN */;\n case 'flow':\n return 16 /* FLOW */;\n case 'flow-root':\n return 32 /* FLOW_ROOT */;\n case 'table':\n return 64 /* TABLE */;\n case 'flex':\n case '-webkit-flex':\n return 128 /* FLEX */;\n case 'grid':\n case '-ms-grid':\n return 256 /* GRID */;\n case 'ruby':\n return 512 /* RUBY */;\n case 'subgrid':\n return 1024 /* SUBGRID */;\n case 'list-item':\n return 2048 /* LIST_ITEM */;\n case 'table-row-group':\n return 4096 /* TABLE_ROW_GROUP */;\n case 'table-header-group':\n return 8192 /* TABLE_HEADER_GROUP */;\n case 'table-footer-group':\n return 16384 /* TABLE_FOOTER_GROUP */;\n case 'table-row':\n return 32768 /* TABLE_ROW */;\n case 'table-cell':\n return 65536 /* TABLE_CELL */;\n case 'table-column-group':\n return 131072 /* TABLE_COLUMN_GROUP */;\n case 'table-column':\n return 262144 /* TABLE_COLUMN */;\n case 'table-caption':\n return 524288 /* TABLE_CAPTION */;\n case 'ruby-base':\n return 1048576 /* RUBY_BASE */;\n case 'ruby-text':\n return 2097152 /* RUBY_TEXT */;\n case 'ruby-base-container':\n return 4194304 /* RUBY_BASE_CONTAINER */;\n case 'ruby-text-container':\n return 8388608 /* RUBY_TEXT_CONTAINER */;\n case 'contents':\n return 16777216 /* CONTENTS */;\n case 'inline-block':\n return 33554432 /* INLINE_BLOCK */;\n case 'inline-list-item':\n return 67108864 /* INLINE_LIST_ITEM */;\n case 'inline-table':\n return 134217728 /* INLINE_TABLE */;\n case 'inline-flex':\n return 268435456 /* INLINE_FLEX */;\n case 'inline-grid':\n return 536870912 /* INLINE_GRID */;\n }\n return 0 /* NONE */;\n };\n\n var float = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, float) {\n switch (float) {\n case 'left':\n return 1 /* LEFT */;\n case 'right':\n return 2 /* RIGHT */;\n case 'inline-start':\n return 3 /* INLINE_START */;\n case 'inline-end':\n return 4 /* INLINE_END */;\n }\n return 0 /* NONE */;\n }\n };\n\n var letterSpacing = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'normal') {\n return 0;\n }\n if (token.type === 17 /* NUMBER_TOKEN */) {\n return token.number;\n }\n if (token.type === 15 /* DIMENSION_TOKEN */) {\n return token.number;\n }\n return 0;\n }\n };\n\n var LINE_BREAK;\n (function (LINE_BREAK) {\n LINE_BREAK[\"NORMAL\"] = \"normal\";\n LINE_BREAK[\"STRICT\"] = \"strict\";\n })(LINE_BREAK || (LINE_BREAK = {}));\n var lineBreak = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, lineBreak) {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n };\n\n var lineHeight = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n };\n var computeLineHeight = function (token, fontSize) {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n }\n else if (token.type === 17 /* NUMBER_TOKEN */) {\n return fontSize * token.number;\n }\n else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n return fontSize;\n };\n\n var listStyleImage = {\n name: 'list-style-image',\n initialValue: 'none',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n return image.parse(context, token);\n }\n };\n\n var listStylePosition = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'inside':\n return 0 /* INSIDE */;\n case 'outside':\n default:\n return 1 /* OUTSIDE */;\n }\n }\n };\n\n var listStyleType = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, type) {\n switch (type) {\n case 'disc':\n return 0 /* DISC */;\n case 'circle':\n return 1 /* CIRCLE */;\n case 'square':\n return 2 /* SQUARE */;\n case 'decimal':\n return 3 /* DECIMAL */;\n case 'cjk-decimal':\n return 4 /* CJK_DECIMAL */;\n case 'decimal-leading-zero':\n return 5 /* DECIMAL_LEADING_ZERO */;\n case 'lower-roman':\n return 6 /* LOWER_ROMAN */;\n case 'upper-roman':\n return 7 /* UPPER_ROMAN */;\n case 'lower-greek':\n return 8 /* LOWER_GREEK */;\n case 'lower-alpha':\n return 9 /* LOWER_ALPHA */;\n case 'upper-alpha':\n return 10 /* UPPER_ALPHA */;\n case 'arabic-indic':\n return 11 /* ARABIC_INDIC */;\n case 'armenian':\n return 12 /* ARMENIAN */;\n case 'bengali':\n return 13 /* BENGALI */;\n case 'cambodian':\n return 14 /* CAMBODIAN */;\n case 'cjk-earthly-branch':\n return 15 /* CJK_EARTHLY_BRANCH */;\n case 'cjk-heavenly-stem':\n return 16 /* CJK_HEAVENLY_STEM */;\n case 'cjk-ideographic':\n return 17 /* CJK_IDEOGRAPHIC */;\n case 'devanagari':\n return 18 /* DEVANAGARI */;\n case 'ethiopic-numeric':\n return 19 /* ETHIOPIC_NUMERIC */;\n case 'georgian':\n return 20 /* GEORGIAN */;\n case 'gujarati':\n return 21 /* GUJARATI */;\n case 'gurmukhi':\n return 22 /* GURMUKHI */;\n case 'hebrew':\n return 22 /* HEBREW */;\n case 'hiragana':\n return 23 /* HIRAGANA */;\n case 'hiragana-iroha':\n return 24 /* HIRAGANA_IROHA */;\n case 'japanese-formal':\n return 25 /* JAPANESE_FORMAL */;\n case 'japanese-informal':\n return 26 /* JAPANESE_INFORMAL */;\n case 'kannada':\n return 27 /* KANNADA */;\n case 'katakana':\n return 28 /* KATAKANA */;\n case 'katakana-iroha':\n return 29 /* KATAKANA_IROHA */;\n case 'khmer':\n return 30 /* KHMER */;\n case 'korean-hangul-formal':\n return 31 /* KOREAN_HANGUL_FORMAL */;\n case 'korean-hanja-formal':\n return 32 /* KOREAN_HANJA_FORMAL */;\n case 'korean-hanja-informal':\n return 33 /* KOREAN_HANJA_INFORMAL */;\n case 'lao':\n return 34 /* LAO */;\n case 'lower-armenian':\n return 35 /* LOWER_ARMENIAN */;\n case 'malayalam':\n return 36 /* MALAYALAM */;\n case 'mongolian':\n return 37 /* MONGOLIAN */;\n case 'myanmar':\n return 38 /* MYANMAR */;\n case 'oriya':\n return 39 /* ORIYA */;\n case 'persian':\n return 40 /* PERSIAN */;\n case 'simp-chinese-formal':\n return 41 /* SIMP_CHINESE_FORMAL */;\n case 'simp-chinese-informal':\n return 42 /* SIMP_CHINESE_INFORMAL */;\n case 'tamil':\n return 43 /* TAMIL */;\n case 'telugu':\n return 44 /* TELUGU */;\n case 'thai':\n return 45 /* THAI */;\n case 'tibetan':\n return 46 /* TIBETAN */;\n case 'trad-chinese-formal':\n return 47 /* TRAD_CHINESE_FORMAL */;\n case 'trad-chinese-informal':\n return 48 /* TRAD_CHINESE_INFORMAL */;\n case 'upper-armenian':\n return 49 /* UPPER_ARMENIAN */;\n case 'disclosure-open':\n return 50 /* DISCLOSURE_OPEN */;\n case 'disclosure-closed':\n return 51 /* DISCLOSURE_CLOSED */;\n case 'none':\n default:\n return -1 /* NONE */;\n }\n }\n };\n\n var marginForSide = function (side) { return ({\n name: \"margin-\" + side,\n initialValue: '0',\n prefix: false,\n type: 4 /* TOKEN_VALUE */\n }); };\n var marginTop = marginForSide('top');\n var marginRight = marginForSide('right');\n var marginBottom = marginForSide('bottom');\n var marginLeft = marginForSide('left');\n\n var overflow = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (overflow) {\n switch (overflow.value) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'scroll':\n return 2 /* SCROLL */;\n case 'clip':\n return 3 /* CLIP */;\n case 'auto':\n return 4 /* AUTO */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n });\n }\n };\n\n var overflowWrap = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'break-word':\n return \"break-word\" /* BREAK_WORD */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var paddingForSide = function (side) { return ({\n name: \"padding-\" + side,\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length-percentage'\n }); };\n var paddingTop = paddingForSide('top');\n var paddingRight = paddingForSide('right');\n var paddingBottom = paddingForSide('bottom');\n var paddingLeft = paddingForSide('left');\n\n var textAlign = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textAlign) {\n switch (textAlign) {\n case 'right':\n return 2 /* RIGHT */;\n case 'center':\n case 'justify':\n return 1 /* CENTER */;\n case 'left':\n default:\n return 0 /* LEFT */;\n }\n }\n };\n\n var position = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, position) {\n switch (position) {\n case 'relative':\n return 1 /* RELATIVE */;\n case 'absolute':\n return 2 /* ABSOLUTE */;\n case 'fixed':\n return 3 /* FIXED */;\n case 'sticky':\n return 4 /* STICKY */;\n }\n return 0 /* STATIC */;\n }\n };\n\n var textShadow = {\n name: 'text-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else {\n shadow.blur = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var textTransform = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, textTransform) {\n switch (textTransform) {\n case 'uppercase':\n return 2 /* UPPERCASE */;\n case 'lowercase':\n return 1 /* LOWERCASE */;\n case 'capitalize':\n return 3 /* CAPITALIZE */;\n }\n return 0 /* NONE */;\n }\n };\n\n var transform$1 = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === 'none') {\n return null;\n }\n if (token.type === 18 /* FUNCTION */) {\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\n }\n return transformFunction(token.values);\n }\n return null;\n }\n };\n var matrix = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n return values.length === 6 ? values : null;\n };\n // doesn't support 3D transforms at the moment\n var matrix3d = function (args) {\n var values = args.filter(function (arg) { return arg.type === 17 /* NUMBER_TOKEN */; }).map(function (arg) { return arg.number; });\n var a1 = values[0], b1 = values[1]; values[2]; values[3]; var a2 = values[4], b2 = values[5]; values[6]; values[7]; values[8]; values[9]; values[10]; values[11]; var a4 = values[12], b4 = values[13]; values[14]; values[15];\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n };\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\n matrix: matrix,\n matrix3d: matrix3d\n };\n\n var DEFAULT_VALUE = {\n type: 16 /* PERCENTAGE_TOKEN */,\n number: 50,\n flags: FLAG_INTEGER\n };\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\n var transformOrigin = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var origins = tokens.filter(isLengthPercentage);\n if (origins.length !== 2) {\n return DEFAULT;\n }\n return [origins[0], origins[1]];\n }\n };\n\n var visibility = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, visibility) {\n switch (visibility) {\n case 'hidden':\n return 1 /* HIDDEN */;\n case 'collapse':\n return 2 /* COLLAPSE */;\n case 'visible':\n default:\n return 0 /* VISIBLE */;\n }\n }\n };\n\n var WORD_BREAK;\n (function (WORD_BREAK) {\n WORD_BREAK[\"NORMAL\"] = \"normal\";\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\n })(WORD_BREAK || (WORD_BREAK = {}));\n var wordBreak = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, wordBreak) {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n };\n\n var zIndex = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: 0 /* VALUE */,\n parse: function (_context, token) {\n if (token.type === 20 /* IDENT_TOKEN */) {\n return { auto: true, order: 0 };\n }\n if (isNumberToken(token)) {\n return { auto: false, order: token.number };\n }\n throw new Error(\"Invalid z-index number parsed\");\n }\n };\n\n var time = {\n name: 'time',\n parse: function (_context, value) {\n if (value.type === 15 /* DIMENSION_TOKEN */) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n throw new Error(\"Unsupported time type\");\n }\n };\n\n var opacity = {\n name: 'opacity',\n initialValue: '1',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n };\n\n var textDecorationColor = {\n name: \"text-decoration-color\",\n initialValue: 'transparent',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var textDecorationLine = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n return tokens\n .filter(isIdentToken)\n .map(function (token) {\n switch (token.value) {\n case 'underline':\n return 1 /* UNDERLINE */;\n case 'overline':\n return 2 /* OVERLINE */;\n case 'line-through':\n return 3 /* LINE_THROUGH */;\n case 'none':\n return 4 /* BLINK */;\n }\n return 0 /* NONE */;\n })\n .filter(function (line) { return line !== 0 /* NONE */; });\n }\n };\n\n var fontFamily = {\n name: \"font-family\",\n initialValue: '',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var accumulator = [];\n var results = [];\n tokens.forEach(function (token) {\n switch (token.type) {\n case 20 /* IDENT_TOKEN */:\n case 0 /* STRING_TOKEN */:\n accumulator.push(token.value);\n break;\n case 17 /* NUMBER_TOKEN */:\n accumulator.push(token.number.toString());\n break;\n case 4 /* COMMA_TOKEN */:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\n }\n };\n\n var fontSize = {\n name: \"font-size\",\n initialValue: '0',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'length'\n };\n\n var fontWeight = {\n name: 'font-weight',\n initialValue: 'normal',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isNumberToken(token)) {\n return token.number;\n }\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n return 400;\n }\n };\n\n var fontVariant = {\n name: 'font-variant',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\n }\n };\n\n var fontStyle = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: 2 /* IDENT_VALUE */,\n parse: function (_context, overflow) {\n switch (overflow) {\n case 'oblique':\n return \"oblique\" /* OBLIQUE */;\n case 'italic':\n return \"italic\" /* ITALIC */;\n case 'normal':\n default:\n return \"normal\" /* NORMAL */;\n }\n }\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\n name: 'content',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return [];\n }\n return tokens;\n }\n };\n\n var counterIncrement = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var increments = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (counter.type === 20 /* IDENT_TOKEN */) {\n var increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({ counter: counter.value, increment: increment });\n }\n }\n return increments;\n }\n };\n\n var counterReset = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return [];\n }\n var resets = [];\n var filtered = tokens.filter(nonWhiteSpace);\n for (var i = 0; i < filtered.length; i++) {\n var counter = filtered[i];\n var next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n var reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({ counter: counter.value, reset: reset });\n }\n }\n return resets;\n }\n };\n\n var duration = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (context, tokens) {\n return tokens.filter(isDimensionToken).map(function (token) { return time.parse(context, token); });\n }\n };\n\n var quotes = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n if (tokens.length === 0) {\n return null;\n }\n var first = tokens[0];\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === 'none') {\n return null;\n }\n var quotes = [];\n var filtered = tokens.filter(isStringToken);\n if (filtered.length % 2 !== 0) {\n return null;\n }\n for (var i = 0; i < filtered.length; i += 2) {\n var open_1 = filtered[i].value;\n var close_1 = filtered[i + 1].value;\n quotes.push({ open: open_1, close: close_1 });\n }\n return quotes;\n }\n };\n var getQuote = function (quotes, depth, open) {\n if (!quotes) {\n return '';\n }\n var quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n return open ? quote.open : quote.close;\n };\n\n var boxShadow = {\n name: 'box-shadow',\n initialValue: 'none',\n type: 1 /* LIST */,\n prefix: false,\n parse: function (context, tokens) {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n return parseFunctionArgs(tokens).map(function (values) {\n var shadow = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n var c = 0;\n for (var i = 0; i < values.length; i++) {\n var token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n }\n else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n }\n else if (c === 1) {\n shadow.offsetY = token;\n }\n else if (c === 2) {\n shadow.blur = token;\n }\n else {\n shadow.spread = token;\n }\n c++;\n }\n else {\n shadow.color = color$1.parse(context, token);\n }\n }\n return shadow;\n });\n }\n };\n\n var paintOrder = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: 1 /* LIST */,\n parse: function (_context, tokens) {\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\n var layers = [];\n tokens.filter(isIdentToken).forEach(function (token) {\n switch (token.value) {\n case 'stroke':\n layers.push(1 /* STROKE */);\n break;\n case 'fill':\n layers.push(0 /* FILL */);\n break;\n case 'markers':\n layers.push(2 /* MARKERS */);\n break;\n }\n });\n DEFAULT_VALUE.forEach(function (value) {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n return layers;\n }\n };\n\n var webkitTextStrokeColor = {\n name: \"-webkit-text-stroke-color\",\n initialValue: 'currentcolor',\n prefix: false,\n type: 3 /* TYPE_VALUE */,\n format: 'color'\n };\n\n var webkitTextStrokeWidth = {\n name: \"-webkit-text-stroke-width\",\n initialValue: '0',\n type: 0 /* VALUE */,\n prefix: false,\n parse: function (_context, token) {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\n function CSSParsedDeclaration(context, declaration) {\n var _a, _b;\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n var overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color);\n this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration);\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform$1, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n CSSParsedDeclaration.prototype.isVisible = function () {\n return this.display > 0 && this.opacity > 0 && this.visibility === 0 /* VISIBLE */;\n };\n CSSParsedDeclaration.prototype.isTransparent = function () {\n return isTransparent(this.backgroundColor);\n };\n CSSParsedDeclaration.prototype.isTransformed = function () {\n return this.transform !== null;\n };\n CSSParsedDeclaration.prototype.isPositioned = function () {\n return this.position !== 0 /* STATIC */;\n };\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\n return this.isPositioned() && !this.zIndex.auto;\n };\n CSSParsedDeclaration.prototype.isFloating = function () {\n return this.float !== 0 /* NONE */;\n };\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\n return (contains(this.display, 4 /* INLINE */) ||\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\n contains(this.display, 536870912 /* INLINE_GRID */) ||\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\n contains(this.display, 134217728 /* INLINE_TABLE */));\n };\n return CSSParsedDeclaration;\n }());\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\n function CSSParsedPseudoDeclaration(context, declaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n return CSSParsedPseudoDeclaration;\n }());\n var CSSParsedCounterDeclaration = /** @class */ (function () {\n function CSSParsedCounterDeclaration(context, declaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n return CSSParsedCounterDeclaration;\n }());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var parse = function (context, descriptor, style) {\n var tokenizer = new Tokenizer();\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n var parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case 2 /* IDENT_VALUE */:\n var token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case 0 /* VALUE */:\n return descriptor.parse(context, parser.parseComponentValue());\n case 1 /* LIST */:\n return descriptor.parse(context, parser.parseComponentValues());\n case 4 /* TOKEN_VALUE */:\n return parser.parseComponentValue();\n case 3 /* TYPE_VALUE */:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return color$1.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n var length_1 = parser.parseComponentValue();\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\n case 'length-percentage':\n var value_1 = parser.parseComponentValue();\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n };\n\n var elementDebuggerAttribute = 'data-html2canvas-debug';\n var getElementDebugType = function (element) {\n var attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return 1 /* ALL */;\n case 'clone':\n return 2 /* CLONE */;\n case 'parse':\n return 3 /* PARSE */;\n case 'render':\n return 4 /* RENDER */;\n default:\n return 0 /* NONE */;\n }\n };\n var isDebugging = function (element, type) {\n var elementType = getElementDebugType(element);\n return elementType === 1 /* ALL */ || type === elementType;\n };\n\n var ElementContainer = /** @class */ (function () {\n function ElementContainer(context, element) {\n this.context = context;\n this.textNodes = [];\n this.elements = [];\n this.flags = 0;\n if (isDebugging(element, 3 /* PARSE */)) {\n debugger;\n }\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some(function (duration) { return duration > 0; })) {\n element.style.animationDuration = '0s';\n }\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n this.bounds = parseBounds(this.context, element);\n if (isDebugging(element, 4 /* RENDER */)) {\n this.flags |= 16 /* DEBUG_RENDER */;\n }\n }\n return ElementContainer;\n }());\n\n /*\n * text-segmentation 1.0.3 <https://github.com/niklasvh/text-segmentation>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var base64 = 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\n\n /*\n * utrie 1.0.2 <https://github.com/niklasvh/utrie>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup$1 = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\n }\n var decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var buffer = typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup$1[base64.charCodeAt(i)];\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return buffer;\n };\n var polyUint16Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n var polyUint32Array = function (buffer) {\n var length = buffer.length;\n var bytes = [];\n for (var i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n };\n\n /** Shift size for getting the index-2 table offset. */\n var UTRIE2_SHIFT_2 = 5;\n /** Shift size for getting the index-1 table offset. */\n var UTRIE2_SHIFT_1 = 6 + 5;\n /**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\n var UTRIE2_INDEX_SHIFT = 2;\n /**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n /**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n /** Number of entries in a data block. 32=0x20 */\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n /** Mask for getting the lower bits for the in-data-block offset. */\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n /** Count the lengths of both BMP pieces. 2080=0x820 */\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n /**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n /**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n /**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n /** Number of entries in an index-2 block. 64=0x40 */\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n /** Mask for getting the lower bits for the in-index-2-block offset. */\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n var slice16 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n };\n var slice32 = function (view, start, end) {\n if (view.slice) {\n return view.slice(start, end);\n }\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n };\n var createTrieFromBase64 = function (base64, _byteLength) {\n var buffer = decode(base64);\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n var headerLength = 24;\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\n var data = view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n };\n var Trie = /** @class */ (function () {\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n Trie.prototype.get = function (codePoint) {\n var ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n };\n return Trie;\n }());\n\n /*\n * base64-arraybuffer 1.0.2 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n // Use a lookup table to find the index.\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n\n var Prepend = 1;\n var CR = 2;\n var LF = 3;\n var Control = 4;\n var Extend = 5;\n var SpacingMark = 7;\n var L = 8;\n var V = 9;\n var T = 10;\n var LV = 11;\n var LVT = 12;\n var ZWJ = 13;\n var Extended_Pictographic = 14;\n var RI = 15;\n var toCodePoints = function (str) {\n var codePoints = [];\n var i = 0;\n var length = str.length;\n while (i < length) {\n var value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n var extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n }\n else {\n codePoints.push(value);\n i--;\n }\n }\n else {\n codePoints.push(value);\n }\n }\n return codePoints;\n };\n var fromCodePoint = function () {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n if (String.fromCodePoint) {\n return String.fromCodePoint.apply(String, codePoints);\n }\n var length = codePoints.length;\n if (!length) {\n return '';\n }\n var codeUnits = [];\n var index = -1;\n var result = '';\n while (++index < length) {\n var codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n }\n else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode.apply(String, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n var UnicodeTrie = createTrieFromBase64(base64);\n var BREAK_NOT_ALLOWED = '×';\n var BREAK_ALLOWED = '÷';\n var codePointToClass = function (codePoint) { return UnicodeTrie.get(codePoint); };\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\n var prevIndex = index - 2;\n var prev = classTypes[prevIndex];\n var current = classTypes[index - 1];\n var next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n var countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n return BREAK_ALLOWED;\n };\n var GraphemeBreaker = function (str) {\n var codePoints = toCodePoints(str);\n var length = codePoints.length;\n var index = 0;\n var lastEnd = 0;\n var classTypes = codePoints.map(codePointToClass);\n return {\n next: function () {\n if (index >= length) {\n return { done: true, value: null };\n }\n var graphemeBreak = BREAK_NOT_ALLOWED;\n while (index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { }\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return { value: value, done: false };\n }\n return { done: true, value: null };\n },\n };\n };\n var splitGraphemes = function (str) {\n var breaker = GraphemeBreaker(str);\n var graphemes = [];\n var bk;\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n return graphemes;\n };\n\n var testRangeBounds = function (document) {\n var TEST_HEIGHT = 123;\n if (document.createRange) {\n var range = document.createRange();\n if (range.getBoundingClientRect) {\n var testElement = document.createElement('boundtest');\n testElement.style.height = TEST_HEIGHT + \"px\";\n testElement.style.display = 'block';\n document.body.appendChild(testElement);\n range.selectNode(testElement);\n var rangeBounds = range.getBoundingClientRect();\n var rangeHeight = Math.round(rangeBounds.height);\n document.body.removeChild(testElement);\n if (rangeHeight === TEST_HEIGHT) {\n return true;\n }\n }\n }\n return false;\n };\n var testIOSLineBreak = function (document) {\n var testElement = document.createElement('boundtest');\n testElement.style.width = '50px';\n testElement.style.display = 'block';\n testElement.style.fontSize = '12px';\n testElement.style.letterSpacing = '0px';\n testElement.style.wordSpacing = '0px';\n document.body.appendChild(testElement);\n var range = document.createRange();\n testElement.innerHTML = typeof ''.repeat === 'function' ? '👨'.repeat(10) : '';\n var node = testElement.firstChild;\n var textList = toCodePoints$1(node.data).map(function (i) { return fromCodePoint$1(i); });\n var offset = 0;\n var prev = {};\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\n var supports = textList.every(function (text, i) {\n range.setStart(node, offset);\n range.setEnd(node, offset + text.length);\n var rect = range.getBoundingClientRect();\n offset += text.length;\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\n prev = rect;\n if (i === 0) {\n return true;\n }\n return boundAhead;\n });\n document.body.removeChild(testElement);\n return supports;\n };\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\n var testSVG = function (document) {\n var img = new Image();\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return false;\n }\n img.src = \"data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>\";\n try {\n ctx.drawImage(img, 0, 0);\n canvas.toDataURL();\n }\n catch (e) {\n return false;\n }\n return true;\n };\n var isGreenPixel = function (data) {\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\n };\n var testForeignObject = function (document) {\n var canvas = document.createElement('canvas');\n var size = 100;\n canvas.width = size;\n canvas.height = size;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return Promise.reject(false);\n }\n ctx.fillStyle = 'rgb(0, 255, 0)';\n ctx.fillRect(0, 0, size, size);\n var img = new Image();\n var greenImageSrc = canvas.toDataURL();\n img.src = greenImageSrc;\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n return loadSerializedSVG$1(svg)\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n var data = ctx.getImageData(0, 0, size, size).data;\n ctx.fillStyle = 'red';\n ctx.fillRect(0, 0, size, size);\n var node = document.createElement('div');\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\n node.style.height = size + \"px\";\n // Firefox 55 does not render inline <img /> tags\n return isGreenPixel(data)\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then(function (img) {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(function () { return false; });\n };\n var createForeignObjectSVG = function (width, height, x, y, node) {\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n foreignObject.appendChild(node);\n return svg;\n };\n var loadSerializedSVG$1 = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n var FEATURES = {\n get SUPPORT_RANGE_BOUNDS() {\n var value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\n return value;\n },\n get SUPPORT_WORD_BREAKING() {\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', { value: value });\n return value;\n },\n get SUPPORT_SVG_DRAWING() {\n var value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\n return value;\n },\n get SUPPORT_CORS_IMAGES() {\n var value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\n return value;\n },\n get SUPPORT_RESPONSE_TYPE() {\n var value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\n return value;\n },\n get SUPPORT_CORS_XHR() {\n var value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = !!(typeof Intl !== 'undefined' && Intl.Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', { value: value });\n return value;\n }\n };\n\n var TextBounds = /** @class */ (function () {\n function TextBounds(text, bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n return TextBounds;\n }());\n var parseTextBounds = function (context, value, styles, node) {\n var textList = breakText(value, styles);\n var textBounds = [];\n var offset = 0;\n textList.forEach(function (text) {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n var clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n var subSegments = segmentGraphemes(text);\n var subOffset_1 = 0;\n subSegments.forEach(function (subSegment) {\n textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects())));\n subOffset_1 += subSegment.length;\n });\n }\n else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n }\n else {\n var replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n }\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n return textBounds;\n };\n var getWrapperBounds = function (context, node) {\n var ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n var parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n var bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n return Bounds.EMPTY;\n };\n var createRange = function (node, offset, length) {\n var ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n var range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n };\n var segmentGraphemes = function (value) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, { granularity: 'grapheme' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return splitGraphemes(value);\n };\n var segmentWords = function (value, styles) {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var segmenter = new Intl.Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map(function (segment) { return segment.segment; });\n }\n return breakWords(value, styles);\n };\n var breakText = function (value, styles) {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n };\n // https://drafts.csswg.org/css-text/#word-separator\n var wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n var breakWords = function (str, styles) {\n var breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === \"break-word\" /* BREAK_WORD */ ? 'break-word' : styles.wordBreak\n });\n var words = [];\n var bk;\n var _loop_1 = function () {\n if (bk.value) {\n var value = bk.value.slice();\n var codePoints = toCodePoints$1(value);\n var word_1 = '';\n codePoints.forEach(function (codePoint) {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word_1 += fromCodePoint$1(codePoint);\n }\n else {\n if (word_1.length) {\n words.push(word_1);\n }\n words.push(fromCodePoint$1(codePoint));\n word_1 = '';\n }\n });\n if (word_1.length) {\n words.push(word_1);\n }\n }\n };\n while (!(bk = breaker.next()).done) {\n _loop_1();\n }\n return words;\n };\n\n var TextContainer = /** @class */ (function () {\n function TextContainer(context, node, styles) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n return TextContainer;\n }());\n var transform = function (text, transform) {\n switch (transform) {\n case 1 /* LOWERCASE */:\n return text.toLowerCase();\n case 3 /* CAPITALIZE */:\n return text.replace(CAPITALIZE, capitalize);\n case 2 /* UPPERCASE */:\n return text.toUpperCase();\n default:\n return text;\n }\n };\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n var capitalize = function (m, p1, p2) {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n return m;\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\n __extends(ImageElementContainer, _super);\n function ImageElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n _this.src = img.currentSrc || img.src;\n _this.intrinsicWidth = img.naturalWidth;\n _this.intrinsicHeight = img.naturalHeight;\n _this.context.cache.addImage(_this.src);\n return _this;\n }\n return ImageElementContainer;\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\n __extends(CanvasElementContainer, _super);\n function CanvasElementContainer(context, canvas) {\n var _this = _super.call(this, context, canvas) || this;\n _this.canvas = canvas;\n _this.intrinsicWidth = canvas.width;\n _this.intrinsicHeight = canvas.height;\n return _this;\n }\n return CanvasElementContainer;\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\n __extends(SVGElementContainer, _super);\n function SVGElementContainer(context, img) {\n var _this = _super.call(this, context, img) || this;\n var s = new XMLSerializer();\n var bounds = parseBounds(context, img);\n img.setAttribute('width', bounds.width + \"px\");\n img.setAttribute('height', bounds.height + \"px\");\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\n _this.intrinsicWidth = img.width.baseVal.value;\n _this.intrinsicHeight = img.height.baseVal.value;\n _this.context.cache.addImage(_this.svg);\n return _this;\n }\n return SVGElementContainer;\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\n __extends(LIElementContainer, _super);\n function LIElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return LIElementContainer;\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\n __extends(OLElementContainer, _super);\n function OLElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.start = element.start;\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n return _this;\n }\n return OLElementContainer;\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\n {\n type: 15 /* DIMENSION_TOKEN */,\n flags: 0,\n unit: 'px',\n number: 3\n }\n ];\n var RADIO_BORDER_RADIUS = [\n {\n type: 16 /* PERCENTAGE_TOKEN */,\n flags: 0,\n number: 50\n }\n ];\n var reformatInputBounds = function (bounds) {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n }\n else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n };\n var getInputValue = function (node) {\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n return value.length === 0 ? node.placeholder || '' : value;\n };\n var CHECKBOX = 'checkbox';\n var RADIO = 'radio';\n var PASSWORD = 'password';\n var INPUT_COLOR = 0x2a2a2aff;\n var InputElementContainer = /** @class */ (function (_super) {\n __extends(InputElementContainer, _super);\n function InputElementContainer(context, input) {\n var _this = _super.call(this, context, input) || this;\n _this.type = input.type.toLowerCase();\n _this.checked = input.checked;\n _this.value = getInputValue(input);\n if (_this.type === CHECKBOX || _this.type === RADIO) {\n _this.styles.backgroundColor = 0xdededeff;\n _this.styles.borderTopColor =\n _this.styles.borderRightColor =\n _this.styles.borderBottomColor =\n _this.styles.borderLeftColor =\n 0xa5a5a5ff;\n _this.styles.borderTopWidth =\n _this.styles.borderRightWidth =\n _this.styles.borderBottomWidth =\n _this.styles.borderLeftWidth =\n 1;\n _this.styles.borderTopStyle =\n _this.styles.borderRightStyle =\n _this.styles.borderBottomStyle =\n _this.styles.borderLeftStyle =\n 1 /* SOLID */;\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\n _this.bounds = reformatInputBounds(_this.bounds);\n }\n switch (_this.type) {\n case CHECKBOX:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n _this.styles.borderTopRightRadius =\n _this.styles.borderTopLeftRadius =\n _this.styles.borderBottomRightRadius =\n _this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n return _this;\n }\n return InputElementContainer;\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\n __extends(SelectElementContainer, _super);\n function SelectElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n var option = element.options[element.selectedIndex || 0];\n _this.value = option ? option.text || '' : '';\n return _this;\n }\n return SelectElementContainer;\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\n __extends(TextareaElementContainer, _super);\n function TextareaElementContainer(context, element) {\n var _this = _super.call(this, context, element) || this;\n _this.value = element.value;\n return _this;\n }\n return TextareaElementContainer;\n }(ElementContainer));\n\n var IFrameElementContainer = /** @class */ (function (_super) {\n __extends(IFrameElementContainer, _super);\n function IFrameElementContainer(context, iframe) {\n var _this = _super.call(this, context, iframe) || this;\n _this.src = iframe.src;\n _this.width = parseInt(iframe.width, 10) || 0;\n _this.height = parseInt(iframe.height, 10) || 0;\n _this.backgroundColor = _this.styles.backgroundColor;\n try {\n if (iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement) {\n _this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\n : COLORS.TRANSPARENT;\n _this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? _this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n }\n catch (e) { }\n return _this;\n }\n return IFrameElementContainer;\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\n var parseNodeTree = function (context, node, parent, root) {\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n }\n else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach(function (childNode) { return parseNodeTree(context, childNode, parent, root); });\n }\n else {\n var container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n }\n else if (createsStackingContext(container.styles)) {\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\n }\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= 8 /* IS_LIST_OWNER */;\n }\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n }\n else if (!isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n };\n var createContainer = function (context, element) {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n return new ElementContainer(context, element);\n };\n var parseTree = function (context, element) {\n var container = createContainer(context, element);\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\n parseNodeTree(context, element, container, container);\n return container;\n };\n var createsRealStackingContext = function (node, container, root) {\n return (container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent()));\n };\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n var isHTMLElementNode = function (node) {\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\n };\n var isSVGElementNode = function (element) {\n return typeof element.className === 'object';\n };\n var isLIElement = function (node) { return node.tagName === 'LI'; };\n var isOLElement = function (node) { return node.tagName === 'OL'; };\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\n var isVideoElement = function (node) { return node.tagName === 'VIDEO'; };\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n var isSlotElement = function (node) { return node.tagName === 'SLOT'; };\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n var isCustomElement = function (node) { return node.tagName.indexOf('-') > 0; };\n\n var CounterState = /** @class */ (function () {\n function CounterState() {\n this.counters = {};\n }\n CounterState.prototype.getCounterValue = function (name) {\n var counter = this.counters[name];\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n };\n CounterState.prototype.getCounterValues = function (name) {\n var counter = this.counters[name];\n return counter ? counter : [];\n };\n CounterState.prototype.pop = function (counters) {\n var _this = this;\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\n };\n CounterState.prototype.parse = function (style) {\n var _this = this;\n var counterIncrement = style.counterIncrement;\n var counterReset = style.counterReset;\n var canReset = true;\n if (counterIncrement !== null) {\n counterIncrement.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n var counterNames = [];\n if (canReset) {\n counterReset.forEach(function (entry) {\n var counter = _this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = _this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n return counterNames;\n };\n return CounterState;\n }());\n var ROMAN_UPPER = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n };\n var ARMENIAN = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Õ”',\n 'Õ“',\n 'Õ’',\n 'Õ‘',\n 'Õ',\n 'Õ',\n 'ÕŽ',\n 'Õ',\n 'ÕŒ',\n 'Õ‹',\n 'ÕŠ',\n 'Õ‰',\n 'Õˆ',\n 'Õ‡',\n 'Õ†',\n 'Õ…',\n 'Õ„',\n 'Õƒ',\n 'Õ‚',\n 'Õ',\n 'Õ€',\n 'Ô¿',\n 'Ô¾',\n 'Ô½',\n 'Ô¼',\n 'Ô»',\n 'Ôº',\n 'Ô¹',\n 'Ô¸',\n 'Ô·',\n 'Ô¶',\n 'Ôµ',\n 'Ô´',\n 'Ô³',\n 'Ô²',\n 'Ô±'\n ]\n };\n var HEBREW = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n '×׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n '×¢',\n 'ס',\n '× ',\n 'מ',\n 'ל',\n '×›',\n 'יט',\n '×™×—',\n '×™×–',\n 'טז',\n 'טו',\n '×™',\n 'ט',\n '×—',\n '×–',\n 'ו',\n '×”',\n 'ד',\n '×’',\n 'ב',\n '×'\n ]\n };\n var GEORGIAN = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'áƒ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'áƒ',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'áƒ'\n ]\n };\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n return (symbols.integers.reduce(function (string, integer, index) {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix);\n };\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\n var string = '';\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n return string;\n };\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n return ((value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\n return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\n }) +\n suffix));\n };\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\n if (suffix === void 0) { suffix = '. '; }\n var codePointRangeLength = symbols.length;\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\n };\n var CJK_ZEROS = 1 << 0;\n var CJK_TEN_COEFFICIENTS = 1 << 1;\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\n }\n var tmp = Math.abs(value);\n var string = suffix;\n if (tmp === 0) {\n return numbers[0] + string;\n }\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\n var coefficient = tmp % 10;\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n }\n else if (coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n }\n else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n return (value < 0 ? negativeSign : '') + string;\n };\n var CHINESE_INFORMAL_MULTIPLIERS = 'å百åƒè¬';\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟è¬';\n var JAPANESE_NEGATIVE = 'マイナス';\n var KOREAN_NEGATIVE = '마ì´ë„ˆìŠ¤';\n var createCounterText = function (value, type, appendSuffix) {\n var defaultSuffix = appendSuffix ? '. ' : '';\n var cjkSuffix = appendSuffix ? 'ã€' : '';\n var koreanSuffix = appendSuffix ? ', ' : '';\n var spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case 0 /* DISC */:\n return '•' + spaceSuffix;\n case 1 /* CIRCLE */:\n return 'â—¦' + spaceSuffix;\n case 2 /* SQUARE */:\n return 'â—¾' + spaceSuffix;\n case 5 /* DECIMAL_LEADING_ZERO */:\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? \"0\" + string : string;\n case 4 /* CJK_DECIMAL */:\n return createCounterStyleFromSymbols(value, '〇一二三四五å…七八ä¹', cjkSuffix);\n case 6 /* LOWER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 7 /* UPPER_ROMAN */:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3 /* DECIMAL */, defaultSuffix);\n case 8 /* LOWER_GREEK */:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case 9 /* LOWER_ALPHA */:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case 10 /* UPPER_ALPHA */:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case 11 /* ARABIC_INDIC */:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case 12 /* ARMENIAN */:\n case 49 /* UPPER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix);\n case 35 /* LOWER_ARMENIAN */:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3 /* DECIMAL */, defaultSuffix).toLowerCase();\n case 13 /* BENGALI */:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case 14 /* CAMBODIAN */:\n case 30 /* KHMER */:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case 15 /* CJK_EARTHLY_BRANCH */:\n return createCounterStyleFromSymbols(value, 'å丑寅å¯è¾°å·³åˆæœªç”³é…‰æˆŒäº¥', cjkSuffix);\n case 16 /* CJK_HEAVENLY_STEM */:\n return createCounterStyleFromSymbols(value, '甲乙丙ä¸æˆŠå·±åºšè¾›å£¬ç™¸', cjkSuffix);\n case 17 /* CJK_IDEOGRAPHIC */:\n case 48 /* TRAD_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五å…七八ä¹', CHINESE_INFORMAL_MULTIPLIERS, 'è² ', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 47 /* TRAD_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹貳åƒè‚†ä¼é™¸æŸ’æŒçŽ–', CHINESE_FORMAL_MULTIPLIERS, 'è² ', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 42 /* SIMP_CHINESE_INFORMAL */:\n return createCJKCounter(value, '零一二三四五å…七八ä¹', CHINESE_INFORMAL_MULTIPLIERS, 'è´Ÿ', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 41 /* SIMP_CHINESE_FORMAL */:\n return createCJKCounter(value, '零壹贰å肆ä¼é™†æŸ’æŒçŽ–', CHINESE_FORMAL_MULTIPLIERS, 'è´Ÿ', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\n case 26 /* JAPANESE_INFORMAL */:\n return createCJKCounter(value, '〇一二三四五å…七八ä¹', 'å百åƒä¸‡', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case 25 /* JAPANESE_FORMAL */:\n return createCJKCounter(value, '零壱å¼å‚å››ä¼å…七八ä¹', '拾百åƒä¸‡', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 31 /* KOREAN_HANGUL_FORMAL */:\n return createCJKCounter(value, 'ì˜ì¼ì´ì‚¼ì‚¬ì˜¤ìœ¡ì¹ 팔구', 'ì‹ë°±ì²œë§Œ', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 33 /* KOREAN_HANJA_INFORMAL */:\n return createCJKCounter(value, '零一二三四五å…七八ä¹', 'å百åƒè¬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case 32 /* KOREAN_HANJA_FORMAL */:\n return createCJKCounter(value, '零壹貳åƒå››äº”å…七八ä¹', '拾百åƒ', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\n case 18 /* DEVANAGARI */:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case 20 /* GEORGIAN */:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3 /* DECIMAL */, defaultSuffix);\n case 21 /* GUJARATI */:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case 22 /* GURMUKHI */:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case 22 /* HEBREW */:\n return createAdditiveCounter(value, 1, 10999, HEBREW, 3 /* DECIMAL */, defaultSuffix);\n case 23 /* HIRAGANA */:\n return createCounterStyleFromSymbols(value, 'ã‚ã„ã†ãˆãŠã‹ããã‘ã“ã•ã—ã™ã›ããŸã¡ã¤ã¦ã¨ãªã«ã¬ãã®ã¯ã²ãµã¸ã»ã¾ã¿ã‚€ã‚もやゆよらりるれã‚ã‚ã‚ã‚‘ã‚’ã‚“');\n case 24 /* HIRAGANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'ã„ã‚ã¯ã«ã»ã¸ã¨ã¡ã‚Šã¬ã‚‹ã‚’ã‚ã‹ã‚ˆãŸã‚Œãã¤ããªã‚‰ã‚€ã†ã‚ã®ãŠãã‚„ã¾ã‘ãµã“ãˆã¦ã‚ã•ãゆã‚ã¿ã—ã‚‘ã²ã‚‚ã›ã™');\n case 27 /* KANNADA */:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case 28 /* KATAKANA */:\n return createCounterStyleFromSymbols(value, 'アイウエオカã‚クケコサシスセソタãƒãƒ„テトナニヌãƒãƒŽãƒãƒ’フヘホマミムメモヤユヨラリルレãƒãƒ¯ãƒ°ãƒ±ãƒ²ãƒ³', cjkSuffix);\n case 29 /* KATAKANA_IROHA */:\n return createCounterStyleFromSymbols(value, 'イãƒãƒãƒ‹ãƒ›ãƒ˜ãƒˆãƒãƒªãƒŒãƒ«ãƒ²ãƒ¯ã‚«ãƒ¨ã‚¿ãƒ¬ã‚½ãƒ„ãƒãƒŠãƒ©ãƒ ウヰノオクヤマケフコエテアサã‚ユメミシヱヒモセス', cjkSuffix);\n case 34 /* LAO */:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case 37 /* MONGOLIAN */:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case 38 /* MYANMAR */:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case 39 /* ORIYA */:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case 40 /* PERSIAN */:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case 43 /* TAMIL */:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case 44 /* TELUGU */:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case 45 /* THAI */:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case 46 /* TIBETAN */:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case 3 /* DECIMAL */:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n var DocumentCloner = /** @class */ (function () {\n function DocumentCloner(context, element, options) {\n this.context = context;\n this.options = options;\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false);\n }\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\n var _this = this;\n var iframe = createIFrameContainer(ownerDocument, windowSize);\n if (!iframe.contentWindow) {\n return Promise.reject(\"Unable to find iframe window\");\n }\n var scrollX = ownerDocument.defaultView.pageXOffset;\n var scrollY = ownerDocument.defaultView.pageYOffset;\n var cloneWindow = iframe.contentWindow;\n var documentClone = cloneWindow.document;\n /* Chrome doesn't detect relative background-images assigned in inline <style> sheets when fetched through getComputedStyle\n if window url is about:blank, we can assign the url to current by writing onto the document\n */\n var iframeLoad = iframeLoader(iframe).then(function () { return __awaiter(_this, void 0, void 0, function () {\n var onclone, referenceElement;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.scrolledElements.forEach(restoreNodeScroll);\n if (cloneWindow) {\n cloneWindow.scrollTo(windowSize.left, windowSize.top);\n if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent) &&\n (cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) {\n this.context.logger.warn('Unable to restore scroll position for cloned document');\n this.context.windowBounds = this.context.windowBounds.add(cloneWindow.scrollX - windowSize.left, cloneWindow.scrollY - windowSize.top, 0, 0);\n }\n }\n onclone = this.options.onclone;\n referenceElement = this.clonedReferenceElement;\n if (typeof referenceElement === 'undefined') {\n return [2 /*return*/, Promise.reject(\"Error finding the \" + this.referenceElement.nodeName + \" in the cloned document\")];\n }\n if (!(documentClone.fonts && documentClone.fonts.ready)) return [3 /*break*/, 2];\n return [4 /*yield*/, documentClone.fonts.ready];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n if (!/(AppleWebKit)/g.test(navigator.userAgent)) return [3 /*break*/, 4];\n return [4 /*yield*/, imagesReady(documentClone)];\n case 3:\n _a.sent();\n _a.label = 4;\n case 4:\n if (typeof onclone === 'function') {\n return [2 /*return*/, Promise.resolve()\n .then(function () { return onclone(documentClone, referenceElement); })\n .then(function () { return iframe; })];\n }\n return [2 /*return*/, iframe];\n }\n });\n }); });\n documentClone.open();\n documentClone.write(serializeDoctype(document.doctype) + \"<html></html>\");\n // Chrome scrolls the parent document for some reason after the write to the cloned window???\n restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY);\n documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement);\n documentClone.close();\n return iframeLoad;\n };\n DocumentCloner.prototype.createElementClone = function (node) {\n if (isDebugging(node, 2 /* CLONE */)) {\n debugger;\n }\n if (isCanvasElement(node)) {\n return this.createCanvasClone(node);\n }\n if (isVideoElement(node)) {\n return this.createVideoClone(node);\n }\n if (isStyleElement(node)) {\n return this.createStyleClone(node);\n }\n var clone = node.cloneNode(false);\n if (isImageElement(clone)) {\n if (isImageElement(node) && node.currentSrc && node.currentSrc !== node.src) {\n clone.src = node.currentSrc;\n clone.srcset = '';\n }\n if (clone.loading === 'lazy') {\n clone.loading = 'eager';\n }\n }\n if (isCustomElement(clone)) {\n return this.createCustomElementClone(clone);\n }\n return clone;\n };\n DocumentCloner.prototype.createCustomElementClone = function (node) {\n var clone = document.createElement('html2canvascustomelement');\n copyCSSStyles(node.style, clone);\n return clone;\n };\n DocumentCloner.prototype.createStyleClone = function (node) {\n try {\n var sheet = node.sheet;\n if (sheet && sheet.cssRules) {\n var css = [].slice.call(sheet.cssRules, 0).reduce(function (css, rule) {\n if (rule && typeof rule.cssText === 'string') {\n return css + rule.cssText;\n }\n return css;\n }, '');\n var style = node.cloneNode(false);\n style.textContent = css;\n return style;\n }\n }\n catch (e) {\n // accessing node.sheet.cssRules throws a DOMException\n this.context.logger.error('Unable to access cssRules property', e);\n if (e.name !== 'SecurityError') {\n throw e;\n }\n }\n return node.cloneNode(false);\n };\n DocumentCloner.prototype.createCanvasClone = function (canvas) {\n var _a;\n if (this.options.inlineImages && canvas.ownerDocument) {\n var img = canvas.ownerDocument.createElement('img');\n try {\n img.src = canvas.toDataURL();\n return img;\n }\n catch (e) {\n this.context.logger.info(\"Unable to inline canvas contents, canvas is tainted\", canvas);\n }\n }\n var clonedCanvas = canvas.cloneNode(false);\n try {\n clonedCanvas.width = canvas.width;\n clonedCanvas.height = canvas.height;\n var ctx = canvas.getContext('2d');\n var clonedCtx = clonedCanvas.getContext('2d');\n if (clonedCtx) {\n if (!this.options.allowTaint && ctx) {\n clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0);\n }\n else {\n var gl = (_a = canvas.getContext('webgl2')) !== null && _a !== void 0 ? _a : canvas.getContext('webgl');\n if (gl) {\n var attribs = gl.getContextAttributes();\n if ((attribs === null || attribs === void 0 ? void 0 : attribs.preserveDrawingBuffer) === false) {\n this.context.logger.warn('Unable to clone WebGL context as it has preserveDrawingBuffer=false', canvas);\n }\n }\n clonedCtx.drawImage(canvas, 0, 0);\n }\n }\n return clonedCanvas;\n }\n catch (e) {\n this.context.logger.info(\"Unable to clone canvas as it is tainted\", canvas);\n }\n return clonedCanvas;\n };\n DocumentCloner.prototype.createVideoClone = function (video) {\n var canvas = video.ownerDocument.createElement('canvas');\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n var ctx = canvas.getContext('2d');\n try {\n if (ctx) {\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n if (!this.options.allowTaint) {\n ctx.getImageData(0, 0, canvas.width, canvas.height);\n }\n }\n return canvas;\n }\n catch (e) {\n this.context.logger.info(\"Unable to clone video as it is tainted\", video);\n }\n var blankCanvas = video.ownerDocument.createElement('canvas');\n blankCanvas.width = video.offsetWidth;\n blankCanvas.height = video.offsetHeight;\n return blankCanvas;\n };\n DocumentCloner.prototype.appendChildNode = function (clone, child, copyStyles) {\n if (!isElementNode(child) ||\n (!isScriptElement(child) &&\n !child.hasAttribute(IGNORE_ATTRIBUTE) &&\n (typeof this.options.ignoreElements !== 'function' || !this.options.ignoreElements(child)))) {\n if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) {\n clone.appendChild(this.cloneNode(child, copyStyles));\n }\n }\n };\n DocumentCloner.prototype.cloneChildNodes = function (node, clone, copyStyles) {\n var _this = this;\n for (var child = node.shadowRoot ? node.shadowRoot.firstChild : node.firstChild; child; child = child.nextSibling) {\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === 'function') {\n var assignedNodes = child.assignedNodes();\n if (assignedNodes.length) {\n assignedNodes.forEach(function (assignedNode) { return _this.appendChildNode(clone, assignedNode, copyStyles); });\n }\n }\n else {\n this.appendChildNode(clone, child, copyStyles);\n }\n }\n };\n DocumentCloner.prototype.cloneNode = function (node, copyStyles) {\n if (isTextNode(node)) {\n return document.createTextNode(node.data);\n }\n if (!node.ownerDocument) {\n return node.cloneNode(false);\n }\n var window = node.ownerDocument.defaultView;\n if (window && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n var clone = this.createElementClone(node);\n clone.style.transitionProperty = 'none';\n var style = window.getComputedStyle(node);\n var styleBefore = window.getComputedStyle(node, ':before');\n var styleAfter = window.getComputedStyle(node, ':after');\n if (this.referenceElement === node && isHTMLElementNode(clone)) {\n this.clonedReferenceElement = clone;\n }\n if (isBodyElement(clone)) {\n createPseudoHideStyles(clone);\n }\n var counters = this.counters.parse(new CSSParsedCounterDeclaration(this.context, style));\n var before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE);\n if (isCustomElement(node)) {\n copyStyles = true;\n }\n if (!isVideoElement(node)) {\n this.cloneChildNodes(node, clone, copyStyles);\n }\n if (before) {\n clone.insertBefore(before, clone.firstChild);\n }\n var after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER);\n if (after) {\n clone.appendChild(after);\n }\n this.counters.pop(counters);\n if ((style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node)) ||\n copyStyles) {\n copyCSSStyles(style, clone);\n }\n if (node.scrollTop !== 0 || node.scrollLeft !== 0) {\n this.scrolledElements.push([clone, node.scrollLeft, node.scrollTop]);\n }\n if ((isTextareaElement(node) || isSelectElement(node)) &&\n (isTextareaElement(clone) || isSelectElement(clone))) {\n clone.value = node.value;\n }\n return clone;\n }\n return node.cloneNode(false);\n };\n DocumentCloner.prototype.resolvePseudoContent = function (node, clone, style, pseudoElt) {\n var _this = this;\n if (!style) {\n return;\n }\n var value = style.content;\n var document = clone.ownerDocument;\n if (!document || !value || value === 'none' || value === '-moz-alt-content' || style.display === 'none') {\n return;\n }\n this.counters.parse(new CSSParsedCounterDeclaration(this.context, style));\n var declaration = new CSSParsedPseudoDeclaration(this.context, style);\n var anonymousReplacedElement = document.createElement('html2canvaspseudoelement');\n copyCSSStyles(style, anonymousReplacedElement);\n declaration.content.forEach(function (token) {\n if (token.type === 0 /* STRING_TOKEN */) {\n anonymousReplacedElement.appendChild(document.createTextNode(token.value));\n }\n else if (token.type === 22 /* URL_TOKEN */) {\n var img = document.createElement('img');\n img.src = token.value;\n img.style.opacity = '1';\n anonymousReplacedElement.appendChild(img);\n }\n else if (token.type === 18 /* FUNCTION */) {\n if (token.name === 'attr') {\n var attr = token.values.filter(isIdentToken);\n if (attr.length) {\n anonymousReplacedElement.appendChild(document.createTextNode(node.getAttribute(attr[0].value) || ''));\n }\n }\n else if (token.name === 'counter') {\n var _a = token.values.filter(nonFunctionArgSeparator), counter = _a[0], counterStyle = _a[1];\n if (counter && isIdentToken(counter)) {\n var counterState = _this.counters.getCounterValue(counter.value);\n var counterType = counterStyle && isIdentToken(counterStyle)\n ? listStyleType.parse(_this.context, counterStyle.value)\n : 3 /* DECIMAL */;\n anonymousReplacedElement.appendChild(document.createTextNode(createCounterText(counterState, counterType, false)));\n }\n }\n else if (token.name === 'counters') {\n var _b = token.values.filter(nonFunctionArgSeparator), counter = _b[0], delim = _b[1], counterStyle = _b[2];\n if (counter && isIdentToken(counter)) {\n var counterStates = _this.counters.getCounterValues(counter.value);\n var counterType_1 = counterStyle && isIdentToken(counterStyle)\n ? listStyleType.parse(_this.context, counterStyle.value)\n : 3 /* DECIMAL */;\n var separator = delim && delim.type === 0 /* STRING_TOKEN */ ? delim.value : '';\n var text = counterStates\n .map(function (value) { return createCounterText(value, counterType_1, false); })\n .join(separator);\n anonymousReplacedElement.appendChild(document.createTextNode(text));\n }\n }\n else ;\n }\n else if (token.type === 20 /* IDENT_TOKEN */) {\n switch (token.value) {\n case 'open-quote':\n anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, _this.quoteDepth++, true)));\n break;\n case 'close-quote':\n anonymousReplacedElement.appendChild(document.createTextNode(getQuote(declaration.quotes, --_this.quoteDepth, false)));\n break;\n default:\n // safari doesn't parse string tokens correctly because of lack of quotes\n anonymousReplacedElement.appendChild(document.createTextNode(token.value));\n }\n }\n });\n anonymousReplacedElement.className = PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + \" \" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;\n var newClassName = pseudoElt === PseudoElementType.BEFORE\n ? \" \" + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE\n : \" \" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER;\n if (isSVGElementNode(clone)) {\n clone.className.baseValue += newClassName;\n }\n else {\n clone.className += newClassName;\n }\n return anonymousReplacedElement;\n };\n DocumentCloner.destroy = function (container) {\n if (container.parentNode) {\n container.parentNode.removeChild(container);\n return true;\n }\n return false;\n };\n return DocumentCloner;\n }());\n var PseudoElementType;\n (function (PseudoElementType) {\n PseudoElementType[PseudoElementType[\"BEFORE\"] = 0] = \"BEFORE\";\n PseudoElementType[PseudoElementType[\"AFTER\"] = 1] = \"AFTER\";\n })(PseudoElementType || (PseudoElementType = {}));\n var createIFrameContainer = function (ownerDocument, bounds) {\n var cloneIframeContainer = ownerDocument.createElement('iframe');\n cloneIframeContainer.className = 'html2canvas-container';\n cloneIframeContainer.style.visibility = 'hidden';\n cloneIframeContainer.style.position = 'fixed';\n cloneIframeContainer.style.left = '-10000px';\n cloneIframeContainer.style.top = '0px';\n cloneIframeContainer.style.border = '0';\n cloneIframeContainer.width = bounds.width.toString();\n cloneIframeContainer.height = bounds.height.toString();\n cloneIframeContainer.scrolling = 'no'; // ios won't scroll without it\n cloneIframeContainer.setAttribute(IGNORE_ATTRIBUTE, 'true');\n ownerDocument.body.appendChild(cloneIframeContainer);\n return cloneIframeContainer;\n };\n var imageReady = function (img) {\n return new Promise(function (resolve) {\n if (img.complete) {\n resolve();\n return;\n }\n if (!img.src) {\n resolve();\n return;\n }\n img.onload = resolve;\n img.onerror = resolve;\n });\n };\n var imagesReady = function (document) {\n return Promise.all([].slice.call(document.images, 0).map(imageReady));\n };\n var iframeLoader = function (iframe) {\n return new Promise(function (resolve, reject) {\n var cloneWindow = iframe.contentWindow;\n if (!cloneWindow) {\n return reject(\"No window assigned for iframe\");\n }\n var documentClone = cloneWindow.document;\n cloneWindow.onload = iframe.onload = function () {\n cloneWindow.onload = iframe.onload = null;\n var interval = setInterval(function () {\n if (documentClone.body.childNodes.length > 0 && documentClone.readyState === 'complete') {\n clearInterval(interval);\n resolve(iframe);\n }\n }, 50);\n };\n });\n };\n var ignoredStyleProperties = [\n 'all',\n 'd',\n 'content' // Safari shows pseudoelements if content is set\n ];\n var copyCSSStyles = function (style, target) {\n // Edge does not provide value for cssText\n for (var i = style.length - 1; i >= 0; i--) {\n var property = style.item(i);\n if (ignoredStyleProperties.indexOf(property) === -1) {\n target.style.setProperty(property, style.getPropertyValue(property));\n }\n }\n return target;\n };\n var serializeDoctype = function (doctype) {\n var str = '';\n if (doctype) {\n str += '<!DOCTYPE ';\n if (doctype.name) {\n str += doctype.name;\n }\n if (doctype.internalSubset) {\n str += doctype.internalSubset;\n }\n if (doctype.publicId) {\n str += \"\\\"\" + doctype.publicId + \"\\\"\";\n }\n if (doctype.systemId) {\n str += \"\\\"\" + doctype.systemId + \"\\\"\";\n }\n str += '>';\n }\n return str;\n };\n var restoreOwnerScroll = function (ownerDocument, x, y) {\n if (ownerDocument &&\n ownerDocument.defaultView &&\n (x !== ownerDocument.defaultView.pageXOffset || y !== ownerDocument.defaultView.pageYOffset)) {\n ownerDocument.defaultView.scrollTo(x, y);\n }\n };\n var restoreNodeScroll = function (_a) {\n var element = _a[0], x = _a[1], y = _a[2];\n element.scrollLeft = x;\n element.scrollTop = y;\n };\n var PSEUDO_BEFORE = ':before';\n var PSEUDO_AFTER = ':after';\n var PSEUDO_HIDE_ELEMENT_CLASS_BEFORE = '___html2canvas___pseudoelement_before';\n var PSEUDO_HIDE_ELEMENT_CLASS_AFTER = '___html2canvas___pseudoelement_after';\n var PSEUDO_HIDE_ELEMENT_STYLE = \"{\\n content: \\\"\\\" !important;\\n display: none !important;\\n}\";\n var createPseudoHideStyles = function (body) {\n createStyles(body, \".\" + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + PSEUDO_BEFORE + PSEUDO_HIDE_ELEMENT_STYLE + \"\\n .\" + PSEUDO_HIDE_ELEMENT_CLASS_AFTER + PSEUDO_AFTER + PSEUDO_HIDE_ELEMENT_STYLE);\n };\n var createStyles = function (body, styles) {\n var document = body.ownerDocument;\n if (document) {\n var style = document.createElement('style');\n style.textContent = styles;\n body.appendChild(style);\n }\n };\n\n var CacheStorage = /** @class */ (function () {\n function CacheStorage() {\n }\n CacheStorage.getOrigin = function (url) {\n var link = CacheStorage._link;\n if (!link) {\n return 'about:blank';\n }\n link.href = url;\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\n return link.protocol + link.hostname + link.port;\n };\n CacheStorage.isSameOrigin = function (src) {\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\n };\n CacheStorage.setContext = function (window) {\n CacheStorage._link = window.document.createElement('a');\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\n };\n CacheStorage._origin = 'about:blank';\n return CacheStorage;\n }());\n var Cache = /** @class */ (function () {\n function Cache(context, _options) {\n this.context = context;\n this._options = _options;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._cache = {};\n }\n Cache.prototype.addImage = function (src) {\n var result = Promise.resolve();\n if (this.has(src)) {\n return result;\n }\n if (isBlobImage(src) || isRenderable(src)) {\n (this._cache[src] = this.loadImage(src)).catch(function () {\n // prevent unhandled rejection\n });\n return result;\n }\n return result;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Cache.prototype.match = function (src) {\n return this._cache[src];\n };\n Cache.prototype.loadImage = function (key) {\n return __awaiter(this, void 0, void 0, function () {\n var isSameOrigin, useCORS, useProxy, src;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isSameOrigin = CacheStorage.isSameOrigin(key);\n useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\n useProxy = !isInlineImage(key) &&\n !isSameOrigin &&\n !isBlobImage(key) &&\n typeof this._options.proxy === 'string' &&\n FEATURES.SUPPORT_CORS_XHR &&\n !useCORS;\n if (!isSameOrigin &&\n this._options.allowTaint === false &&\n !isInlineImage(key) &&\n !isBlobImage(key) &&\n !useProxy &&\n !useCORS) {\n return [2 /*return*/];\n }\n src = key;\n if (!useProxy) return [3 /*break*/, 2];\n return [4 /*yield*/, this.proxy(src)];\n case 1:\n src = _a.sent();\n _a.label = 2;\n case 2:\n this.context.logger.debug(\"Added image \" + key.substring(0, 256));\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () { return resolve(img); };\n img.onerror = reject;\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\n if (isInlineBase64Image(src) || useCORS) {\n img.crossOrigin = 'anonymous';\n }\n img.src = src;\n if (img.complete === true) {\n // Inline XML images may fail to parse, throwing an Error later on\n setTimeout(function () { return resolve(img); }, 500);\n }\n if (_this._options.imageTimeout > 0) {\n setTimeout(function () { return reject(\"Timed out (\" + _this._options.imageTimeout + \"ms) loading image\"); }, _this._options.imageTimeout);\n }\n })];\n case 3: return [2 /*return*/, _a.sent()];\n }\n });\n });\n };\n Cache.prototype.has = function (key) {\n return typeof this._cache[key] !== 'undefined';\n };\n Cache.prototype.keys = function () {\n return Promise.resolve(Object.keys(this._cache));\n };\n Cache.prototype.proxy = function (src) {\n var _this = this;\n var proxy = this._options.proxy;\n if (!proxy) {\n throw new Error('No proxy defined');\n }\n var key = src.substring(0, 256);\n return new Promise(function (resolve, reject) {\n var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\n var xhr = new XMLHttpRequest();\n xhr.onload = function () {\n if (xhr.status === 200) {\n if (responseType === 'text') {\n resolve(xhr.response);\n }\n else {\n var reader_1 = new FileReader();\n reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);\n reader_1.addEventListener('error', function (e) { return reject(e); }, false);\n reader_1.readAsDataURL(xhr.response);\n }\n }\n else {\n reject(\"Failed to proxy resource \" + key + \" with status code \" + xhr.status);\n }\n };\n xhr.onerror = reject;\n var queryString = proxy.indexOf('?') > -1 ? '&' : '?';\n xhr.open('GET', \"\" + proxy + queryString + \"url=\" + encodeURIComponent(src) + \"&responseType=\" + responseType);\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\n xhr.responseType = responseType;\n }\n if (_this._options.imageTimeout) {\n var timeout_1 = _this._options.imageTimeout;\n xhr.timeout = timeout_1;\n xhr.ontimeout = function () { return reject(\"Timed out (\" + timeout_1 + \"ms) proxying \" + key); };\n }\n xhr.send();\n });\n };\n return Cache;\n }());\n var INLINE_SVG = /^data:image\\/svg\\+xml/i;\n var INLINE_BASE64 = /^data:image\\/.*;base64,/i;\n var INLINE_IMG = /^data:image\\/.*/i;\n var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };\n var isInlineImage = function (src) { return INLINE_IMG.test(src); };\n var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };\n var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };\n var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };\n\n var Vector = /** @class */ (function () {\n function Vector(x, y) {\n this.type = 0 /* VECTOR */;\n this.x = x;\n this.y = y;\n }\n Vector.prototype.add = function (deltaX, deltaY) {\n return new Vector(this.x + deltaX, this.y + deltaY);\n };\n return Vector;\n }());\n\n var lerp = function (a, b, t) {\n return new Vector(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);\n };\n var BezierCurve = /** @class */ (function () {\n function BezierCurve(start, startControl, endControl, end) {\n this.type = 1 /* BEZIER_CURVE */;\n this.start = start;\n this.startControl = startControl;\n this.endControl = endControl;\n this.end = end;\n }\n BezierCurve.prototype.subdivide = function (t, firstHalf) {\n var ab = lerp(this.start, this.startControl, t);\n var bc = lerp(this.startControl, this.endControl, t);\n var cd = lerp(this.endControl, this.end, t);\n var abbc = lerp(ab, bc, t);\n var bccd = lerp(bc, cd, t);\n var dest = lerp(abbc, bccd, t);\n return firstHalf ? new BezierCurve(this.start, ab, abbc, dest) : new BezierCurve(dest, bccd, cd, this.end);\n };\n BezierCurve.prototype.add = function (deltaX, deltaY) {\n return new BezierCurve(this.start.add(deltaX, deltaY), this.startControl.add(deltaX, deltaY), this.endControl.add(deltaX, deltaY), this.end.add(deltaX, deltaY));\n };\n BezierCurve.prototype.reverse = function () {\n return new BezierCurve(this.end, this.endControl, this.startControl, this.start);\n };\n return BezierCurve;\n }());\n var isBezierCurve = function (path) { return path.type === 1 /* BEZIER_CURVE */; };\n\n var BoundCurves = /** @class */ (function () {\n function BoundCurves(element) {\n var styles = element.styles;\n var bounds = element.bounds;\n var _a = getAbsoluteValueForTuple(styles.borderTopLeftRadius, bounds.width, bounds.height), tlh = _a[0], tlv = _a[1];\n var _b = getAbsoluteValueForTuple(styles.borderTopRightRadius, bounds.width, bounds.height), trh = _b[0], trv = _b[1];\n var _c = getAbsoluteValueForTuple(styles.borderBottomRightRadius, bounds.width, bounds.height), brh = _c[0], brv = _c[1];\n var _d = getAbsoluteValueForTuple(styles.borderBottomLeftRadius, bounds.width, bounds.height), blh = _d[0], blv = _d[1];\n var factors = [];\n factors.push((tlh + trh) / bounds.width);\n factors.push((blh + brh) / bounds.width);\n factors.push((tlv + blv) / bounds.height);\n factors.push((trv + brv) / bounds.height);\n var maxFactor = Math.max.apply(Math, factors);\n if (maxFactor > 1) {\n tlh /= maxFactor;\n tlv /= maxFactor;\n trh /= maxFactor;\n trv /= maxFactor;\n brh /= maxFactor;\n brv /= maxFactor;\n blh /= maxFactor;\n blv /= maxFactor;\n }\n var topWidth = bounds.width - trh;\n var rightHeight = bounds.height - brv;\n var bottomWidth = bounds.width - brh;\n var leftHeight = bounds.height - blv;\n var borderTopWidth = styles.borderTopWidth;\n var borderRightWidth = styles.borderRightWidth;\n var borderBottomWidth = styles.borderBottomWidth;\n var borderLeftWidth = styles.borderLeftWidth;\n var paddingTop = getAbsoluteValue(styles.paddingTop, element.bounds.width);\n var paddingRight = getAbsoluteValue(styles.paddingRight, element.bounds.width);\n var paddingBottom = getAbsoluteValue(styles.paddingBottom, element.bounds.width);\n var paddingLeft = getAbsoluteValue(styles.paddingLeft, element.bounds.width);\n this.topLeftBorderDoubleOuterBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth / 3, bounds.top + borderTopWidth / 3, tlh - borderLeftWidth / 3, tlv - borderTopWidth / 3, CORNER.TOP_LEFT)\n : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + borderTopWidth / 3);\n this.topRightBorderDoubleOuterBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth / 3, trh - borderRightWidth / 3, trv - borderTopWidth / 3, CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth / 3, bounds.top + borderTopWidth / 3);\n this.bottomRightBorderDoubleOuterBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth / 3, brv - borderBottomWidth / 3, CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth / 3, bounds.top + bounds.height - borderBottomWidth / 3);\n this.bottomLeftBorderDoubleOuterBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth / 3, bounds.top + leftHeight, blh - borderLeftWidth / 3, blv - borderBottomWidth / 3, CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + bounds.height - borderBottomWidth / 3);\n this.topLeftBorderDoubleInnerBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3, tlh - (borderLeftWidth * 2) / 3, tlv - (borderTopWidth * 2) / 3, CORNER.TOP_LEFT)\n : new Vector(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3);\n this.topRightBorderDoubleInnerBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + topWidth, bounds.top + (borderTopWidth * 2) / 3, trh - (borderRightWidth * 2) / 3, trv - (borderTopWidth * 2) / 3, CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width - (borderRightWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3);\n this.bottomRightBorderDoubleInnerBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - (borderRightWidth * 2) / 3, brv - (borderBottomWidth * 2) / 3, CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width - (borderRightWidth * 2) / 3, bounds.top + bounds.height - (borderBottomWidth * 2) / 3);\n this.bottomLeftBorderDoubleInnerBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + leftHeight, blh - (borderLeftWidth * 2) / 3, blv - (borderBottomWidth * 2) / 3, CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + bounds.height - (borderBottomWidth * 2) / 3);\n this.topLeftBorderStroke =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth / 2, bounds.top + borderTopWidth / 2, tlh - borderLeftWidth / 2, tlv - borderTopWidth / 2, CORNER.TOP_LEFT)\n : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + borderTopWidth / 2);\n this.topRightBorderStroke =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth / 2, trh - borderRightWidth / 2, trv - borderTopWidth / 2, CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth / 2, bounds.top + borderTopWidth / 2);\n this.bottomRightBorderStroke =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth / 2, brv - borderBottomWidth / 2, CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth / 2, bounds.top + bounds.height - borderBottomWidth / 2);\n this.bottomLeftBorderStroke =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth / 2, bounds.top + leftHeight, blh - borderLeftWidth / 2, blv - borderBottomWidth / 2, CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + bounds.height - borderBottomWidth / 2);\n this.topLeftBorderBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT)\n : new Vector(bounds.left, bounds.top);\n this.topRightBorderBox =\n trh > 0 || trv > 0\n ? getCurvePoints(bounds.left + topWidth, bounds.top, trh, trv, CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width, bounds.top);\n this.bottomRightBorderBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh, brv, CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width, bounds.top + bounds.height);\n this.bottomLeftBorderBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left, bounds.top + leftHeight, blh, blv, CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left, bounds.top + bounds.height);\n this.topLeftPaddingBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + borderTopWidth, Math.max(0, tlh - borderLeftWidth), Math.max(0, tlv - borderTopWidth), CORNER.TOP_LEFT)\n : new Vector(bounds.left + borderLeftWidth, bounds.top + borderTopWidth);\n this.topRightPaddingBox =\n trh > 0 || trv > 0\n ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width - borderRightWidth), bounds.top + borderTopWidth, topWidth > bounds.width + borderRightWidth ? 0 : Math.max(0, trh - borderRightWidth), Math.max(0, trv - borderTopWidth), CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + borderTopWidth);\n this.bottomRightPaddingBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth), bounds.top + Math.min(rightHeight, bounds.height - borderBottomWidth), Math.max(0, brh - borderRightWidth), Math.max(0, brv - borderBottomWidth), CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + bounds.height - borderBottomWidth);\n this.bottomLeftPaddingBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth, bounds.top + Math.min(leftHeight, bounds.height - borderBottomWidth), Math.max(0, blh - borderLeftWidth), Math.max(0, blv - borderBottomWidth), CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left + borderLeftWidth, bounds.top + bounds.height - borderBottomWidth);\n this.topLeftContentBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop, Math.max(0, tlh - (borderLeftWidth + paddingLeft)), Math.max(0, tlv - (borderTopWidth + paddingTop)), CORNER.TOP_LEFT)\n : new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop);\n this.topRightContentBox =\n trh > 0 || trv > 0\n ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth + paddingLeft), bounds.top + borderTopWidth + paddingTop, topWidth > bounds.width + borderLeftWidth + paddingLeft ? 0 : trh - borderLeftWidth + paddingLeft, trv - (borderTopWidth + paddingTop), CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + borderTopWidth + paddingTop);\n this.bottomRightContentBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - (borderLeftWidth + paddingLeft)), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth + paddingTop), Math.max(0, brh - (borderRightWidth + paddingRight)), brv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width - (borderRightWidth + paddingRight), bounds.top + bounds.height - (borderBottomWidth + paddingBottom));\n this.bottomLeftContentBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left + borderLeftWidth + paddingLeft, bounds.top + leftHeight, Math.max(0, blh - (borderLeftWidth + paddingLeft)), blv - (borderBottomWidth + paddingBottom), CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + bounds.height - (borderBottomWidth + paddingBottom));\n }\n return BoundCurves;\n }());\n var CORNER;\n (function (CORNER) {\n CORNER[CORNER[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\n CORNER[CORNER[\"TOP_RIGHT\"] = 1] = \"TOP_RIGHT\";\n CORNER[CORNER[\"BOTTOM_RIGHT\"] = 2] = \"BOTTOM_RIGHT\";\n CORNER[CORNER[\"BOTTOM_LEFT\"] = 3] = \"BOTTOM_LEFT\";\n })(CORNER || (CORNER = {}));\n var getCurvePoints = function (x, y, r1, r2, position) {\n var kappa = 4 * ((Math.sqrt(2) - 1) / 3);\n var ox = r1 * kappa; // control point offset horizontal\n var oy = r2 * kappa; // control point offset vertical\n var xm = x + r1; // x-middle\n var ym = y + r2; // y-middle\n switch (position) {\n case CORNER.TOP_LEFT:\n return new BezierCurve(new Vector(x, ym), new Vector(x, ym - oy), new Vector(xm - ox, y), new Vector(xm, y));\n case CORNER.TOP_RIGHT:\n return new BezierCurve(new Vector(x, y), new Vector(x + ox, y), new Vector(xm, ym - oy), new Vector(xm, ym));\n case CORNER.BOTTOM_RIGHT:\n return new BezierCurve(new Vector(xm, y), new Vector(xm, y + oy), new Vector(x + ox, ym), new Vector(x, ym));\n case CORNER.BOTTOM_LEFT:\n default:\n return new BezierCurve(new Vector(xm, ym), new Vector(xm - ox, ym), new Vector(x, y + oy), new Vector(x, y));\n }\n };\n var calculateBorderBoxPath = function (curves) {\n return [curves.topLeftBorderBox, curves.topRightBorderBox, curves.bottomRightBorderBox, curves.bottomLeftBorderBox];\n };\n var calculateContentBoxPath = function (curves) {\n return [\n curves.topLeftContentBox,\n curves.topRightContentBox,\n curves.bottomRightContentBox,\n curves.bottomLeftContentBox\n ];\n };\n var calculatePaddingBoxPath = function (curves) {\n return [\n curves.topLeftPaddingBox,\n curves.topRightPaddingBox,\n curves.bottomRightPaddingBox,\n curves.bottomLeftPaddingBox\n ];\n };\n\n var TransformEffect = /** @class */ (function () {\n function TransformEffect(offsetX, offsetY, matrix) {\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n this.matrix = matrix;\n this.type = 0 /* TRANSFORM */;\n this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */;\n }\n return TransformEffect;\n }());\n var ClipEffect = /** @class */ (function () {\n function ClipEffect(path, target) {\n this.path = path;\n this.target = target;\n this.type = 1 /* CLIP */;\n }\n return ClipEffect;\n }());\n var OpacityEffect = /** @class */ (function () {\n function OpacityEffect(opacity) {\n this.opacity = opacity;\n this.type = 2 /* OPACITY */;\n this.target = 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */;\n }\n return OpacityEffect;\n }());\n var isTransformEffect = function (effect) {\n return effect.type === 0 /* TRANSFORM */;\n };\n var isClipEffect = function (effect) { return effect.type === 1 /* CLIP */; };\n var isOpacityEffect = function (effect) { return effect.type === 2 /* OPACITY */; };\n\n var equalPath = function (a, b) {\n if (a.length === b.length) {\n return a.some(function (v, i) { return v === b[i]; });\n }\n return false;\n };\n var transformPath = function (path, deltaX, deltaY, deltaW, deltaH) {\n return path.map(function (point, index) {\n switch (index) {\n case 0:\n return point.add(deltaX, deltaY);\n case 1:\n return point.add(deltaX + deltaW, deltaY);\n case 2:\n return point.add(deltaX + deltaW, deltaY + deltaH);\n case 3:\n return point.add(deltaX, deltaY + deltaH);\n }\n return point;\n });\n };\n\n var StackingContext = /** @class */ (function () {\n function StackingContext(container) {\n this.element = container;\n this.inlineLevel = [];\n this.nonInlineLevel = [];\n this.negativeZIndex = [];\n this.zeroOrAutoZIndexOrTransformedOrOpacity = [];\n this.positiveZIndex = [];\n this.nonPositionedFloats = [];\n this.nonPositionedInlineLevel = [];\n }\n return StackingContext;\n }());\n var ElementPaint = /** @class */ (function () {\n function ElementPaint(container, parent) {\n this.container = container;\n this.parent = parent;\n this.effects = [];\n this.curves = new BoundCurves(this.container);\n if (this.container.styles.opacity < 1) {\n this.effects.push(new OpacityEffect(this.container.styles.opacity));\n }\n if (this.container.styles.transform !== null) {\n var offsetX = this.container.bounds.left + this.container.styles.transformOrigin[0].number;\n var offsetY = this.container.bounds.top + this.container.styles.transformOrigin[1].number;\n var matrix = this.container.styles.transform;\n this.effects.push(new TransformEffect(offsetX, offsetY, matrix));\n }\n if (this.container.styles.overflowX !== 0 /* VISIBLE */) {\n var borderBox = calculateBorderBoxPath(this.curves);\n var paddingBox = calculatePaddingBoxPath(this.curves);\n if (equalPath(borderBox, paddingBox)) {\n this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));\n }\n else {\n this.effects.push(new ClipEffect(borderBox, 2 /* BACKGROUND_BORDERS */));\n this.effects.push(new ClipEffect(paddingBox, 4 /* CONTENT */));\n }\n }\n }\n ElementPaint.prototype.getEffects = function (target) {\n var inFlow = [2 /* ABSOLUTE */, 3 /* FIXED */].indexOf(this.container.styles.position) === -1;\n var parent = this.parent;\n var effects = this.effects.slice(0);\n while (parent) {\n var croplessEffects = parent.effects.filter(function (effect) { return !isClipEffect(effect); });\n if (inFlow || parent.container.styles.position !== 0 /* STATIC */ || !parent.parent) {\n effects.unshift.apply(effects, croplessEffects);\n inFlow = [2 /* ABSOLUTE */, 3 /* FIXED */].indexOf(parent.container.styles.position) === -1;\n if (parent.container.styles.overflowX !== 0 /* VISIBLE */) {\n var borderBox = calculateBorderBoxPath(parent.curves);\n var paddingBox = calculatePaddingBoxPath(parent.curves);\n if (!equalPath(borderBox, paddingBox)) {\n effects.unshift(new ClipEffect(paddingBox, 2 /* BACKGROUND_BORDERS */ | 4 /* CONTENT */));\n }\n }\n }\n else {\n effects.unshift.apply(effects, croplessEffects);\n }\n parent = parent.parent;\n }\n return effects.filter(function (effect) { return contains(effect.target, target); });\n };\n return ElementPaint;\n }());\n var parseStackTree = function (parent, stackingContext, realStackingContext, listItems) {\n parent.container.elements.forEach(function (child) {\n var treatAsRealStackingContext = contains(child.flags, 4 /* CREATES_REAL_STACKING_CONTEXT */);\n var createsStackingContext = contains(child.flags, 2 /* CREATES_STACKING_CONTEXT */);\n var paintContainer = new ElementPaint(child, parent);\n if (contains(child.styles.display, 2048 /* LIST_ITEM */)) {\n listItems.push(paintContainer);\n }\n var listOwnerItems = contains(child.flags, 8 /* IS_LIST_OWNER */) ? [] : listItems;\n if (treatAsRealStackingContext || createsStackingContext) {\n var parentStack = treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext;\n var stack = new StackingContext(paintContainer);\n if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) {\n var order_1 = child.styles.zIndex.order;\n if (order_1 < 0) {\n var index_1 = 0;\n parentStack.negativeZIndex.some(function (current, i) {\n if (order_1 > current.element.container.styles.zIndex.order) {\n index_1 = i;\n return false;\n }\n else if (index_1 > 0) {\n return true;\n }\n return false;\n });\n parentStack.negativeZIndex.splice(index_1, 0, stack);\n }\n else if (order_1 > 0) {\n var index_2 = 0;\n parentStack.positiveZIndex.some(function (current, i) {\n if (order_1 >= current.element.container.styles.zIndex.order) {\n index_2 = i + 1;\n return false;\n }\n else if (index_2 > 0) {\n return true;\n }\n return false;\n });\n parentStack.positiveZIndex.splice(index_2, 0, stack);\n }\n else {\n parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack);\n }\n }\n else {\n if (child.styles.isFloating()) {\n parentStack.nonPositionedFloats.push(stack);\n }\n else {\n parentStack.nonPositionedInlineLevel.push(stack);\n }\n }\n parseStackTree(paintContainer, stack, treatAsRealStackingContext ? stack : realStackingContext, listOwnerItems);\n }\n else {\n if (child.styles.isInlineLevel()) {\n stackingContext.inlineLevel.push(paintContainer);\n }\n else {\n stackingContext.nonInlineLevel.push(paintContainer);\n }\n parseStackTree(paintContainer, stackingContext, realStackingContext, listOwnerItems);\n }\n if (contains(child.flags, 8 /* IS_LIST_OWNER */)) {\n processListItems(child, listOwnerItems);\n }\n });\n };\n var processListItems = function (owner, elements) {\n var numbering = owner instanceof OLElementContainer ? owner.start : 1;\n var reversed = owner instanceof OLElementContainer ? owner.reversed : false;\n for (var i = 0; i < elements.length; i++) {\n var item = elements[i];\n if (item.container instanceof LIElementContainer &&\n typeof item.container.value === 'number' &&\n item.container.value !== 0) {\n numbering = item.container.value;\n }\n item.listValue = createCounterText(numbering, item.container.styles.listStyleType, true);\n numbering += reversed ? -1 : 1;\n }\n };\n var parseStackingContexts = function (container) {\n var paintContainer = new ElementPaint(container, null);\n var root = new StackingContext(paintContainer);\n var listItems = [];\n parseStackTree(paintContainer, root, root, listItems);\n processListItems(paintContainer.container, listItems);\n return root;\n };\n\n var parsePathForBorder = function (curves, borderSide) {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftPaddingBox, curves.topRightBorderBox, curves.topRightPaddingBox);\n case 1:\n return createPathFromCurves(curves.topRightBorderBox, curves.topRightPaddingBox, curves.bottomRightBorderBox, curves.bottomRightPaddingBox);\n case 2:\n return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox);\n case 3:\n default:\n return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox, curves.topLeftBorderBox, curves.topLeftPaddingBox);\n }\n };\n var parsePathForBorderDoubleOuter = function (curves, borderSide) {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox, curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox);\n case 1:\n return createPathFromCurves(curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox, curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox);\n case 2:\n return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox, curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox);\n case 3:\n default:\n return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox, curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox);\n }\n };\n var parsePathForBorderDoubleInner = function (curves, borderSide) {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox, curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox);\n case 1:\n return createPathFromCurves(curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox, curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox);\n case 2:\n return createPathFromCurves(curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox);\n case 3:\n default:\n return createPathFromCurves(curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox, curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox);\n }\n };\n var parsePathForBorderStroke = function (curves, borderSide) {\n switch (borderSide) {\n case 0:\n return createStrokePathFromCurves(curves.topLeftBorderStroke, curves.topRightBorderStroke);\n case 1:\n return createStrokePathFromCurves(curves.topRightBorderStroke, curves.bottomRightBorderStroke);\n case 2:\n return createStrokePathFromCurves(curves.bottomRightBorderStroke, curves.bottomLeftBorderStroke);\n case 3:\n default:\n return createStrokePathFromCurves(curves.bottomLeftBorderStroke, curves.topLeftBorderStroke);\n }\n };\n var createStrokePathFromCurves = function (outer1, outer2) {\n var path = [];\n if (isBezierCurve(outer1)) {\n path.push(outer1.subdivide(0.5, false));\n }\n else {\n path.push(outer1);\n }\n if (isBezierCurve(outer2)) {\n path.push(outer2.subdivide(0.5, true));\n }\n else {\n path.push(outer2);\n }\n return path;\n };\n var createPathFromCurves = function (outer1, inner1, outer2, inner2) {\n var path = [];\n if (isBezierCurve(outer1)) {\n path.push(outer1.subdivide(0.5, false));\n }\n else {\n path.push(outer1);\n }\n if (isBezierCurve(outer2)) {\n path.push(outer2.subdivide(0.5, true));\n }\n else {\n path.push(outer2);\n }\n if (isBezierCurve(inner2)) {\n path.push(inner2.subdivide(0.5, true).reverse());\n }\n else {\n path.push(inner2);\n }\n if (isBezierCurve(inner1)) {\n path.push(inner1.subdivide(0.5, false).reverse());\n }\n else {\n path.push(inner1);\n }\n return path;\n };\n\n var paddingBox = function (element) {\n var bounds = element.bounds;\n var styles = element.styles;\n return bounds.add(styles.borderLeftWidth, styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth), -(styles.borderTopWidth + styles.borderBottomWidth));\n };\n var contentBox = function (element) {\n var styles = element.styles;\n var bounds = element.bounds;\n var paddingLeft = getAbsoluteValue(styles.paddingLeft, bounds.width);\n var paddingRight = getAbsoluteValue(styles.paddingRight, bounds.width);\n var paddingTop = getAbsoluteValue(styles.paddingTop, bounds.width);\n var paddingBottom = getAbsoluteValue(styles.paddingBottom, bounds.width);\n return bounds.add(paddingLeft + styles.borderLeftWidth, paddingTop + styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth + paddingLeft + paddingRight), -(styles.borderTopWidth + styles.borderBottomWidth + paddingTop + paddingBottom));\n };\n\n var calculateBackgroundPositioningArea = function (backgroundOrigin, element) {\n if (backgroundOrigin === 0 /* BORDER_BOX */) {\n return element.bounds;\n }\n if (backgroundOrigin === 2 /* CONTENT_BOX */) {\n return contentBox(element);\n }\n return paddingBox(element);\n };\n var calculateBackgroundPaintingArea = function (backgroundClip, element) {\n if (backgroundClip === 0 /* BORDER_BOX */) {\n return element.bounds;\n }\n if (backgroundClip === 2 /* CONTENT_BOX */) {\n return contentBox(element);\n }\n return paddingBox(element);\n };\n var calculateBackgroundRendering = function (container, index, intrinsicSize) {\n var backgroundPositioningArea = calculateBackgroundPositioningArea(getBackgroundValueForIndex(container.styles.backgroundOrigin, index), container);\n var backgroundPaintingArea = calculateBackgroundPaintingArea(getBackgroundValueForIndex(container.styles.backgroundClip, index), container);\n var backgroundImageSize = calculateBackgroundSize(getBackgroundValueForIndex(container.styles.backgroundSize, index), intrinsicSize, backgroundPositioningArea);\n var sizeWidth = backgroundImageSize[0], sizeHeight = backgroundImageSize[1];\n var position = getAbsoluteValueForTuple(getBackgroundValueForIndex(container.styles.backgroundPosition, index), backgroundPositioningArea.width - sizeWidth, backgroundPositioningArea.height - sizeHeight);\n var path = calculateBackgroundRepeatPath(getBackgroundValueForIndex(container.styles.backgroundRepeat, index), position, backgroundImageSize, backgroundPositioningArea, backgroundPaintingArea);\n var offsetX = Math.round(backgroundPositioningArea.left + position[0]);\n var offsetY = Math.round(backgroundPositioningArea.top + position[1]);\n return [path, offsetX, offsetY, sizeWidth, sizeHeight];\n };\n var isAuto = function (token) { return isIdentToken(token) && token.value === BACKGROUND_SIZE.AUTO; };\n var hasIntrinsicValue = function (value) { return typeof value === 'number'; };\n var calculateBackgroundSize = function (size, _a, bounds) {\n var intrinsicWidth = _a[0], intrinsicHeight = _a[1], intrinsicProportion = _a[2];\n var first = size[0], second = size[1];\n if (!first) {\n return [0, 0];\n }\n if (isLengthPercentage(first) && second && isLengthPercentage(second)) {\n return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)];\n }\n var hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion);\n if (isIdentToken(first) && (first.value === BACKGROUND_SIZE.CONTAIN || first.value === BACKGROUND_SIZE.COVER)) {\n if (hasIntrinsicValue(intrinsicProportion)) {\n var targetRatio = bounds.width / bounds.height;\n return targetRatio < intrinsicProportion !== (first.value === BACKGROUND_SIZE.COVER)\n ? [bounds.width, bounds.width / intrinsicProportion]\n : [bounds.height * intrinsicProportion, bounds.height];\n }\n return [bounds.width, bounds.height];\n }\n var hasIntrinsicWidth = hasIntrinsicValue(intrinsicWidth);\n var hasIntrinsicHeight = hasIntrinsicValue(intrinsicHeight);\n var hasIntrinsicDimensions = hasIntrinsicWidth || hasIntrinsicHeight;\n // If the background-size is auto or auto auto:\n if (isAuto(first) && (!second || isAuto(second))) {\n // If the image has both horizontal and vertical intrinsic dimensions, it's rendered at that size.\n if (hasIntrinsicWidth && hasIntrinsicHeight) {\n return [intrinsicWidth, intrinsicHeight];\n }\n // If the image has no intrinsic dimensions and has no intrinsic proportions,\n // it's rendered at the size of the background positioning area.\n if (!hasIntrinsicProportion && !hasIntrinsicDimensions) {\n return [bounds.width, bounds.height];\n }\n // TODO If the image has no intrinsic dimensions but has intrinsic proportions, it's rendered as if contain had been specified instead.\n // If the image has only one intrinsic dimension and has intrinsic proportions, it's rendered at the size corresponding to that one dimension.\n // The other dimension is computed using the specified dimension and the intrinsic proportions.\n if (hasIntrinsicDimensions && hasIntrinsicProportion) {\n var width_1 = hasIntrinsicWidth\n ? intrinsicWidth\n : intrinsicHeight * intrinsicProportion;\n var height_1 = hasIntrinsicHeight\n ? intrinsicHeight\n : intrinsicWidth / intrinsicProportion;\n return [width_1, height_1];\n }\n // If the image has only one intrinsic dimension but has no intrinsic proportions,\n // it's rendered using the specified dimension and the other dimension of the background positioning area.\n var width_2 = hasIntrinsicWidth ? intrinsicWidth : bounds.width;\n var height_2 = hasIntrinsicHeight ? intrinsicHeight : bounds.height;\n return [width_2, height_2];\n }\n // If the image has intrinsic proportions, it's stretched to the specified dimension.\n // The unspecified dimension is computed using the specified dimension and the intrinsic proportions.\n if (hasIntrinsicProportion) {\n var width_3 = 0;\n var height_3 = 0;\n if (isLengthPercentage(first)) {\n width_3 = getAbsoluteValue(first, bounds.width);\n }\n else if (isLengthPercentage(second)) {\n height_3 = getAbsoluteValue(second, bounds.height);\n }\n if (isAuto(first)) {\n width_3 = height_3 * intrinsicProportion;\n }\n else if (!second || isAuto(second)) {\n height_3 = width_3 / intrinsicProportion;\n }\n return [width_3, height_3];\n }\n // If the image has no intrinsic proportions, it's stretched to the specified dimension.\n // The unspecified dimension is computed using the image's corresponding intrinsic dimension,\n // if there is one. If there is no such intrinsic dimension,\n // it becomes the corresponding dimension of the background positioning area.\n var width = null;\n var height = null;\n if (isLengthPercentage(first)) {\n width = getAbsoluteValue(first, bounds.width);\n }\n else if (second && isLengthPercentage(second)) {\n height = getAbsoluteValue(second, bounds.height);\n }\n if (width !== null && (!second || isAuto(second))) {\n height =\n hasIntrinsicWidth && hasIntrinsicHeight\n ? (width / intrinsicWidth) * intrinsicHeight\n : bounds.height;\n }\n if (height !== null && isAuto(first)) {\n width =\n hasIntrinsicWidth && hasIntrinsicHeight\n ? (height / intrinsicHeight) * intrinsicWidth\n : bounds.width;\n }\n if (width !== null && height !== null) {\n return [width, height];\n }\n throw new Error(\"Unable to calculate background-size for element\");\n };\n var getBackgroundValueForIndex = function (values, index) {\n var value = values[index];\n if (typeof value === 'undefined') {\n return values[0];\n }\n return value;\n };\n var calculateBackgroundRepeatPath = function (repeat, _a, _b, backgroundPositioningArea, backgroundPaintingArea) {\n var x = _a[0], y = _a[1];\n var width = _b[0], height = _b[1];\n switch (repeat) {\n case 2 /* REPEAT_X */:\n return [\n new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)),\n new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)),\n new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)),\n new Vector(Math.round(backgroundPositioningArea.left), Math.round(height + backgroundPositioningArea.top + y))\n ];\n case 3 /* REPEAT_Y */:\n return [\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)),\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)),\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)),\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top))\n ];\n case 1 /* NO_REPEAT */:\n return [\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y)),\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y)),\n new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y + height)),\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y + height))\n ];\n default:\n return [\n new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.top)),\n new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.top)),\n new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)),\n new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top))\n ];\n }\n };\n\n var SMALL_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\n var SAMPLE_TEXT = 'Hidden Text';\n var FontMetrics = /** @class */ (function () {\n function FontMetrics(document) {\n this._data = {};\n this._document = document;\n }\n FontMetrics.prototype.parseMetrics = function (fontFamily, fontSize) {\n var container = this._document.createElement('div');\n var img = this._document.createElement('img');\n var span = this._document.createElement('span');\n var body = this._document.body;\n container.style.visibility = 'hidden';\n container.style.fontFamily = fontFamily;\n container.style.fontSize = fontSize;\n container.style.margin = '0';\n container.style.padding = '0';\n container.style.whiteSpace = 'nowrap';\n body.appendChild(container);\n img.src = SMALL_IMAGE;\n img.width = 1;\n img.height = 1;\n img.style.margin = '0';\n img.style.padding = '0';\n img.style.verticalAlign = 'baseline';\n span.style.fontFamily = fontFamily;\n span.style.fontSize = fontSize;\n span.style.margin = '0';\n span.style.padding = '0';\n span.appendChild(this._document.createTextNode(SAMPLE_TEXT));\n container.appendChild(span);\n container.appendChild(img);\n var baseline = img.offsetTop - span.offsetTop + 2;\n container.removeChild(span);\n container.appendChild(this._document.createTextNode(SAMPLE_TEXT));\n container.style.lineHeight = 'normal';\n img.style.verticalAlign = 'super';\n var middle = img.offsetTop - container.offsetTop + 2;\n body.removeChild(container);\n return { baseline: baseline, middle: middle };\n };\n FontMetrics.prototype.getMetrics = function (fontFamily, fontSize) {\n var key = fontFamily + \" \" + fontSize;\n if (typeof this._data[key] === 'undefined') {\n this._data[key] = this.parseMetrics(fontFamily, fontSize);\n }\n return this._data[key];\n };\n return FontMetrics;\n }());\n\n var Renderer = /** @class */ (function () {\n function Renderer(context, options) {\n this.context = context;\n this.options = options;\n }\n return Renderer;\n }());\n\n var MASK_OFFSET = 10000;\n var CanvasRenderer = /** @class */ (function (_super) {\n __extends(CanvasRenderer, _super);\n function CanvasRenderer(context, options) {\n var _this = _super.call(this, context, options) || this;\n _this._activeEffects = [];\n _this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\n _this.ctx = _this.canvas.getContext('2d');\n if (!options.canvas) {\n _this.canvas.width = Math.floor(options.width * options.scale);\n _this.canvas.height = Math.floor(options.height * options.scale);\n _this.canvas.style.width = options.width + \"px\";\n _this.canvas.style.height = options.height + \"px\";\n }\n _this.fontMetrics = new FontMetrics(document);\n _this.ctx.scale(_this.options.scale, _this.options.scale);\n _this.ctx.translate(-options.x, -options.y);\n _this.ctx.textBaseline = 'bottom';\n _this._activeEffects = [];\n _this.context.logger.debug(\"Canvas renderer initialized (\" + options.width + \"x\" + options.height + \") with scale \" + options.scale);\n return _this;\n }\n CanvasRenderer.prototype.applyEffects = function (effects) {\n var _this = this;\n while (this._activeEffects.length) {\n this.popEffect();\n }\n effects.forEach(function (effect) { return _this.applyEffect(effect); });\n };\n CanvasRenderer.prototype.applyEffect = function (effect) {\n this.ctx.save();\n if (isOpacityEffect(effect)) {\n this.ctx.globalAlpha = effect.opacity;\n }\n if (isTransformEffect(effect)) {\n this.ctx.translate(effect.offsetX, effect.offsetY);\n this.ctx.transform(effect.matrix[0], effect.matrix[1], effect.matrix[2], effect.matrix[3], effect.matrix[4], effect.matrix[5]);\n this.ctx.translate(-effect.offsetX, -effect.offsetY);\n }\n if (isClipEffect(effect)) {\n this.path(effect.path);\n this.ctx.clip();\n }\n this._activeEffects.push(effect);\n };\n CanvasRenderer.prototype.popEffect = function () {\n this._activeEffects.pop();\n this.ctx.restore();\n };\n CanvasRenderer.prototype.renderStack = function (stack) {\n return __awaiter(this, void 0, void 0, function () {\n var styles;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n styles = stack.element.container.styles;\n if (!styles.isVisible()) return [3 /*break*/, 2];\n return [4 /*yield*/, this.renderStackContent(stack)];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderNode = function (paint) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (contains(paint.container.flags, 16 /* DEBUG_RENDER */)) {\n debugger;\n }\n if (!paint.container.styles.isVisible()) return [3 /*break*/, 3];\n return [4 /*yield*/, this.renderNodeBackgroundAndBorders(paint)];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.renderNodeContent(paint)];\n case 2:\n _a.sent();\n _a.label = 3;\n case 3: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderTextWithLetterSpacing = function (text, letterSpacing, baseline) {\n var _this = this;\n if (letterSpacing === 0) {\n this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + baseline);\n }\n else {\n var letters = segmentGraphemes(text.text);\n letters.reduce(function (left, letter) {\n _this.ctx.fillText(letter, left, text.bounds.top + baseline);\n return left + _this.ctx.measureText(letter).width;\n }, text.bounds.left);\n }\n };\n CanvasRenderer.prototype.createFontStyle = function (styles) {\n var fontVariant = styles.fontVariant\n .filter(function (variant) { return variant === 'normal' || variant === 'small-caps'; })\n .join('');\n var fontFamily = fixIOSSystemFonts(styles.fontFamily).join(', ');\n var fontSize = isDimensionToken(styles.fontSize)\n ? \"\" + styles.fontSize.number + styles.fontSize.unit\n : styles.fontSize.number + \"px\";\n return [\n [styles.fontStyle, fontVariant, styles.fontWeight, fontSize, fontFamily].join(' '),\n fontFamily,\n fontSize\n ];\n };\n CanvasRenderer.prototype.renderTextNode = function (text, styles) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, font, fontFamily, fontSize, _b, baseline, middle, paintOrder;\n var _this = this;\n return __generator(this, function (_c) {\n _a = this.createFontStyle(styles), font = _a[0], fontFamily = _a[1], fontSize = _a[2];\n this.ctx.font = font;\n this.ctx.direction = styles.direction === 1 /* RTL */ ? 'rtl' : 'ltr';\n this.ctx.textAlign = 'left';\n this.ctx.textBaseline = 'alphabetic';\n _b = this.fontMetrics.getMetrics(fontFamily, fontSize), baseline = _b.baseline, middle = _b.middle;\n paintOrder = styles.paintOrder;\n text.textBounds.forEach(function (text) {\n paintOrder.forEach(function (paintOrderLayer) {\n switch (paintOrderLayer) {\n case 0 /* FILL */:\n _this.ctx.fillStyle = asString(styles.color);\n _this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline);\n var textShadows = styles.textShadow;\n if (textShadows.length && text.text.trim().length) {\n textShadows\n .slice(0)\n .reverse()\n .forEach(function (textShadow) {\n _this.ctx.shadowColor = asString(textShadow.color);\n _this.ctx.shadowOffsetX = textShadow.offsetX.number * _this.options.scale;\n _this.ctx.shadowOffsetY = textShadow.offsetY.number * _this.options.scale;\n _this.ctx.shadowBlur = textShadow.blur.number;\n _this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline);\n });\n _this.ctx.shadowColor = '';\n _this.ctx.shadowOffsetX = 0;\n _this.ctx.shadowOffsetY = 0;\n _this.ctx.shadowBlur = 0;\n }\n if (styles.textDecorationLine.length) {\n _this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color);\n styles.textDecorationLine.forEach(function (textDecorationLine) {\n switch (textDecorationLine) {\n case 1 /* UNDERLINE */:\n // Draws a line at the baseline of the font\n // TODO As some browsers display the line as more than 1px if the font-size is big,\n // need to take that into account both in position and size\n _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top + baseline), text.bounds.width, 1);\n break;\n case 2 /* OVERLINE */:\n _this.ctx.fillRect(text.bounds.left, Math.round(text.bounds.top), text.bounds.width, 1);\n break;\n case 3 /* LINE_THROUGH */:\n // TODO try and find exact position for line-through\n _this.ctx.fillRect(text.bounds.left, Math.ceil(text.bounds.top + middle), text.bounds.width, 1);\n break;\n }\n });\n }\n break;\n case 1 /* STROKE */:\n if (styles.webkitTextStrokeWidth && text.text.trim().length) {\n _this.ctx.strokeStyle = asString(styles.webkitTextStrokeColor);\n _this.ctx.lineWidth = styles.webkitTextStrokeWidth;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _this.ctx.lineJoin = !!window.chrome ? 'miter' : 'round';\n _this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + baseline);\n }\n _this.ctx.strokeStyle = '';\n _this.ctx.lineWidth = 0;\n _this.ctx.lineJoin = 'miter';\n break;\n }\n });\n });\n return [2 /*return*/];\n });\n });\n };\n CanvasRenderer.prototype.renderReplacedElement = function (container, curves, image) {\n if (image && container.intrinsicWidth > 0 && container.intrinsicHeight > 0) {\n var box = contentBox(container);\n var path = calculatePaddingBoxPath(curves);\n this.path(path);\n this.ctx.save();\n this.ctx.clip();\n this.ctx.drawImage(image, 0, 0, container.intrinsicWidth, container.intrinsicHeight, box.left, box.top, box.width, box.height);\n this.ctx.restore();\n }\n };\n CanvasRenderer.prototype.renderNodeContent = function (paint) {\n return __awaiter(this, void 0, void 0, function () {\n var container, curves, styles, _i, _a, child, image, image, iframeRenderer, canvas, size, _b, fontFamily, fontSize, baseline, bounds, x, textBounds, img, image, url, fontFamily, bounds;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.applyEffects(paint.getEffects(4 /* CONTENT */));\n container = paint.container;\n curves = paint.curves;\n styles = container.styles;\n _i = 0, _a = container.textNodes;\n _c.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n child = _a[_i];\n return [4 /*yield*/, this.renderTextNode(child, styles)];\n case 2:\n _c.sent();\n _c.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4:\n if (!(container instanceof ImageElementContainer)) return [3 /*break*/, 8];\n _c.label = 5;\n case 5:\n _c.trys.push([5, 7, , 8]);\n return [4 /*yield*/, this.context.cache.match(container.src)];\n case 6:\n image = _c.sent();\n this.renderReplacedElement(container, curves, image);\n return [3 /*break*/, 8];\n case 7:\n _c.sent();\n this.context.logger.error(\"Error loading image \" + container.src);\n return [3 /*break*/, 8];\n case 8:\n if (container instanceof CanvasElementContainer) {\n this.renderReplacedElement(container, curves, container.canvas);\n }\n if (!(container instanceof SVGElementContainer)) return [3 /*break*/, 12];\n _c.label = 9;\n case 9:\n _c.trys.push([9, 11, , 12]);\n return [4 /*yield*/, this.context.cache.match(container.svg)];\n case 10:\n image = _c.sent();\n this.renderReplacedElement(container, curves, image);\n return [3 /*break*/, 12];\n case 11:\n _c.sent();\n this.context.logger.error(\"Error loading svg \" + container.svg.substring(0, 255));\n return [3 /*break*/, 12];\n case 12:\n if (!(container instanceof IFrameElementContainer && container.tree)) return [3 /*break*/, 14];\n iframeRenderer = new CanvasRenderer(this.context, {\n scale: this.options.scale,\n backgroundColor: container.backgroundColor,\n x: 0,\n y: 0,\n width: container.width,\n height: container.height\n });\n return [4 /*yield*/, iframeRenderer.render(container.tree)];\n case 13:\n canvas = _c.sent();\n if (container.width && container.height) {\n this.ctx.drawImage(canvas, 0, 0, container.width, container.height, container.bounds.left, container.bounds.top, container.bounds.width, container.bounds.height);\n }\n _c.label = 14;\n case 14:\n if (container instanceof InputElementContainer) {\n size = Math.min(container.bounds.width, container.bounds.height);\n if (container.type === CHECKBOX) {\n if (container.checked) {\n this.ctx.save();\n this.path([\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79),\n new Vector(container.bounds.left + size * 0.16, container.bounds.top + size * 0.5549),\n new Vector(container.bounds.left + size * 0.27347, container.bounds.top + size * 0.44071),\n new Vector(container.bounds.left + size * 0.39694, container.bounds.top + size * 0.5649),\n new Vector(container.bounds.left + size * 0.72983, container.bounds.top + size * 0.23),\n new Vector(container.bounds.left + size * 0.84, container.bounds.top + size * 0.34085),\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79)\n ]);\n this.ctx.fillStyle = asString(INPUT_COLOR);\n this.ctx.fill();\n this.ctx.restore();\n }\n }\n else if (container.type === RADIO) {\n if (container.checked) {\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.arc(container.bounds.left + size / 2, container.bounds.top + size / 2, size / 4, 0, Math.PI * 2, true);\n this.ctx.fillStyle = asString(INPUT_COLOR);\n this.ctx.fill();\n this.ctx.restore();\n }\n }\n }\n if (isTextInputElement(container) && container.value.length) {\n _b = this.createFontStyle(styles), fontFamily = _b[0], fontSize = _b[1];\n baseline = this.fontMetrics.getMetrics(fontFamily, fontSize).baseline;\n this.ctx.font = fontFamily;\n this.ctx.fillStyle = asString(styles.color);\n this.ctx.textBaseline = 'alphabetic';\n this.ctx.textAlign = canvasTextAlign(container.styles.textAlign);\n bounds = contentBox(container);\n x = 0;\n switch (container.styles.textAlign) {\n case 1 /* CENTER */:\n x += bounds.width / 2;\n break;\n case 2 /* RIGHT */:\n x += bounds.width;\n break;\n }\n textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1);\n this.ctx.save();\n this.path([\n new Vector(bounds.left, bounds.top),\n new Vector(bounds.left + bounds.width, bounds.top),\n new Vector(bounds.left + bounds.width, bounds.top + bounds.height),\n new Vector(bounds.left, bounds.top + bounds.height)\n ]);\n this.ctx.clip();\n this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing, baseline);\n this.ctx.restore();\n this.ctx.textBaseline = 'alphabetic';\n this.ctx.textAlign = 'left';\n }\n if (!contains(container.styles.display, 2048 /* LIST_ITEM */)) return [3 /*break*/, 20];\n if (!(container.styles.listStyleImage !== null)) return [3 /*break*/, 19];\n img = container.styles.listStyleImage;\n if (!(img.type === 0 /* URL */)) return [3 /*break*/, 18];\n image = void 0;\n url = img.url;\n _c.label = 15;\n case 15:\n _c.trys.push([15, 17, , 18]);\n return [4 /*yield*/, this.context.cache.match(url)];\n case 16:\n image = _c.sent();\n this.ctx.drawImage(image, container.bounds.left - (image.width + 10), container.bounds.top);\n return [3 /*break*/, 18];\n case 17:\n _c.sent();\n this.context.logger.error(\"Error loading list-style-image \" + url);\n return [3 /*break*/, 18];\n case 18: return [3 /*break*/, 20];\n case 19:\n if (paint.listValue && container.styles.listStyleType !== -1 /* NONE */) {\n fontFamily = this.createFontStyle(styles)[0];\n this.ctx.font = fontFamily;\n this.ctx.fillStyle = asString(styles.color);\n this.ctx.textBaseline = 'middle';\n this.ctx.textAlign = 'right';\n bounds = new Bounds(container.bounds.left, container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width), container.bounds.width, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1);\n this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 2);\n this.ctx.textBaseline = 'bottom';\n this.ctx.textAlign = 'left';\n }\n _c.label = 20;\n case 20: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderStackContent = function (stack) {\n return __awaiter(this, void 0, void 0, function () {\n var _i, _a, child, _b, _c, child, _d, _e, child, _f, _g, child, _h, _j, child, _k, _l, child, _m, _o, child;\n return __generator(this, function (_p) {\n switch (_p.label) {\n case 0:\n if (contains(stack.element.container.flags, 16 /* DEBUG_RENDER */)) {\n debugger;\n }\n // https://www.w3.org/TR/css-position-3/#painting-order\n // 1. the background and borders of the element forming the stacking context.\n return [4 /*yield*/, this.renderNodeBackgroundAndBorders(stack.element)];\n case 1:\n // https://www.w3.org/TR/css-position-3/#painting-order\n // 1. the background and borders of the element forming the stacking context.\n _p.sent();\n _i = 0, _a = stack.negativeZIndex;\n _p.label = 2;\n case 2:\n if (!(_i < _a.length)) return [3 /*break*/, 5];\n child = _a[_i];\n return [4 /*yield*/, this.renderStack(child)];\n case 3:\n _p.sent();\n _p.label = 4;\n case 4:\n _i++;\n return [3 /*break*/, 2];\n case 5: \n // 3. For all its in-flow, non-positioned, block-level descendants in tree order:\n return [4 /*yield*/, this.renderNodeContent(stack.element)];\n case 6:\n // 3. For all its in-flow, non-positioned, block-level descendants in tree order:\n _p.sent();\n _b = 0, _c = stack.nonInlineLevel;\n _p.label = 7;\n case 7:\n if (!(_b < _c.length)) return [3 /*break*/, 10];\n child = _c[_b];\n return [4 /*yield*/, this.renderNode(child)];\n case 8:\n _p.sent();\n _p.label = 9;\n case 9:\n _b++;\n return [3 /*break*/, 7];\n case 10:\n _d = 0, _e = stack.nonPositionedFloats;\n _p.label = 11;\n case 11:\n if (!(_d < _e.length)) return [3 /*break*/, 14];\n child = _e[_d];\n return [4 /*yield*/, this.renderStack(child)];\n case 12:\n _p.sent();\n _p.label = 13;\n case 13:\n _d++;\n return [3 /*break*/, 11];\n case 14:\n _f = 0, _g = stack.nonPositionedInlineLevel;\n _p.label = 15;\n case 15:\n if (!(_f < _g.length)) return [3 /*break*/, 18];\n child = _g[_f];\n return [4 /*yield*/, this.renderStack(child)];\n case 16:\n _p.sent();\n _p.label = 17;\n case 17:\n _f++;\n return [3 /*break*/, 15];\n case 18:\n _h = 0, _j = stack.inlineLevel;\n _p.label = 19;\n case 19:\n if (!(_h < _j.length)) return [3 /*break*/, 22];\n child = _j[_h];\n return [4 /*yield*/, this.renderNode(child)];\n case 20:\n _p.sent();\n _p.label = 21;\n case 21:\n _h++;\n return [3 /*break*/, 19];\n case 22:\n _k = 0, _l = stack.zeroOrAutoZIndexOrTransformedOrOpacity;\n _p.label = 23;\n case 23:\n if (!(_k < _l.length)) return [3 /*break*/, 26];\n child = _l[_k];\n return [4 /*yield*/, this.renderStack(child)];\n case 24:\n _p.sent();\n _p.label = 25;\n case 25:\n _k++;\n return [3 /*break*/, 23];\n case 26:\n _m = 0, _o = stack.positiveZIndex;\n _p.label = 27;\n case 27:\n if (!(_m < _o.length)) return [3 /*break*/, 30];\n child = _o[_m];\n return [4 /*yield*/, this.renderStack(child)];\n case 28:\n _p.sent();\n _p.label = 29;\n case 29:\n _m++;\n return [3 /*break*/, 27];\n case 30: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.mask = function (paths) {\n this.ctx.beginPath();\n this.ctx.moveTo(0, 0);\n this.ctx.lineTo(this.canvas.width, 0);\n this.ctx.lineTo(this.canvas.width, this.canvas.height);\n this.ctx.lineTo(0, this.canvas.height);\n this.ctx.lineTo(0, 0);\n this.formatPath(paths.slice(0).reverse());\n this.ctx.closePath();\n };\n CanvasRenderer.prototype.path = function (paths) {\n this.ctx.beginPath();\n this.formatPath(paths);\n this.ctx.closePath();\n };\n CanvasRenderer.prototype.formatPath = function (paths) {\n var _this = this;\n paths.forEach(function (point, index) {\n var start = isBezierCurve(point) ? point.start : point;\n if (index === 0) {\n _this.ctx.moveTo(start.x, start.y);\n }\n else {\n _this.ctx.lineTo(start.x, start.y);\n }\n if (isBezierCurve(point)) {\n _this.ctx.bezierCurveTo(point.startControl.x, point.startControl.y, point.endControl.x, point.endControl.y, point.end.x, point.end.y);\n }\n });\n };\n CanvasRenderer.prototype.renderRepeat = function (path, pattern, offsetX, offsetY) {\n this.path(path);\n this.ctx.fillStyle = pattern;\n this.ctx.translate(offsetX, offsetY);\n this.ctx.fill();\n this.ctx.translate(-offsetX, -offsetY);\n };\n CanvasRenderer.prototype.resizeImage = function (image, width, height) {\n var _a;\n if (image.width === width && image.height === height) {\n return image;\n }\n var ownerDocument = (_a = this.canvas.ownerDocument) !== null && _a !== void 0 ? _a : document;\n var canvas = ownerDocument.createElement('canvas');\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, width, height);\n return canvas;\n };\n CanvasRenderer.prototype.renderBackgroundImage = function (container) {\n return __awaiter(this, void 0, void 0, function () {\n var index, _loop_1, this_1, _i, _a, backgroundImage;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n index = container.styles.backgroundImage.length - 1;\n _loop_1 = function (backgroundImage) {\n var image, url, _c, path, x, y, width, height, pattern, _d, path, x, y, width, height, _e, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _f, path, left, top_1, width, height, position, x, y, _g, rx, ry, radialGradient_1, midX, midY, f, invF;\n return __generator(this, function (_h) {\n switch (_h.label) {\n case 0:\n if (!(backgroundImage.type === 0 /* URL */)) return [3 /*break*/, 5];\n image = void 0;\n url = backgroundImage.url;\n _h.label = 1;\n case 1:\n _h.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this_1.context.cache.match(url)];\n case 2:\n image = _h.sent();\n return [3 /*break*/, 4];\n case 3:\n _h.sent();\n this_1.context.logger.error(\"Error loading background-image \" + url);\n return [3 /*break*/, 4];\n case 4:\n if (image) {\n _c = calculateBackgroundRendering(container, index, [\n image.width,\n image.height,\n image.width / image.height\n ]), path = _c[0], x = _c[1], y = _c[2], width = _c[3], height = _c[4];\n pattern = this_1.ctx.createPattern(this_1.resizeImage(image, width, height), 'repeat');\n this_1.renderRepeat(path, pattern, x, y);\n }\n return [3 /*break*/, 6];\n case 5:\n if (isLinearGradient(backgroundImage)) {\n _d = calculateBackgroundRendering(container, index, [null, null, null]), path = _d[0], x = _d[1], y = _d[2], width = _d[3], height = _d[4];\n _e = calculateGradientDirection(backgroundImage.angle, width, height), lineLength = _e[0], x0 = _e[1], x1 = _e[2], y0 = _e[3], y1 = _e[4];\n canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n ctx = canvas.getContext('2d');\n gradient_1 = ctx.createLinearGradient(x0, y0, x1, y1);\n processColorStops(backgroundImage.stops, lineLength).forEach(function (colorStop) {\n return gradient_1.addColorStop(colorStop.stop, asString(colorStop.color));\n });\n ctx.fillStyle = gradient_1;\n ctx.fillRect(0, 0, width, height);\n if (width > 0 && height > 0) {\n pattern = this_1.ctx.createPattern(canvas, 'repeat');\n this_1.renderRepeat(path, pattern, x, y);\n }\n }\n else if (isRadialGradient(backgroundImage)) {\n _f = calculateBackgroundRendering(container, index, [\n null,\n null,\n null\n ]), path = _f[0], left = _f[1], top_1 = _f[2], width = _f[3], height = _f[4];\n position = backgroundImage.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage.position;\n x = getAbsoluteValue(position[0], width);\n y = getAbsoluteValue(position[position.length - 1], height);\n _g = calculateRadius(backgroundImage, x, y, width, height), rx = _g[0], ry = _g[1];\n if (rx > 0 && ry > 0) {\n radialGradient_1 = this_1.ctx.createRadialGradient(left + x, top_1 + y, 0, left + x, top_1 + y, rx);\n processColorStops(backgroundImage.stops, rx * 2).forEach(function (colorStop) {\n return radialGradient_1.addColorStop(colorStop.stop, asString(colorStop.color));\n });\n this_1.path(path);\n this_1.ctx.fillStyle = radialGradient_1;\n if (rx !== ry) {\n midX = container.bounds.left + 0.5 * container.bounds.width;\n midY = container.bounds.top + 0.5 * container.bounds.height;\n f = ry / rx;\n invF = 1 / f;\n this_1.ctx.save();\n this_1.ctx.translate(midX, midY);\n this_1.ctx.transform(1, 0, 0, f, 0, 0);\n this_1.ctx.translate(-midX, -midY);\n this_1.ctx.fillRect(left, invF * (top_1 - midY) + midY, width, height * invF);\n this_1.ctx.restore();\n }\n else {\n this_1.ctx.fill();\n }\n }\n }\n _h.label = 6;\n case 6:\n index--;\n return [2 /*return*/];\n }\n });\n };\n this_1 = this;\n _i = 0, _a = container.styles.backgroundImage.slice(0).reverse();\n _b.label = 1;\n case 1:\n if (!(_i < _a.length)) return [3 /*break*/, 4];\n backgroundImage = _a[_i];\n return [5 /*yield**/, _loop_1(backgroundImage)];\n case 2:\n _b.sent();\n _b.label = 3;\n case 3:\n _i++;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderSolidBorder = function (color, side, curvePoints) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n this.path(parsePathForBorder(curvePoints, side));\n this.ctx.fillStyle = asString(color);\n this.ctx.fill();\n return [2 /*return*/];\n });\n });\n };\n CanvasRenderer.prototype.renderDoubleBorder = function (color, width, side, curvePoints) {\n return __awaiter(this, void 0, void 0, function () {\n var outerPaths, innerPaths;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(width < 3)) return [3 /*break*/, 2];\n return [4 /*yield*/, this.renderSolidBorder(color, side, curvePoints)];\n case 1:\n _a.sent();\n return [2 /*return*/];\n case 2:\n outerPaths = parsePathForBorderDoubleOuter(curvePoints, side);\n this.path(outerPaths);\n this.ctx.fillStyle = asString(color);\n this.ctx.fill();\n innerPaths = parsePathForBorderDoubleInner(curvePoints, side);\n this.path(innerPaths);\n this.ctx.fill();\n return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderNodeBackgroundAndBorders = function (paint) {\n return __awaiter(this, void 0, void 0, function () {\n var styles, hasBackground, borders, backgroundPaintingArea, side, _i, borders_1, border;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.applyEffects(paint.getEffects(2 /* BACKGROUND_BORDERS */));\n styles = paint.container.styles;\n hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length;\n borders = [\n { style: styles.borderTopStyle, color: styles.borderTopColor, width: styles.borderTopWidth },\n { style: styles.borderRightStyle, color: styles.borderRightColor, width: styles.borderRightWidth },\n { style: styles.borderBottomStyle, color: styles.borderBottomColor, width: styles.borderBottomWidth },\n { style: styles.borderLeftStyle, color: styles.borderLeftColor, width: styles.borderLeftWidth }\n ];\n backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(getBackgroundValueForIndex(styles.backgroundClip, 0), paint.curves);\n if (!(hasBackground || styles.boxShadow.length)) return [3 /*break*/, 2];\n this.ctx.save();\n this.path(backgroundPaintingArea);\n this.ctx.clip();\n if (!isTransparent(styles.backgroundColor)) {\n this.ctx.fillStyle = asString(styles.backgroundColor);\n this.ctx.fill();\n }\n return [4 /*yield*/, this.renderBackgroundImage(paint.container)];\n case 1:\n _a.sent();\n this.ctx.restore();\n styles.boxShadow\n .slice(0)\n .reverse()\n .forEach(function (shadow) {\n _this.ctx.save();\n var borderBoxArea = calculateBorderBoxPath(paint.curves);\n var maskOffset = shadow.inset ? 0 : MASK_OFFSET;\n var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2));\n if (shadow.inset) {\n _this.path(borderBoxArea);\n _this.ctx.clip();\n _this.mask(shadowPaintingArea);\n }\n else {\n _this.mask(borderBoxArea);\n _this.ctx.clip();\n _this.path(shadowPaintingArea);\n }\n _this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset;\n _this.ctx.shadowOffsetY = shadow.offsetY.number;\n _this.ctx.shadowColor = asString(shadow.color);\n _this.ctx.shadowBlur = shadow.blur.number;\n _this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)';\n _this.ctx.fill();\n _this.ctx.restore();\n });\n _a.label = 2;\n case 2:\n side = 0;\n _i = 0, borders_1 = borders;\n _a.label = 3;\n case 3:\n if (!(_i < borders_1.length)) return [3 /*break*/, 13];\n border = borders_1[_i];\n if (!(border.style !== 0 /* NONE */ && !isTransparent(border.color) && border.width > 0)) return [3 /*break*/, 11];\n if (!(border.style === 2 /* DASHED */)) return [3 /*break*/, 5];\n return [4 /*yield*/, this.renderDashedDottedBorder(border.color, border.width, side, paint.curves, 2 /* DASHED */)];\n case 4:\n _a.sent();\n return [3 /*break*/, 11];\n case 5:\n if (!(border.style === 3 /* DOTTED */)) return [3 /*break*/, 7];\n return [4 /*yield*/, this.renderDashedDottedBorder(border.color, border.width, side, paint.curves, 3 /* DOTTED */)];\n case 6:\n _a.sent();\n return [3 /*break*/, 11];\n case 7:\n if (!(border.style === 4 /* DOUBLE */)) return [3 /*break*/, 9];\n return [4 /*yield*/, this.renderDoubleBorder(border.color, border.width, side, paint.curves)];\n case 8:\n _a.sent();\n return [3 /*break*/, 11];\n case 9: return [4 /*yield*/, this.renderSolidBorder(border.color, side, paint.curves)];\n case 10:\n _a.sent();\n _a.label = 11;\n case 11:\n side++;\n _a.label = 12;\n case 12:\n _i++;\n return [3 /*break*/, 3];\n case 13: return [2 /*return*/];\n }\n });\n });\n };\n CanvasRenderer.prototype.renderDashedDottedBorder = function (color, width, side, curvePoints, style) {\n return __awaiter(this, void 0, void 0, function () {\n var strokePaths, boxPaths, startX, startY, endX, endY, length, dashLength, spaceLength, useLineDash, multiplier, numberOfDashes, minSpace, maxSpace, path1, path2, path1, path2;\n return __generator(this, function (_a) {\n this.ctx.save();\n strokePaths = parsePathForBorderStroke(curvePoints, side);\n boxPaths = parsePathForBorder(curvePoints, side);\n if (style === 2 /* DASHED */) {\n this.path(boxPaths);\n this.ctx.clip();\n }\n if (isBezierCurve(boxPaths[0])) {\n startX = boxPaths[0].start.x;\n startY = boxPaths[0].start.y;\n }\n else {\n startX = boxPaths[0].x;\n startY = boxPaths[0].y;\n }\n if (isBezierCurve(boxPaths[1])) {\n endX = boxPaths[1].end.x;\n endY = boxPaths[1].end.y;\n }\n else {\n endX = boxPaths[1].x;\n endY = boxPaths[1].y;\n }\n if (side === 0 || side === 2) {\n length = Math.abs(startX - endX);\n }\n else {\n length = Math.abs(startY - endY);\n }\n this.ctx.beginPath();\n if (style === 3 /* DOTTED */) {\n this.formatPath(strokePaths);\n }\n else {\n this.formatPath(boxPaths.slice(0, 2));\n }\n dashLength = width < 3 ? width * 3 : width * 2;\n spaceLength = width < 3 ? width * 2 : width;\n if (style === 3 /* DOTTED */) {\n dashLength = width;\n spaceLength = width;\n }\n useLineDash = true;\n if (length <= dashLength * 2) {\n useLineDash = false;\n }\n else if (length <= dashLength * 2 + spaceLength) {\n multiplier = length / (2 * dashLength + spaceLength);\n dashLength *= multiplier;\n spaceLength *= multiplier;\n }\n else {\n numberOfDashes = Math.floor((length + spaceLength) / (dashLength + spaceLength));\n minSpace = (length - numberOfDashes * dashLength) / (numberOfDashes - 1);\n maxSpace = (length - (numberOfDashes + 1) * dashLength) / numberOfDashes;\n spaceLength =\n maxSpace <= 0 || Math.abs(spaceLength - minSpace) < Math.abs(spaceLength - maxSpace)\n ? minSpace\n : maxSpace;\n }\n if (useLineDash) {\n if (style === 3 /* DOTTED */) {\n this.ctx.setLineDash([0, dashLength + spaceLength]);\n }\n else {\n this.ctx.setLineDash([dashLength, spaceLength]);\n }\n }\n if (style === 3 /* DOTTED */) {\n this.ctx.lineCap = 'round';\n this.ctx.lineWidth = width;\n }\n else {\n this.ctx.lineWidth = width * 2 + 1.1;\n }\n this.ctx.strokeStyle = asString(color);\n this.ctx.stroke();\n this.ctx.setLineDash([]);\n // dashed round edge gap\n if (style === 2 /* DASHED */) {\n if (isBezierCurve(boxPaths[0])) {\n path1 = boxPaths[3];\n path2 = boxPaths[0];\n this.ctx.beginPath();\n this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]);\n this.ctx.stroke();\n }\n if (isBezierCurve(boxPaths[1])) {\n path1 = boxPaths[1];\n path2 = boxPaths[2];\n this.ctx.beginPath();\n this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]);\n this.ctx.stroke();\n }\n }\n this.ctx.restore();\n return [2 /*return*/];\n });\n });\n };\n CanvasRenderer.prototype.render = function (element) {\n return __awaiter(this, void 0, void 0, function () {\n var stack;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = asString(this.options.backgroundColor);\n this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height);\n }\n stack = parseStackingContexts(element);\n return [4 /*yield*/, this.renderStack(stack)];\n case 1:\n _a.sent();\n this.applyEffects([]);\n return [2 /*return*/, this.canvas];\n }\n });\n });\n };\n return CanvasRenderer;\n }(Renderer));\n var isTextInputElement = function (container) {\n if (container instanceof TextareaElementContainer) {\n return true;\n }\n else if (container instanceof SelectElementContainer) {\n return true;\n }\n else if (container instanceof InputElementContainer && container.type !== RADIO && container.type !== CHECKBOX) {\n return true;\n }\n return false;\n };\n var calculateBackgroundCurvedPaintingArea = function (clip, curves) {\n switch (clip) {\n case 0 /* BORDER_BOX */:\n return calculateBorderBoxPath(curves);\n case 2 /* CONTENT_BOX */:\n return calculateContentBoxPath(curves);\n case 1 /* PADDING_BOX */:\n default:\n return calculatePaddingBoxPath(curves);\n }\n };\n var canvasTextAlign = function (textAlign) {\n switch (textAlign) {\n case 1 /* CENTER */:\n return 'center';\n case 2 /* RIGHT */:\n return 'right';\n case 0 /* LEFT */:\n default:\n return 'left';\n }\n };\n // see https://github.com/niklasvh/html2canvas/pull/2645\n var iOSBrokenFonts = ['-apple-system', 'system-ui'];\n var fixIOSSystemFonts = function (fontFamilies) {\n return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent)\n ? fontFamilies.filter(function (fontFamily) { return iOSBrokenFonts.indexOf(fontFamily) === -1; })\n : fontFamilies;\n };\n\n var ForeignObjectRenderer = /** @class */ (function (_super) {\n __extends(ForeignObjectRenderer, _super);\n function ForeignObjectRenderer(context, options) {\n var _this = _super.call(this, context, options) || this;\n _this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\n _this.ctx = _this.canvas.getContext('2d');\n _this.options = options;\n _this.canvas.width = Math.floor(options.width * options.scale);\n _this.canvas.height = Math.floor(options.height * options.scale);\n _this.canvas.style.width = options.width + \"px\";\n _this.canvas.style.height = options.height + \"px\";\n _this.ctx.scale(_this.options.scale, _this.options.scale);\n _this.ctx.translate(-options.x, -options.y);\n _this.context.logger.debug(\"EXPERIMENTAL ForeignObject renderer initialized (\" + options.width + \"x\" + options.height + \" at \" + options.x + \",\" + options.y + \") with scale \" + options.scale);\n return _this;\n }\n ForeignObjectRenderer.prototype.render = function (element) {\n return __awaiter(this, void 0, void 0, function () {\n var svg, img;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n svg = createForeignObjectSVG(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, element);\n return [4 /*yield*/, loadSerializedSVG(svg)];\n case 1:\n img = _a.sent();\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = asString(this.options.backgroundColor);\n this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale);\n }\n this.ctx.drawImage(img, -this.options.x * this.options.scale, -this.options.y * this.options.scale);\n return [2 /*return*/, this.canvas];\n }\n });\n });\n };\n return ForeignObjectRenderer;\n }(Renderer));\n var loadSerializedSVG = function (svg) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = reject;\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\n });\n };\n\n var Logger = /** @class */ (function () {\n function Logger(_a) {\n var id = _a.id, enabled = _a.enabled;\n this.id = id;\n this.enabled = enabled;\n this.start = Date.now();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Logger.prototype.debug = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\n // eslint-disable-next-line no-console\n console.debug.apply(console, __spreadArray([this.id, this.getTime() + \"ms\"], args));\n }\n else {\n this.info.apply(this, args);\n }\n }\n };\n Logger.prototype.getTime = function () {\n return Date.now() - this.start;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Logger.prototype.info = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\n // eslint-disable-next-line no-console\n console.info.apply(console, __spreadArray([this.id, this.getTime() + \"ms\"], args));\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.warn === 'function') {\n // eslint-disable-next-line no-console\n console.warn.apply(console, __spreadArray([this.id, this.getTime() + \"ms\"], args));\n }\n else {\n this.info.apply(this, args);\n }\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\n // eslint-disable-next-line no-console\n console.error.apply(console, __spreadArray([this.id, this.getTime() + \"ms\"], args));\n }\n else {\n this.info.apply(this, args);\n }\n }\n };\n Logger.instances = {};\n return Logger;\n }());\n\n var Context = /** @class */ (function () {\n function Context(options, windowBounds) {\n var _a;\n this.windowBounds = windowBounds;\n this.instanceName = \"#\" + Context.instanceCount++;\n this.logger = new Logger({ id: this.instanceName, enabled: options.logging });\n this.cache = (_a = options.cache) !== null && _a !== void 0 ? _a : new Cache(this, options);\n }\n Context.instanceCount = 1;\n return Context;\n }());\n\n var html2canvas = function (element, options) {\n if (options === void 0) { options = {}; }\n return renderElement(element, options);\n };\n if (typeof window !== 'undefined') {\n CacheStorage.setContext(window);\n }\n var renderElement = function (element, opts) { return __awaiter(void 0, void 0, void 0, function () {\n var ownerDocument, defaultView, resourceOptions, contextOptions, windowOptions, windowBounds, context, foreignObjectRendering, cloneOptions, documentCloner, clonedElement, container, _a, width, height, left, top, backgroundColor, renderOptions, canvas, renderer, root, renderer;\n var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;\n return __generator(this, function (_u) {\n switch (_u.label) {\n case 0:\n if (!element || typeof element !== 'object') {\n return [2 /*return*/, Promise.reject('Invalid element provided as first argument')];\n }\n ownerDocument = element.ownerDocument;\n if (!ownerDocument) {\n throw new Error(\"Element is not attached to a Document\");\n }\n defaultView = ownerDocument.defaultView;\n if (!defaultView) {\n throw new Error(\"Document is not attached to a Window\");\n }\n resourceOptions = {\n allowTaint: (_b = opts.allowTaint) !== null && _b !== void 0 ? _b : false,\n imageTimeout: (_c = opts.imageTimeout) !== null && _c !== void 0 ? _c : 15000,\n proxy: opts.proxy,\n useCORS: (_d = opts.useCORS) !== null && _d !== void 0 ? _d : false\n };\n contextOptions = __assign({ logging: (_e = opts.logging) !== null && _e !== void 0 ? _e : true, cache: opts.cache }, resourceOptions);\n windowOptions = {\n windowWidth: (_f = opts.windowWidth) !== null && _f !== void 0 ? _f : defaultView.innerWidth,\n windowHeight: (_g = opts.windowHeight) !== null && _g !== void 0 ? _g : defaultView.innerHeight,\n scrollX: (_h = opts.scrollX) !== null && _h !== void 0 ? _h : defaultView.pageXOffset,\n scrollY: (_j = opts.scrollY) !== null && _j !== void 0 ? _j : defaultView.pageYOffset\n };\n windowBounds = new Bounds(windowOptions.scrollX, windowOptions.scrollY, windowOptions.windowWidth, windowOptions.windowHeight);\n context = new Context(contextOptions, windowBounds);\n foreignObjectRendering = (_k = opts.foreignObjectRendering) !== null && _k !== void 0 ? _k : false;\n cloneOptions = {\n allowTaint: (_l = opts.allowTaint) !== null && _l !== void 0 ? _l : false,\n onclone: opts.onclone,\n ignoreElements: opts.ignoreElements,\n inlineImages: foreignObjectRendering,\n copyStyles: foreignObjectRendering\n };\n context.logger.debug(\"Starting document clone with size \" + windowBounds.width + \"x\" + windowBounds.height + \" scrolled to \" + -windowBounds.left + \",\" + -windowBounds.top);\n documentCloner = new DocumentCloner(context, element, cloneOptions);\n clonedElement = documentCloner.clonedReferenceElement;\n if (!clonedElement) {\n return [2 /*return*/, Promise.reject(\"Unable to find element in cloned iframe\")];\n }\n return [4 /*yield*/, documentCloner.toIFrame(ownerDocument, windowBounds)];\n case 1:\n container = _u.sent();\n _a = isBodyElement(clonedElement) || isHTMLElement(clonedElement)\n ? parseDocumentSize(clonedElement.ownerDocument)\n : parseBounds(context, clonedElement), width = _a.width, height = _a.height, left = _a.left, top = _a.top;\n backgroundColor = parseBackgroundColor(context, clonedElement, opts.backgroundColor);\n renderOptions = {\n canvas: opts.canvas,\n backgroundColor: backgroundColor,\n scale: (_o = (_m = opts.scale) !== null && _m !== void 0 ? _m : defaultView.devicePixelRatio) !== null && _o !== void 0 ? _o : 1,\n x: ((_p = opts.x) !== null && _p !== void 0 ? _p : 0) + left,\n y: ((_q = opts.y) !== null && _q !== void 0 ? _q : 0) + top,\n width: (_r = opts.width) !== null && _r !== void 0 ? _r : Math.ceil(width),\n height: (_s = opts.height) !== null && _s !== void 0 ? _s : Math.ceil(height)\n };\n if (!foreignObjectRendering) return [3 /*break*/, 3];\n context.logger.debug(\"Document cloned, using foreign object rendering\");\n renderer = new ForeignObjectRenderer(context, renderOptions);\n return [4 /*yield*/, renderer.render(clonedElement)];\n case 2:\n canvas = _u.sent();\n return [3 /*break*/, 5];\n case 3:\n context.logger.debug(\"Document cloned, element located at \" + left + \",\" + top + \" with size \" + width + \"x\" + height + \" using computed rendering\");\n context.logger.debug(\"Starting DOM parsing\");\n root = parseTree(context, clonedElement);\n if (backgroundColor === root.styles.backgroundColor) {\n root.styles.backgroundColor = COLORS.TRANSPARENT;\n }\n context.logger.debug(\"Starting renderer for element at \" + renderOptions.x + \",\" + renderOptions.y + \" with size \" + renderOptions.width + \"x\" + renderOptions.height);\n renderer = new CanvasRenderer(context, renderOptions);\n return [4 /*yield*/, renderer.render(root)];\n case 4:\n canvas = _u.sent();\n _u.label = 5;\n case 5:\n if ((_t = opts.removeContainer) !== null && _t !== void 0 ? _t : true) {\n if (!DocumentCloner.destroy(container)) {\n context.logger.error(\"Cannot detach cloned iframe as it is not in the DOM anymore\");\n }\n }\n context.logger.debug(\"Finished rendering\");\n return [2 /*return*/, canvas];\n }\n });\n }); };\n var parseBackgroundColor = function (context, element, backgroundColorOverride) {\n var ownerDocument = element.ownerDocument;\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n var documentBackgroundColor = ownerDocument.documentElement\n ? parseColor(context, getComputedStyle(ownerDocument.documentElement).backgroundColor)\n : COLORS.TRANSPARENT;\n var bodyBackgroundColor = ownerDocument.body\n ? parseColor(context, getComputedStyle(ownerDocument.body).backgroundColor)\n : COLORS.TRANSPARENT;\n var defaultBackgroundColor = typeof backgroundColorOverride === 'string'\n ? parseColor(context, backgroundColorOverride)\n : backgroundColorOverride === null\n ? COLORS.TRANSPARENT\n : 0xffffffff;\n return element === ownerDocument.documentElement\n ? isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? defaultBackgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor\n : defaultBackgroundColor;\n };\n\n return html2canvas;\n\n})));\n//# sourceMappingURL=html2canvas.js.map\n","/*!\n * html2pdf.js v0.10.2\n * Copyright (c) 2024 Erik Koopmans\n * Released under the MIT License.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"jspdf\"), require(\"html2canvas\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"html2pdf\", [\"jspdf\", \"html2canvas\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"html2pdf\"] = factory(require(\"jspdf\"), require(\"html2canvas\"));\n\telse\n\t\troot[\"html2pdf\"] = factory(root[\"jspdf\"], root[\"html2canvas\"]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE_jspdf__, __WEBPACK_EXTERNAL_MODULE_html2canvas__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ \"./src/plugin/hyperlinks.js\":\n/*!**********************************!*\\\n !*** ./src/plugin/hyperlinks.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.string.link.js */ \"./node_modules/core-js/modules/es.string.link.js\");\n/* harmony import */ var core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_link_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../worker.js */ \"./src/worker.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ \"./src/utils.js\");\n\n\n\n // Add hyperlink functionality to the PDF creation.\n// Main link array, and refs to original functions.\n\nvar linkInfo = [];\nvar orig = {\n toContainer: _worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toContainer,\n toPdf: _worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toPdf\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toContainer = function toContainer() {\n return orig.toContainer.call(this).then(function toContainer_hyperlink() {\n // Retrieve hyperlink info if the option is enabled.\n if (this.opt.enableLinks) {\n // Find all anchor tags and get the container's bounds for reference.\n var container = this.prop.container;\n var links = container.querySelectorAll('a');\n var containerRect = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.unitConvert)(container.getBoundingClientRect(), this.prop.pageSize.k);\n linkInfo = []; // Loop through each anchor tag.\n\n Array.prototype.forEach.call(links, function (link) {\n // Treat each client rect as a separate link (for text-wrapping).\n var clientRects = link.getClientRects();\n\n for (var i = 0; i < clientRects.length; i++) {\n var clientRect = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.unitConvert)(clientRects[i], this.prop.pageSize.k);\n clientRect.left -= containerRect.left;\n clientRect.top -= containerRect.top;\n var page = Math.floor(clientRect.top / this.prop.pageSize.inner.height) + 1;\n var top = this.opt.margin[0] + clientRect.top % this.prop.pageSize.inner.height;\n var left = this.opt.margin[1] + clientRect.left;\n linkInfo.push({\n page: page,\n top: top,\n left: left,\n clientRect: clientRect,\n link: link\n });\n }\n }, this);\n }\n });\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_2__.default.prototype.toPdf = function toPdf() {\n return orig.toPdf.call(this).then(function toPdf_hyperlink() {\n // Add hyperlinks if the option is enabled.\n if (this.opt.enableLinks) {\n // Attach each anchor tag based on info from toContainer().\n linkInfo.forEach(function (l) {\n this.prop.pdf.setPage(l.page);\n this.prop.pdf.link(l.left, l.top, l.clientRect.width, l.clientRect.height, {\n url: l.link.href\n });\n }, this); // Reset the active page of the PDF to the final page.\n\n var nPages = this.prop.pdf.internal.getNumberOfPages();\n this.prop.pdf.setPage(nPages);\n }\n });\n};\n\n/***/ }),\n\n/***/ \"./src/plugin/jspdf-plugin.js\":\n/*!************************************!*\\\n !*** ./src/plugin/jspdf-plugin.js ***!\n \\************************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! jspdf */ \"jspdf\");\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(jspdf__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Import dependencies.\n // Get dimensions of a PDF page, as determined by jsPDF.\n\njspdf__WEBPACK_IMPORTED_MODULE_7__.jsPDF.getPageSize = function (orientation, unit, format) {\n // Decode options object\n if (_typeof(orientation) === 'object') {\n var options = orientation;\n orientation = options.orientation;\n unit = options.unit || unit;\n format = options.format || format;\n } // Default options\n\n\n unit = unit || 'mm';\n format = format || 'a4';\n orientation = ('' + (orientation || 'P')).toLowerCase();\n var format_as_string = ('' + format).toLowerCase(); // Size in pt of various paper formats\n\n var pageFormats = {\n 'a0': [2383.94, 3370.39],\n 'a1': [1683.78, 2383.94],\n 'a2': [1190.55, 1683.78],\n 'a3': [841.89, 1190.55],\n 'a4': [595.28, 841.89],\n 'a5': [419.53, 595.28],\n 'a6': [297.64, 419.53],\n 'a7': [209.76, 297.64],\n 'a8': [147.40, 209.76],\n 'a9': [104.88, 147.40],\n 'a10': [73.70, 104.88],\n 'b0': [2834.65, 4008.19],\n 'b1': [2004.09, 2834.65],\n 'b2': [1417.32, 2004.09],\n 'b3': [1000.63, 1417.32],\n 'b4': [708.66, 1000.63],\n 'b5': [498.90, 708.66],\n 'b6': [354.33, 498.90],\n 'b7': [249.45, 354.33],\n 'b8': [175.75, 249.45],\n 'b9': [124.72, 175.75],\n 'b10': [87.87, 124.72],\n 'c0': [2599.37, 3676.54],\n 'c1': [1836.85, 2599.37],\n 'c2': [1298.27, 1836.85],\n 'c3': [918.43, 1298.27],\n 'c4': [649.13, 918.43],\n 'c5': [459.21, 649.13],\n 'c6': [323.15, 459.21],\n 'c7': [229.61, 323.15],\n 'c8': [161.57, 229.61],\n 'c9': [113.39, 161.57],\n 'c10': [79.37, 113.39],\n 'dl': [311.81, 623.62],\n 'letter': [612, 792],\n 'government-letter': [576, 756],\n 'legal': [612, 1008],\n 'junior-legal': [576, 360],\n 'ledger': [1224, 792],\n 'tabloid': [792, 1224],\n 'credit-card': [153, 243]\n }; // Unit conversion\n\n switch (unit) {\n case 'pt':\n var k = 1;\n break;\n\n case 'mm':\n var k = 72 / 25.4;\n break;\n\n case 'cm':\n var k = 72 / 2.54;\n break;\n\n case 'in':\n var k = 72;\n break;\n\n case 'px':\n var k = 72 / 96;\n break;\n\n case 'pc':\n var k = 12;\n break;\n\n case 'em':\n var k = 12;\n break;\n\n case 'ex':\n var k = 6;\n break;\n\n default:\n throw 'Invalid unit: ' + unit;\n } // Dimensions are stored as user units and converted to points on output\n\n\n if (pageFormats.hasOwnProperty(format_as_string)) {\n var pageHeight = pageFormats[format_as_string][1] / k;\n var pageWidth = pageFormats[format_as_string][0] / k;\n } else {\n try {\n var pageHeight = format[1];\n var pageWidth = format[0];\n } catch (err) {\n throw new Error('Invalid format: ' + format);\n }\n } // Handle page orientation\n\n\n if (orientation === 'p' || orientation === 'portrait') {\n orientation = 'p';\n\n if (pageWidth > pageHeight) {\n var tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else if (orientation === 'l' || orientation === 'landscape') {\n orientation = 'l';\n\n if (pageHeight > pageWidth) {\n var tmp = pageWidth;\n pageWidth = pageHeight;\n pageHeight = tmp;\n }\n } else {\n throw 'Invalid orientation: ' + orientation;\n } // Return information (k is the unit conversion ratio from pts)\n\n\n var info = {\n 'width': pageWidth,\n 'height': pageHeight,\n 'unit': unit,\n 'k': k\n };\n return info;\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (jspdf__WEBPACK_IMPORTED_MODULE_7__.jsPDF);\n\n/***/ }),\n\n/***/ \"./src/plugin/pagebreaks.js\":\n/*!**********************************!*\\\n !*** ./src/plugin/pagebreaks.js ***!\n \\**********************************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ \"./node_modules/core-js/modules/es.array.slice.js\");\n/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.join.js */ \"./node_modules/core-js/modules/es.array.join.js\");\n/* harmony import */ var core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_join_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../worker.js */ \"./src/worker.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils.js */ \"./src/utils.js\");\n\n\n\n\n\n\n\n/* Pagebreak plugin:\n\n Adds page-break functionality to the html2pdf library. Page-breaks can be\n enabled by CSS styles, set on individual elements using selectors, or\n avoided from breaking inside all elements.\n\n Options on the `opt.pagebreak` object:\n\n mode: String or array of strings: 'avoid-all', 'css', and/or 'legacy'\n Default: ['css', 'legacy']\n\n before: String or array of CSS selectors for which to add page-breaks\n before each element. Can be a specific element with an ID\n ('#myID'), all elements of a type (e.g. 'img'), all of a class\n ('.myClass'), or even '*' to match every element.\n\n after: Like 'before', but adds a page-break immediately after the element.\n\n avoid: Like 'before', but avoids page-breaks on these elements. You can\n enable this feature on every element using the 'avoid-all' mode.\n*/\n// Refs to original functions.\n\nvar orig = {\n toContainer: _worker_js__WEBPACK_IMPORTED_MODULE_5__.default.prototype.toContainer\n}; // Add pagebreak default options to the Worker template.\n\n_worker_js__WEBPACK_IMPORTED_MODULE_5__.default.template.opt.pagebreak = {\n mode: ['css', 'legacy'],\n before: [],\n after: [],\n avoid: []\n};\n\n_worker_js__WEBPACK_IMPORTED_MODULE_5__.default.prototype.toContainer = function toContainer() {\n return orig.toContainer.call(this).then(function toContainer_pagebreak() {\n // Setup root element and inner page height.\n var root = this.prop.container;\n var pxPageHeight = this.prop.pageSize.inner.px.height; // Check all requested modes.\n\n var modeSrc = [].concat(this.opt.pagebreak.mode);\n var mode = {\n avoidAll: modeSrc.indexOf('avoid-all') !== -1,\n css: modeSrc.indexOf('css') !== -1,\n legacy: modeSrc.indexOf('legacy') !== -1\n }; // Get arrays of all explicitly requested elements.\n\n var select = {};\n var self = this;\n ['before', 'after', 'avoid'].forEach(function (key) {\n var all = mode.avoidAll && key === 'avoid';\n select[key] = all ? [] : [].concat(self.opt.pagebreak[key] || []);\n\n if (select[key].length > 0) {\n select[key] = Array.prototype.slice.call(root.querySelectorAll(select[key].join(', ')));\n }\n }); // Get all legacy page-break elements.\n\n var legacyEls = root.querySelectorAll('.html2pdf__page-break');\n legacyEls = Array.prototype.slice.call(legacyEls); // Loop through all elements.\n\n var els = root.querySelectorAll('*');\n Array.prototype.forEach.call(els, function pagebreak_loop(el) {\n // Setup pagebreak rules based on legacy and avoidAll modes.\n var rules = {\n before: false,\n after: mode.legacy && legacyEls.indexOf(el) !== -1,\n avoid: mode.avoidAll\n }; // Add rules for css mode.\n\n if (mode.css) {\n // TODO: Check if this is valid with iFrames.\n var style = window.getComputedStyle(el); // TODO: Handle 'left' and 'right' correctly.\n // TODO: Add support for 'avoid' on breakBefore/After.\n\n var breakOpt = ['always', 'page', 'left', 'right'];\n var avoidOpt = ['avoid', 'avoid-page'];\n rules = {\n before: rules.before || breakOpt.indexOf(style.breakBefore || style.pageBreakBefore) !== -1,\n after: rules.after || breakOpt.indexOf(style.breakAfter || style.pageBreakAfter) !== -1,\n avoid: rules.avoid || avoidOpt.indexOf(style.breakInside || style.pageBreakInside) !== -1\n };\n } // Add rules for explicit requests.\n\n\n Object.keys(rules).forEach(function (key) {\n rules[key] = rules[key] || select[key].indexOf(el) !== -1;\n }); // Get element position on the screen.\n // TODO: Subtract the top of the container from clientRect.top/bottom?\n\n var clientRect = el.getBoundingClientRect(); // Avoid: Check if a break happens mid-element.\n\n if (rules.avoid && !rules.before) {\n var startPage = Math.floor(clientRect.top / pxPageHeight);\n var endPage = Math.floor(clientRect.bottom / pxPageHeight);\n var nPages = Math.abs(clientRect.bottom - clientRect.top) / pxPageHeight; // Turn on rules.before if the el is broken and is at most one page long.\n\n if (endPage !== startPage && nPages <= 1) {\n rules.before = true;\n }\n } // Before: Create a padding div to push the element to the next page.\n\n\n if (rules.before) {\n var pad = (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.createElement)('div', {\n style: {\n display: 'block',\n height: pxPageHeight - clientRect.top % pxPageHeight + 'px'\n }\n });\n el.parentNode.insertBefore(pad, el);\n } // After: Create a padding div to fill the remaining page.\n\n\n if (rules.after) {\n var pad = (0,_utils_js__WEBPACK_IMPORTED_MODULE_6__.createElement)('div', {\n style: {\n display: 'block',\n height: pxPageHeight - clientRect.bottom % pxPageHeight + 'px'\n }\n });\n el.parentNode.insertBefore(pad, el.nextSibling);\n }\n });\n });\n};\n\n/***/ }),\n\n/***/ \"./src/utils.js\":\n/*!**********************!*\\\n !*** ./src/utils.js ***!\n \\**********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"objType\": function() { return /* binding */ objType; },\n/* harmony export */ \"createElement\": function() { return /* binding */ createElement; },\n/* harmony export */ \"cloneNode\": function() { return /* binding */ cloneNode; },\n/* harmony export */ \"unitConvert\": function() { return /* binding */ unitConvert; },\n/* harmony export */ \"toPx\": function() { return /* binding */ toPx; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ \"./node_modules/core-js/modules/es.number.constructor.js\");\n/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n/* harmony import */ var core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n/* harmony import */ var core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_description_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n/* harmony import */ var core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_symbol_iterator_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n/* harmony import */ var core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_iterator_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n/* harmony import */ var core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_iterator_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_iterator_js__WEBPACK_IMPORTED_MODULE_7__);\n\n\n\n\n\n\n\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Determine the type of a variable/object.\nvar objType = function objType(obj) {\n var type = _typeof(obj);\n\n if (type === 'undefined') return 'undefined';else if (type === 'string' || obj instanceof String) return 'string';else if (type === 'number' || obj instanceof Number) return 'number';else if (type === 'function' || obj instanceof Function) return 'function';else if (!!obj && obj.constructor === Array) return 'array';else if (obj && obj.nodeType === 1) return 'element';else if (type === 'object') return 'object';else return 'unknown';\n}; // Create an HTML element with optional className, innerHTML, and style.\n\nvar createElement = function createElement(tagName, opt) {\n var el = document.createElement(tagName);\n if (opt.className) el.className = opt.className;\n\n if (opt.innerHTML) {\n el.innerHTML = opt.innerHTML;\n var scripts = el.getElementsByTagName('script');\n\n for (var i = scripts.length; i-- > 0; null) {\n scripts[i].parentNode.removeChild(scripts[i]);\n }\n }\n\n for (var key in opt.style) {\n el.style[key] = opt.style[key];\n }\n\n return el;\n}; // Deep-clone a node and preserve contents/properties.\n\nvar cloneNode = function cloneNode(node, javascriptEnabled) {\n // Recursively clone the node.\n var clone = node.nodeType === 3 ? document.createTextNode(node.nodeValue) : node.cloneNode(false);\n\n for (var child = node.firstChild; child; child = child.nextSibling) {\n if (javascriptEnabled === true || child.nodeType !== 1 || child.nodeName !== 'SCRIPT') {\n clone.appendChild(cloneNode(child, javascriptEnabled));\n }\n }\n\n if (node.nodeType === 1) {\n // Preserve contents/properties of special nodes.\n if (node.nodeName === 'CANVAS') {\n clone.width = node.width;\n clone.height = node.height;\n clone.getContext('2d').drawImage(node, 0, 0);\n } else if (node.nodeName === 'TEXTAREA' || node.nodeName === 'SELECT') {\n clone.value = node.value;\n } // Preserve the node's scroll position when it loads.\n\n\n clone.addEventListener('load', function () {\n clone.scrollTop = node.scrollTop;\n clone.scrollLeft = node.scrollLeft;\n }, true);\n } // Return the cloned node.\n\n\n return clone;\n}; // Convert units from px using the conversion value 'k' from jsPDF.\n\nvar unitConvert = function unitConvert(obj, k) {\n if (objType(obj) === 'number') {\n return obj * 72 / 96 / k;\n } else {\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key] * 72 / 96 / k;\n }\n\n return newObj;\n }\n}; // Convert units to px using the conversion value 'k' from jsPDF.\n\nvar toPx = function toPx(val, k) {\n return Math.floor(val * k / 72 * 96);\n};\n\n/***/ }),\n\n/***/ \"./src/worker.js\":\n/*!***********************!*\\\n !*** ./src/worker.js ***!\n \\***********************/\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ \"./node_modules/core-js/modules/es.object.assign.js\");\n/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n/* harmony import */ var core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n/* harmony import */ var core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_keys_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n/* harmony import */ var core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_concat_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"./node_modules/core-js/modules/es.regexp.to-string.js\");\n/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n/* harmony import */ var core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\");\n/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! jspdf */ \"jspdf\");\n/* harmony import */ var jspdf__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(jspdf__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var html2canvas__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! html2canvas */ \"html2canvas\");\n/* harmony import */ var html2canvas__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(html2canvas__WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils.js */ \"./src/utils.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! es6-promise */ \"./node_modules/es6-promise/dist/es6-promise.js\");\n/* harmony import */ var es6_promise__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(es6_promise__WEBPACK_IMPORTED_MODULE_11__);\n\n\n\n\n\n\n\n\n\n\n\n\nvar Promise = (es6_promise__WEBPACK_IMPORTED_MODULE_11___default().Promise);\n/* ----- CONSTRUCTOR ----- */\n\nvar Worker = function Worker(opt) {\n // Create the root parent for the proto chain, and the starting Worker.\n var root = Object.assign(Worker.convert(Promise.resolve()), JSON.parse(JSON.stringify(Worker.template)));\n var self = Worker.convert(Promise.resolve(), root); // Set progress, optional settings, and return.\n\n self = self.setProgress(1, Worker, 1, [Worker]);\n self = self.set(opt);\n return self;\n}; // Boilerplate for subclassing Promise.\n\n\nWorker.prototype = Object.create(Promise.prototype);\nWorker.prototype.constructor = Worker; // Converts/casts promises into Workers.\n\nWorker.convert = function convert(promise, inherit) {\n // Uses prototypal inheritance to receive changes made to ancestors' properties.\n promise.__proto__ = inherit || Worker.prototype;\n return promise;\n};\n\nWorker.template = {\n prop: {\n src: null,\n container: null,\n overlay: null,\n canvas: null,\n img: null,\n pdf: null,\n pageSize: null\n },\n progress: {\n val: 0,\n state: null,\n n: 0,\n stack: []\n },\n opt: {\n filename: 'file.pdf',\n margin: [0, 0, 0, 0],\n image: {\n type: 'jpeg',\n quality: 0.95\n },\n enableLinks: true,\n html2canvas: {},\n jsPDF: {}\n }\n};\n/* ----- FROM / TO ----- */\n\nWorker.prototype.from = function from(src, type) {\n function getType(src) {\n switch ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(src)) {\n case 'string':\n return 'string';\n\n case 'element':\n return src.nodeName.toLowerCase && src.nodeName.toLowerCase() === 'canvas' ? 'canvas' : 'element';\n\n default:\n return 'unknown';\n }\n }\n\n return this.then(function from_main() {\n type = type || getType(src);\n\n switch (type) {\n case 'string':\n return this.set({\n src: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n innerHTML: src\n })\n });\n\n case 'element':\n return this.set({\n src: src\n });\n\n case 'canvas':\n return this.set({\n canvas: src\n });\n\n case 'img':\n return this.set({\n img: src\n });\n\n default:\n return this.error('Unknown source type.');\n }\n });\n};\n\nWorker.prototype.to = function to(target) {\n // Route the 'to' request to the appropriate method.\n switch (target) {\n case 'container':\n return this.toContainer();\n\n case 'canvas':\n return this.toCanvas();\n\n case 'img':\n return this.toImg();\n\n case 'pdf':\n return this.toPdf();\n\n default:\n return this.error('Invalid target.');\n }\n};\n\nWorker.prototype.toContainer = function toContainer() {\n // Set up function prerequisites.\n var prereqs = [function checkSrc() {\n return this.prop.src || this.error('Cannot duplicate - no source HTML.');\n }, function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }];\n return this.thenList(prereqs).then(function toContainer_main() {\n // Define the CSS styles for the container and its overlay parent.\n var overlayCSS = {\n position: 'fixed',\n overflow: 'hidden',\n zIndex: 1000,\n left: 0,\n right: 0,\n bottom: 0,\n top: 0,\n backgroundColor: 'rgba(0,0,0,0.8)'\n };\n var containerCSS = {\n position: 'absolute',\n width: this.prop.pageSize.inner.width + this.prop.pageSize.unit,\n left: 0,\n right: 0,\n top: 0,\n height: 'auto',\n margin: 'auto',\n backgroundColor: 'white'\n }; // Set the overlay to hidden (could be changed in the future to provide a print preview).\n\n overlayCSS.opacity = 0; // Create and attach the elements.\n\n var source = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.cloneNode)(this.prop.src, this.opt.html2canvas.javascriptEnabled);\n this.prop.overlay = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n className: 'html2pdf__overlay',\n style: overlayCSS\n });\n this.prop.container = (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.createElement)('div', {\n className: 'html2pdf__container',\n style: containerCSS\n });\n this.prop.container.appendChild(source);\n this.prop.overlay.appendChild(this.prop.container);\n document.body.appendChild(this.prop.overlay);\n });\n};\n\nWorker.prototype.toCanvas = function toCanvas() {\n // Set up function prerequisites.\n var prereqs = [function checkContainer() {\n return document.body.contains(this.prop.container) || this.toContainer();\n }]; // Fulfill prereqs then create the canvas.\n\n return this.thenList(prereqs).then(function toCanvas_main() {\n // Handle old-fashioned 'onrendered' argument.\n var options = Object.assign({}, this.opt.html2canvas);\n delete options.onrendered;\n return html2canvas__WEBPACK_IMPORTED_MODULE_9__(this.prop.container, options);\n }).then(function toCanvas_post(canvas) {\n // Handle old-fashioned 'onrendered' argument.\n var onRendered = this.opt.html2canvas.onrendered || function () {};\n\n onRendered(canvas);\n this.prop.canvas = canvas;\n document.body.removeChild(this.prop.overlay);\n });\n};\n\nWorker.prototype.toImg = function toImg() {\n // Set up function prerequisites.\n var prereqs = [function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }]; // Fulfill prereqs then create the image.\n\n return this.thenList(prereqs).then(function toImg_main() {\n var imgData = this.prop.canvas.toDataURL('image/' + this.opt.image.type, this.opt.image.quality);\n this.prop.img = document.createElement('img');\n this.prop.img.src = imgData;\n });\n};\n\nWorker.prototype.toPdf = function toPdf() {\n // Set up function prerequisites.\n var prereqs = [function checkCanvas() {\n return this.prop.canvas || this.toCanvas();\n }, function checkPageSize() {\n return this.prop.pageSize || this.setPageSize();\n }]; // Fulfill prereqs then create the image.\n\n return this.thenList(prereqs).then(function toPdf_main() {\n // Create local copies of frequently used properties.\n var canvas = this.prop.canvas;\n var opt = this.opt; // Calculate the number of pages.\n\n var pxFullHeight = canvas.height;\n var pxPageHeight = Math.floor(canvas.width * this.prop.pageSize.inner.ratio);\n var nPages = Math.ceil(pxFullHeight / pxPageHeight); // Define pageHeight separately so it can be trimmed on the final page.\n\n var pageHeight = this.prop.pageSize.inner.height; // Create a one-page canvas to split up the full image.\n\n var pageCanvas = document.createElement('canvas');\n var pageCtx = pageCanvas.getContext('2d');\n pageCanvas.width = canvas.width;\n pageCanvas.height = pxPageHeight; // Initialize the PDF.\n\n this.prop.pdf = this.prop.pdf || new jspdf__WEBPACK_IMPORTED_MODULE_8__.jsPDF(opt.jsPDF);\n\n for (var page = 0; page < nPages; page++) {\n // Trim the final page to reduce file size.\n if (page === nPages - 1 && pxFullHeight % pxPageHeight !== 0) {\n pageCanvas.height = pxFullHeight % pxPageHeight;\n pageHeight = pageCanvas.height * this.prop.pageSize.inner.width / pageCanvas.width;\n } // Display the page.\n\n\n var w = pageCanvas.width;\n var h = pageCanvas.height;\n pageCtx.fillStyle = 'white';\n pageCtx.fillRect(0, 0, w, h);\n pageCtx.drawImage(canvas, 0, page * pxPageHeight, w, h, 0, 0, w, h); // Add the page to the PDF.\n\n if (page) this.prop.pdf.addPage();\n var imgData = pageCanvas.toDataURL('image/' + opt.image.type, opt.image.quality);\n this.prop.pdf.addImage(imgData, opt.image.type, opt.margin[1], opt.margin[0], this.prop.pageSize.inner.width, pageHeight);\n }\n });\n};\n/* ----- OUTPUT / SAVE ----- */\n\n\nWorker.prototype.output = function output(type, options, src) {\n // Redirect requests to the correct function (outputPdf / outputImg).\n src = src || 'pdf';\n\n if (src.toLowerCase() === 'img' || src.toLowerCase() === 'image') {\n return this.outputImg(type, options);\n } else {\n return this.outputPdf(type, options);\n }\n};\n\nWorker.prototype.outputPdf = function outputPdf(type, options) {\n // Set up function prerequisites.\n var prereqs = [function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }]; // Fulfill prereqs then perform the appropriate output.\n\n return this.thenList(prereqs).then(function outputPdf_main() {\n /* Currently implemented output types:\n * https://rawgit.com/MrRio/jsPDF/master/docs/jspdf.js.html#line992\n * save(options), arraybuffer, blob, bloburi/bloburl,\n * datauristring/dataurlstring, dataurlnewwindow, datauri/dataurl\n */\n return this.prop.pdf.output(type, options);\n });\n};\n\nWorker.prototype.outputImg = function outputImg(type, options) {\n // Set up function prerequisites.\n var prereqs = [function checkImg() {\n return this.prop.img || this.toImg();\n }]; // Fulfill prereqs then perform the appropriate output.\n\n return this.thenList(prereqs).then(function outputImg_main() {\n switch (type) {\n case undefined:\n case 'img':\n return this.prop.img;\n\n case 'datauristring':\n case 'dataurlstring':\n return this.prop.img.src;\n\n case 'datauri':\n case 'dataurl':\n return document.location.href = this.prop.img.src;\n\n default:\n throw 'Image output type \"' + type + '\" is not supported.';\n }\n });\n};\n\nWorker.prototype.save = function save(filename) {\n // Set up function prerequisites.\n var prereqs = [function checkPdf() {\n return this.prop.pdf || this.toPdf();\n }]; // Fulfill prereqs, update the filename (if provided), and save the PDF.\n\n return this.thenList(prereqs).set(filename ? {\n filename: filename\n } : null).then(function save_main() {\n this.prop.pdf.save(this.opt.filename);\n });\n};\n/* ----- SET / GET ----- */\n\n\nWorker.prototype.set = function set(opt) {\n // TODO: Implement ordered pairs?\n // Silently ignore invalid or empty input.\n if ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(opt) !== 'object') {\n return this;\n } // Build an array of setter functions to queue.\n\n\n var fns = Object.keys(opt || {}).map(function (key) {\n switch (key) {\n case 'margin':\n return this.setMargin.bind(this, opt.margin);\n\n case 'jsPDF':\n return function set_jsPDF() {\n this.opt.jsPDF = opt.jsPDF;\n return this.setPageSize();\n };\n\n case 'pageSize':\n return this.setPageSize.bind(this, opt.pageSize);\n\n default:\n if (key in Worker.template.prop) {\n // Set pre-defined properties in prop.\n return function set_prop() {\n this.prop[key] = opt[key];\n };\n } else {\n // Set any other properties in opt.\n return function set_opt() {\n this.opt[key] = opt[key];\n };\n }\n\n }\n }, this); // Set properties within the promise chain.\n\n return this.then(function set_main() {\n return this.thenList(fns);\n });\n};\n\nWorker.prototype.get = function get(key, cbk) {\n return this.then(function get_main() {\n // Fetch the requested property, either as a predefined prop or in opt.\n var val = key in Worker.template.prop ? this.prop[key] : this.opt[key];\n return cbk ? cbk(val) : val;\n });\n};\n\nWorker.prototype.setMargin = function setMargin(margin) {\n return this.then(function setMargin_main() {\n // Parse the margin property: [top, left, bottom, right].\n switch ((0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.objType)(margin)) {\n case 'number':\n margin = [margin, margin, margin, margin];\n\n case 'array':\n if (margin.length === 2) {\n margin = [margin[0], margin[1], margin[0], margin[1]];\n }\n\n if (margin.length === 4) {\n break;\n }\n\n default:\n return this.error('Invalid margin array.');\n } // Set the margin property, then update pageSize.\n\n\n this.opt.margin = margin;\n }).then(this.setPageSize);\n};\n\nWorker.prototype.setPageSize = function setPageSize(pageSize) {\n return this.then(function setPageSize_main() {\n // Retrieve page-size based on jsPDF settings, if not explicitly provided.\n pageSize = pageSize || jspdf__WEBPACK_IMPORTED_MODULE_8__.jsPDF.getPageSize(this.opt.jsPDF); // Add 'inner' field if not present.\n\n if (!pageSize.hasOwnProperty('inner')) {\n pageSize.inner = {\n width: pageSize.width - this.opt.margin[1] - this.opt.margin[3],\n height: pageSize.height - this.opt.margin[0] - this.opt.margin[2]\n };\n pageSize.inner.px = {\n width: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.toPx)(pageSize.inner.width, pageSize.k),\n height: (0,_utils_js__WEBPACK_IMPORTED_MODULE_10__.toPx)(pageSize.inner.height, pageSize.k)\n };\n pageSize.inner.ratio = pageSize.inner.height / pageSize.inner.width;\n } // Attach pageSize to this.\n\n\n this.prop.pageSize = pageSize;\n });\n};\n\nWorker.prototype.setProgress = function setProgress(val, state, n, stack) {\n // Immediately update all progress values.\n if (val != null) this.progress.val = val;\n if (state != null) this.progress.state = state;\n if (n != null) this.progress.n = n;\n if (stack != null) this.progress.stack = stack;\n this.progress.ratio = this.progress.val / this.progress.state; // Return this for command chaining.\n\n return this;\n};\n\nWorker.prototype.updateProgress = function updateProgress(val, state, n, stack) {\n // Immediately update all progress values, using setProgress.\n return this.setProgress(val ? this.progress.val + val : null, state ? state : null, n ? this.progress.n + n : null, stack ? this.progress.stack.concat(stack) : null);\n};\n/* ----- PROMISE MAPPING ----- */\n\n\nWorker.prototype.then = function then(onFulfilled, onRejected) {\n // Wrap `this` for encapsulation.\n var self = this;\n return this.thenCore(onFulfilled, onRejected, function then_main(onFulfilled, onRejected) {\n // Update progress while queuing, calling, and resolving `then`.\n self.updateProgress(null, null, 1, [onFulfilled]);\n return Promise.prototype.then.call(this, function then_pre(val) {\n self.updateProgress(null, onFulfilled);\n return val;\n }).then(onFulfilled, onRejected).then(function then_post(val) {\n self.updateProgress(1);\n return val;\n });\n });\n};\n\nWorker.prototype.thenCore = function thenCore(onFulfilled, onRejected, thenBase) {\n // Handle optional thenBase parameter.\n thenBase = thenBase || Promise.prototype.then; // Wrap `this` for encapsulation and bind it to the promise handlers.\n\n var self = this;\n\n if (onFulfilled) {\n onFulfilled = onFulfilled.bind(self);\n }\n\n if (onRejected) {\n onRejected = onRejected.bind(self);\n } // Cast self into a Promise to avoid polyfills recursively defining `then`.\n\n\n var isNative = Promise.toString().indexOf('[native code]') !== -1 && Promise.name === 'Promise';\n var selfPromise = isNative ? self : Worker.convert(Object.assign({}, self), Promise.prototype); // Return the promise, after casting it into a Worker and preserving props.\n\n var returnVal = thenBase.call(selfPromise, onFulfilled, onRejected);\n return Worker.convert(returnVal, self.__proto__);\n};\n\nWorker.prototype.thenExternal = function thenExternal(onFulfilled, onRejected) {\n // Call `then` and return a standard promise (exits the Worker chain).\n return Promise.prototype.then.call(this, onFulfilled, onRejected);\n};\n\nWorker.prototype.thenList = function thenList(fns) {\n // Queue a series of promise 'factories' into the promise chain.\n var self = this;\n fns.forEach(function thenList_forEach(fn) {\n self = self.thenCore(fn);\n });\n return self;\n};\n\nWorker.prototype['catch'] = function (onRejected) {\n // Bind `this` to the promise handler, call `catch`, and return a Worker.\n if (onRejected) {\n onRejected = onRejected.bind(this);\n }\n\n var returnVal = Promise.prototype['catch'].call(this, onRejected);\n return Worker.convert(returnVal, this);\n};\n\nWorker.prototype.catchExternal = function catchExternal(onRejected) {\n // Call `catch` and return a standard promise (exits the Worker chain).\n return Promise.prototype['catch'].call(this, onRejected);\n};\n\nWorker.prototype.error = function error(msg) {\n // Throw the error in the Promise chain.\n return this.then(function error_main() {\n throw new Error(msg);\n });\n};\n/* ----- ALIASES ----- */\n\n\nWorker.prototype.using = Worker.prototype.set;\nWorker.prototype.saveAs = Worker.prototype.save;\nWorker.prototype.export = Worker.prototype.output;\nWorker.prototype.run = Worker.prototype.then;\n/* ----- FINISHING ----- */\n// Expose the Worker class.\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Worker);\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/a-function.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/a-function.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/a-possible-prototype.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/a-possible-prototype.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/add-to-unscopables.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/internals/add-to-unscopables.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/an-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/an-object.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-for-each.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-for-each.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").forEach;\nvar arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ \"./node_modules/core-js/internals/array-method-is-strict.js\");\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-includes.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-includes.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ \"./node_modules/core-js/internals/to-absolute-index.js\");\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-iteration.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/array-iteration.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(/*! ../internals/function-bind-context */ \"./node_modules/core-js/internals/function-bind-context.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ \"./node_modules/core-js/internals/array-species-create.js\");\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-method-has-species-support.js\":\n/*!****************************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-method-has-species-support.js ***!\n \\****************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-method-is-strict.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-method-is-strict.js ***!\n \\******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-species-constructor.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-species-constructor.js ***!\n \\*********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar SPECIES = wellKnownSymbol('species');\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/array-species-create.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/array-species-create.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar arraySpeciesConstructor = __webpack_require__(/*! ../internals/array-species-constructor */ \"./node_modules/core-js/internals/array-species-constructor.js\");\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/classof-raw.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/classof-raw.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/classof.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/internals/classof.js ***!\n \\***************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar classofRaw = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/copy-constructor-properties.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***!\n \\***********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar ownKeys = __webpack_require__(/*! ../internals/own-keys */ \"./node_modules/core-js/internals/own-keys.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/correct-prototype-getter.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-html.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/create-html.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\n\nvar quot = /\"/g;\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + toString(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '</' + tag + '>';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-iterator-constructor.js\":\n/*!***********************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***!\n \\***********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(/*! ../internals/iterators-core */ \"./node_modules/core-js/internals/iterators-core.js\").IteratorPrototype;\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-non-enumerable-property.js\":\n/*!**************************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-non-enumerable-property.js ***!\n \\**************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-property-descriptor.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/internals/create-property-descriptor.js ***!\n \\**********************************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/create-property.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/create-property.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/define-iterator.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/define-iterator.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar createIteratorConstructor = __webpack_require__(/*! ../internals/create-iterator-constructor */ \"./node_modules/core-js/internals/create-iterator-constructor.js\");\nvar getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ \"./node_modules/core-js/internals/object-get-prototype-of.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\nvar IteratorsCore = __webpack_require__(/*! ../internals/iterators-core */ \"./node_modules/core-js/internals/iterators-core.js\");\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/define-well-known-symbol.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/define-well-known-symbol.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(/*! ../internals/path */ \"./node_modules/core-js/internals/path.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!has(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/descriptors.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/descriptors.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/document-create-element.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/document-create-element.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/dom-iterables.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/dom-iterables.js ***!\n \\*********************************************************/\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/engine-user-agent.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/engine-user-agent.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/engine-v8-version.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/engine-v8-version.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar userAgent = __webpack_require__(/*! ../internals/engine-user-agent */ \"./node_modules/core-js/internals/engine-user-agent.js\");\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/enum-bug-keys.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/enum-bug-keys.js ***!\n \\*********************************************************/\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/export.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/export.js ***!\n \\**************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\nvar isForced = __webpack_require__(/*! ../internals/is-forced */ \"./node_modules/core-js/internals/is-forced.js\");\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/fails.js\":\n/*!*************************************************!*\\\n !*** ./node_modules/core-js/internals/fails.js ***!\n \\*************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/function-bind-context.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/function-bind-context.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(/*! ../internals/a-function */ \"./node_modules/core-js/internals/a-function.js\");\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/get-built-in.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/get-built-in.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/global.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/global.js ***!\n \\**************************************************/\n/***/ (function(module) {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/has.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/internals/has.js ***!\n \\***********************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/hidden-keys.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/hidden-keys.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/html.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/internals/html.js ***!\n \\************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/ie8-dom-define.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/ie8-dom-define.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar createElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/indexed-object.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/indexed-object.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/inherit-if-required.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/internals/inherit-if-required.js ***!\n \\***************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar setPrototypeOf = __webpack_require__(/*! ../internals/object-set-prototype-of */ \"./node_modules/core-js/internals/object-set-prototype-of.js\");\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/inspect-source.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/inspect-source.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\nvar functionToString = Function.toString;\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/internal-state.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/internal-state.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(/*! ../internals/native-weak-map */ \"./node_modules/core-js/internals/native-weak-map.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar objectHas = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar shared = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-array.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-array.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-forced.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-forced.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-object.js ***!\n \\*****************************************************/\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-pure.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/internals/is-pure.js ***!\n \\***************************************************/\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/is-symbol.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/is-symbol.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return typeof $Symbol == 'function' && Object(it) instanceof $Symbol;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/iterators-core.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/internals/iterators-core.js ***!\n \\**********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar getPrototypeOf = __webpack_require__(/*! ../internals/object-get-prototype-of */ \"./node_modules/core-js/internals/object-get-prototype-of.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/iterators.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/iterators.js ***!\n \\*****************************************************/\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/native-symbol.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/native-symbol.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/native-weak-map.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/native-weak-map.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar inspectSource = __webpack_require__(/*! ../internals/inspect-source */ \"./node_modules/core-js/internals/inspect-source.js\");\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-assign.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/object-assign.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-create.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/internals/object-create.js ***!\n \\*********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar defineProperties = __webpack_require__(/*! ../internals/object-define-properties */ \"./node_modules/core-js/internals/object-define-properties.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\nvar html = __webpack_require__(/*! ../internals/html */ \"./node_modules/core-js/internals/html.js\");\nvar documentCreateElement = __webpack_require__(/*! ../internals/document-create-element */ \"./node_modules/core-js/internals/document-create-element.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n if (iframe.style) {\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n }\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = document.domain && activeXDocument ?\n NullProtoObjectViaActiveX(activeXDocument) : // old IE\n NullProtoObjectViaIFrame() ||\n NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-define-properties.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-define-properties.js ***!\n \\********************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-define-property.js\":\n/*!******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-define-property.js ***!\n \\******************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\":\n/*!******************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***!\n \\******************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar IE8_DOM_DEFINE = __webpack_require__(/*! ../internals/ie8-dom-define */ \"./node_modules/core-js/internals/ie8-dom-define.js\");\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-names-external.js\":\n/*!**********************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-names-external.js ***!\n \\**********************************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar $getOwnPropertyNames = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\").f;\n\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return windowNames.slice();\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-names.js\":\n/*!*************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***!\n \\*************************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\":\n/*!***************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***!\n \\***************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-get-prototype-of.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(/*! ../internals/correct-prototype-getter */ \"./node_modules/core-js/internals/correct-prototype-getter.js\");\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-keys-internal.js\":\n/*!****************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-keys-internal.js ***!\n \\****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar indexOf = __webpack_require__(/*! ../internals/array-includes */ \"./node_modules/core-js/internals/array-includes.js\").indexOf;\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-keys.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/object-keys.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(/*! ../internals/object-keys-internal */ \"./node_modules/core-js/internals/object-keys-internal.js\");\nvar enumBugKeys = __webpack_require__(/*! ../internals/enum-bug-keys */ \"./node_modules/core-js/internals/enum-bug-keys.js\");\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-property-is-enumerable.js\":\n/*!*************************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***!\n \\*************************************************************************/\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-set-prototype-of.js\":\n/*!*******************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***!\n \\*******************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar aPossiblePrototype = __webpack_require__(/*! ../internals/a-possible-prototype */ \"./node_modules/core-js/internals/a-possible-prototype.js\");\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/object-to-string.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/internals/object-to-string.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar classof = __webpack_require__(/*! ../internals/classof */ \"./node_modules/core-js/internals/classof.js\");\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/ordinary-to-primitive.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/ordinary-to-primitive.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (pref !== 'string' && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/own-keys.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/own-keys.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/path.js\":\n/*!************************************************!*\\\n !*** ./node_modules/core-js/internals/path.js ***!\n \\************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/redefine.js\":\n/*!****************************************************!*\\\n !*** ./node_modules/core-js/internals/redefine.js ***!\n \\****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\nvar inspectSource = __webpack_require__(/*! ../internals/inspect-source */ \"./node_modules/core-js/internals/inspect-source.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/regexp-flags.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/regexp-flags.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/require-object-coercible.js\":\n/*!********************************************************************!*\\\n !*** ./node_modules/core-js/internals/require-object-coercible.js ***!\n \\********************************************************************/\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/set-global.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/set-global.js ***!\n \\******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\n\nmodule.exports = function (key, value) {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/set-to-string-tag.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/set-to-string-tag.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared-key.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/shared-key.js ***!\n \\******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared-store.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/shared-store.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar setGlobal = __webpack_require__(/*! ../internals/set-global */ \"./node_modules/core-js/internals/set-global.js\");\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/shared.js\":\n/*!**************************************************!*\\\n !*** ./node_modules/core-js/internals/shared.js ***!\n \\**************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar store = __webpack_require__(/*! ../internals/shared-store */ \"./node_modules/core-js/internals/shared-store.js\");\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.16.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-html-forced.js\":\n/*!**************************************************************!*\\\n !*** ./node_modules/core-js/internals/string-html-forced.js ***!\n \\**************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-multibyte.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/internals/string-multibyte.js ***!\n \\************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\n// `String.prototype.codePointAt` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/string-trim.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/string-trim.js ***!\n \\*******************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar whitespaces = __webpack_require__(/*! ../internals/whitespaces */ \"./node_modules/core-js/internals/whitespaces.js\");\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-absolute-index.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-absolute-index.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-indexed-object.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-indexed-object.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-integer.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/internals/to-integer.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-length.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-length.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(/*! ../internals/to-integer */ \"./node_modules/core-js/internals/to-integer.js\");\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-object.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-object.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(/*! ../internals/require-object-coercible */ \"./node_modules/core-js/internals/require-object-coercible.js\");\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-primitive.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/internals/to-primitive.js ***!\n \\********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar ordinaryToPrimitive = __webpack_require__(/*! ../internals/ordinary-to-primitive */ \"./node_modules/core-js/internals/ordinary-to-primitive.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = input[TO_PRIMITIVE];\n var result;\n if (exoticToPrim !== undefined) {\n if (pref === undefined) pref = 'default';\n result = exoticToPrim.call(input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-property-key.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/internals/to-property-key.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ \"./node_modules/core-js/internals/to-primitive.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : String(key);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-string-tag-support.js\":\n/*!*****************************************************************!*\\\n !*** ./node_modules/core-js/internals/to-string-tag-support.js ***!\n \\*****************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/to-string.js\":\n/*!*****************************************************!*\\\n !*** ./node_modules/core-js/internals/to-string.js ***!\n \\*****************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\n\nmodule.exports = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/uid.js\":\n/*!***********************************************!*\\\n !*** ./node_modules/core-js/internals/uid.js ***!\n \\***********************************************/\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/use-symbol-as-uid.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/use-symbol-as-uid.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\":\n/*!*********************************************************************!*\\\n !*** ./node_modules/core-js/internals/well-known-symbol-wrapped.js ***!\n \\*********************************************************************/\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nexports.f = wellKnownSymbol;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/well-known-symbol.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/internals/well-known-symbol.js ***!\n \\*************************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\nvar USE_SYMBOL_AS_UID = __webpack_require__(/*! ../internals/use-symbol-as-uid */ \"./node_modules/core-js/internals/use-symbol-as-uid.js\");\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/internals/whitespaces.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/internals/whitespaces.js ***!\n \\*******************************************************/\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.concat.js\":\n/*!*********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.concat.js ***!\n \\*********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\nvar arraySpeciesCreate = __webpack_require__(/*! ../internals/array-species-create */ \"./node_modules/core-js/internals/array-species-create.js\");\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar V8_VERSION = __webpack_require__(/*! ../internals/engine-v8-version */ \"./node_modules/core-js/internals/engine-v8-version.js\");\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.iterator.js\":\n/*!***********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.iterator.js ***!\n \\***********************************************************/\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar addToUnscopables = __webpack_require__(/*! ../internals/add-to-unscopables */ \"./node_modules/core-js/internals/add-to-unscopables.js\");\nvar Iterators = __webpack_require__(/*! ../internals/iterators */ \"./node_modules/core-js/internals/iterators.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar defineIterator = __webpack_require__(/*! ../internals/define-iterator */ \"./node_modules/core-js/internals/define-iterator.js\");\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.join.js\":\n/*!*******************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.join.js ***!\n \\*******************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar IndexedObject = __webpack_require__(/*! ../internals/indexed-object */ \"./node_modules/core-js/internals/indexed-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar arrayMethodIsStrict = __webpack_require__(/*! ../internals/array-method-is-strict */ \"./node_modules/core-js/internals/array-method-is-strict.js\");\n\nvar nativeJoin = [].join;\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin.call(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.map.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.map.js ***!\n \\******************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar $map = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.array.slice.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.array.slice.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar toAbsoluteIndex = __webpack_require__(/*! ../internals/to-absolute-index */ \"./node_modules/core-js/internals/to-absolute-index.js\");\nvar toLength = __webpack_require__(/*! ../internals/to-length */ \"./node_modules/core-js/internals/to-length.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar createProperty = __webpack_require__(/*! ../internals/create-property */ \"./node_modules/core-js/internals/create-property.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar arrayMethodHasSpeciesSupport = __webpack_require__(/*! ../internals/array-method-has-species-support */ \"./node_modules/core-js/internals/array-method-has-species-support.js\");\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.function.name.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.function.name.js ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.number.constructor.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.number.constructor.js ***!\n \\***************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar isForced = __webpack_require__(/*! ../internals/is-forced */ \"./node_modules/core-js/internals/is-forced.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar classof = __webpack_require__(/*! ../internals/classof-raw */ \"./node_modules/core-js/internals/classof-raw.js\");\nvar inheritIfRequired = __webpack_require__(/*! ../internals/inherit-if-required */ \"./node_modules/core-js/internals/inherit-if-required.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar toPrimitive = __webpack_require__(/*! ../internals/to-primitive */ \"./node_modules/core-js/internals/to-primitive.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar create = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar getOwnPropertyNames = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\").f;\nvar getOwnPropertyDescriptor = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\").f;\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar trim = __webpack_require__(/*! ../internals/string-trim */ \"./node_modules/core-js/internals/string-trim.js\").trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n if (isSymbol(argument)) throw TypeError('Cannot convert a Symbol value to a number');\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = it.charCodeAt(0);\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = it.slice(2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = digits.charCodeAt(index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var dummy = this;\n return dummy instanceof NumberWrapper\n // check on 1..constructor(foo) case\n && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.assign.js\":\n/*!**********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.assign.js ***!\n \\**********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar assign = __webpack_require__(/*! ../internals/object-assign */ \"./node_modules/core-js/internals/object-assign.js\");\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.keys.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.keys.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar nativeKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.object.to-string.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.object.to-string.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(/*! ../internals/to-string-tag-support */ \"./node_modules/core-js/internals/to-string-tag-support.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar toString = __webpack_require__(/*! ../internals/object-to-string */ \"./node_modules/core-js/internals/object-to-string.js\");\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.regexp.to-string.js\":\n/*!*************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.regexp.to-string.js ***!\n \\*************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar $toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar flags = __webpack_require__(/*! ../internals/regexp-flags */ \"./node_modules/core-js/internals/regexp-flags.js\");\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.string.iterator.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.string.iterator.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(/*! ../internals/string-multibyte */ \"./node_modules/core-js/internals/string-multibyte.js\").charAt;\nvar toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar defineIterator = __webpack_require__(/*! ../internals/define-iterator */ \"./node_modules/core-js/internals/define-iterator.js\");\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.string.link.js\":\n/*!********************************************************!*\\\n !*** ./node_modules/core-js/modules/es.string.link.js ***!\n \\********************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar createHTML = __webpack_require__(/*! ../internals/create-html */ \"./node_modules/core-js/internals/create-html.js\");\nvar forcedStringHTMLMethod = __webpack_require__(/*! ../internals/string-html-forced */ \"./node_modules/core-js/internals/string-html-forced.js\");\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.description.js\":\n/*!***************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.description.js ***!\n \\***************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar defineProperty = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\").f;\nvar copyConstructorProperties = __webpack_require__(/*! ../internals/copy-constructor-properties */ \"./node_modules/core-js/internals/copy-constructor-properties.js\");\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.iterator.js\":\n/*!************************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.iterator.js ***!\n \\************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ \"./node_modules/core-js/internals/define-well-known-symbol.js\");\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/es.symbol.js\":\n/*!***************************************************!*\\\n !*** ./node_modules/core-js/modules/es.symbol.js ***!\n \\***************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(/*! ../internals/export */ \"./node_modules/core-js/internals/export.js\");\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar getBuiltIn = __webpack_require__(/*! ../internals/get-built-in */ \"./node_modules/core-js/internals/get-built-in.js\");\nvar IS_PURE = __webpack_require__(/*! ../internals/is-pure */ \"./node_modules/core-js/internals/is-pure.js\");\nvar DESCRIPTORS = __webpack_require__(/*! ../internals/descriptors */ \"./node_modules/core-js/internals/descriptors.js\");\nvar NATIVE_SYMBOL = __webpack_require__(/*! ../internals/native-symbol */ \"./node_modules/core-js/internals/native-symbol.js\");\nvar fails = __webpack_require__(/*! ../internals/fails */ \"./node_modules/core-js/internals/fails.js\");\nvar has = __webpack_require__(/*! ../internals/has */ \"./node_modules/core-js/internals/has.js\");\nvar isArray = __webpack_require__(/*! ../internals/is-array */ \"./node_modules/core-js/internals/is-array.js\");\nvar isObject = __webpack_require__(/*! ../internals/is-object */ \"./node_modules/core-js/internals/is-object.js\");\nvar isSymbol = __webpack_require__(/*! ../internals/is-symbol */ \"./node_modules/core-js/internals/is-symbol.js\");\nvar anObject = __webpack_require__(/*! ../internals/an-object */ \"./node_modules/core-js/internals/an-object.js\");\nvar toObject = __webpack_require__(/*! ../internals/to-object */ \"./node_modules/core-js/internals/to-object.js\");\nvar toIndexedObject = __webpack_require__(/*! ../internals/to-indexed-object */ \"./node_modules/core-js/internals/to-indexed-object.js\");\nvar toPropertyKey = __webpack_require__(/*! ../internals/to-property-key */ \"./node_modules/core-js/internals/to-property-key.js\");\nvar $toString = __webpack_require__(/*! ../internals/to-string */ \"./node_modules/core-js/internals/to-string.js\");\nvar createPropertyDescriptor = __webpack_require__(/*! ../internals/create-property-descriptor */ \"./node_modules/core-js/internals/create-property-descriptor.js\");\nvar nativeObjectCreate = __webpack_require__(/*! ../internals/object-create */ \"./node_modules/core-js/internals/object-create.js\");\nvar objectKeys = __webpack_require__(/*! ../internals/object-keys */ \"./node_modules/core-js/internals/object-keys.js\");\nvar getOwnPropertyNamesModule = __webpack_require__(/*! ../internals/object-get-own-property-names */ \"./node_modules/core-js/internals/object-get-own-property-names.js\");\nvar getOwnPropertyNamesExternal = __webpack_require__(/*! ../internals/object-get-own-property-names-external */ \"./node_modules/core-js/internals/object-get-own-property-names-external.js\");\nvar getOwnPropertySymbolsModule = __webpack_require__(/*! ../internals/object-get-own-property-symbols */ \"./node_modules/core-js/internals/object-get-own-property-symbols.js\");\nvar getOwnPropertyDescriptorModule = __webpack_require__(/*! ../internals/object-get-own-property-descriptor */ \"./node_modules/core-js/internals/object-get-own-property-descriptor.js\");\nvar definePropertyModule = __webpack_require__(/*! ../internals/object-define-property */ \"./node_modules/core-js/internals/object-define-property.js\");\nvar propertyIsEnumerableModule = __webpack_require__(/*! ../internals/object-property-is-enumerable */ \"./node_modules/core-js/internals/object-property-is-enumerable.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar redefine = __webpack_require__(/*! ../internals/redefine */ \"./node_modules/core-js/internals/redefine.js\");\nvar shared = __webpack_require__(/*! ../internals/shared */ \"./node_modules/core-js/internals/shared.js\");\nvar sharedKey = __webpack_require__(/*! ../internals/shared-key */ \"./node_modules/core-js/internals/shared-key.js\");\nvar hiddenKeys = __webpack_require__(/*! ../internals/hidden-keys */ \"./node_modules/core-js/internals/hidden-keys.js\");\nvar uid = __webpack_require__(/*! ../internals/uid */ \"./node_modules/core-js/internals/uid.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\nvar wrappedWellKnownSymbolModule = __webpack_require__(/*! ../internals/well-known-symbol-wrapped */ \"./node_modules/core-js/internals/well-known-symbol-wrapped.js\");\nvar defineWellKnownSymbol = __webpack_require__(/*! ../internals/define-well-known-symbol */ \"./node_modules/core-js/internals/define-well-known-symbol.js\");\nvar setToStringTag = __webpack_require__(/*! ../internals/set-to-string-tag */ \"./node_modules/core-js/internals/set-to-string-tag.js\");\nvar InternalStateModule = __webpack_require__(/*! ../internals/internal-state */ \"./node_modules/core-js/internals/internal-state.js\");\nvar $forEach = __webpack_require__(/*! ../internals/array-iteration */ \"./node_modules/core-js/internals/array-iteration.js\").forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\nvar WellKnownSymbolsStore = shared('wks');\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (has(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!has(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (has(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = nativePropertyIsEnumerable.call(this, P);\n if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!has(AllSymbols, key) && !has(hiddenKeys, key)) result.push(key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {\n result.push(AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) setter.call(ObjectPrototypeSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty($Symbol[PROTOTYPE], 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (has(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (has(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames,\n // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = [it];\n var index = 1;\n var $replacer;\n while (arguments.length > index) args.push(arguments[index++]);\n $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return $stringify.apply(null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {\n createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/web.dom-collections.for-each.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/modules/web.dom-collections.for-each.js ***!\n \\**********************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ \"./node_modules/core-js/internals/dom-iterables.js\");\nvar forEach = __webpack_require__(/*! ../internals/array-for-each */ \"./node_modules/core-js/internals/array-for-each.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\":\n/*!**********************************************************************!*\\\n !*** ./node_modules/core-js/modules/web.dom-collections.iterator.js ***!\n \\**********************************************************************/\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(/*! ../internals/global */ \"./node_modules/core-js/internals/global.js\");\nvar DOMIterables = __webpack_require__(/*! ../internals/dom-iterables */ \"./node_modules/core-js/internals/dom-iterables.js\");\nvar ArrayIteratorMethods = __webpack_require__(/*! ../modules/es.array.iterator */ \"./node_modules/core-js/modules/es.array.iterator.js\");\nvar createNonEnumerableProperty = __webpack_require__(/*! ../internals/create-non-enumerable-property */ \"./node_modules/core-js/internals/create-non-enumerable-property.js\");\nvar wellKnownSymbol = __webpack_require__(/*! ../internals/well-known-symbol */ \"./node_modules/core-js/internals/well-known-symbol.js\");\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n\n/***/ \"./node_modules/es6-promise/dist/es6-promise.js\":\n/*!******************************************************!*\\\n !*** ./node_modules/es6-promise/dist/es6-promise.js ***!\n \\******************************************************/\n/***/ (function(module) {\n\n/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\t0;\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n\n/***/ }),\n\n/***/ \"html2canvas\":\n/*!******************************!*\\\n !*** external \"html2canvas\" ***!\n \\******************************/\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_html2canvas__;\n\n/***/ }),\n\n/***/ \"jspdf\":\n/*!************************!*\\\n !*** external \"jspdf\" ***!\n \\************************/\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jspdf__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _worker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./worker.js */ \"./src/worker.js\");\n/* harmony import */ var _plugin_jspdf_plugin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./plugin/jspdf-plugin.js */ \"./src/plugin/jspdf-plugin.js\");\n/* harmony import */ var _plugin_pagebreaks_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugin/pagebreaks.js */ \"./src/plugin/pagebreaks.js\");\n/* harmony import */ var _plugin_hyperlinks_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./plugin/hyperlinks.js */ \"./src/plugin/hyperlinks.js\");\n\n\n\n\n/**\n * Generate a PDF from an HTML element or string using html2canvas and jsPDF.\n *\n * @param {Element|string} source The source element or HTML string.\n * @param {Object=} opt An object of optional settings: 'margin', 'filename',\n * 'image' ('type' and 'quality'), and 'html2canvas' / 'jspdf', which are\n * sent as settings to their corresponding functions.\n */\n\nvar html2pdf = function html2pdf(src, opt) {\n // Create a new worker with the given options.\n var worker = new html2pdf.Worker(opt);\n\n if (src) {\n // If src is specified, perform the traditional 'simple' operation.\n return worker.from(src).save();\n } else {\n // Otherwise, return the worker for new Promise-based operation.\n return worker;\n }\n};\n\nhtml2pdf.Worker = _worker_js__WEBPACK_IMPORTED_MODULE_0__.default; // Expose the html2pdf function.\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (html2pdf);\n}();\n__webpack_exports__ = __webpack_exports__.default;\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"printJS\"] = factory();\n\telse\n\t\troot[\"printJS\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./src/index.js\":\n/*!**********************!*\\\n !*** ./src/index.js ***!\n \\**********************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sass/index.scss */ \"./src/sass/index.scss\");\n/* harmony import */ var _sass_index_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_sass_index_scss__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _js_init__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./js/init */ \"./src/js/init.js\");\n\n\nvar printJS = _js_init__WEBPACK_IMPORTED_MODULE_1__[\"default\"].init;\n\nif (typeof window !== 'undefined') {\n window.printJS = printJS;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (printJS);\n\n/***/ }),\n\n/***/ \"./src/js/browser.js\":\n/*!***************************!*\\\n !*** ./src/js/browser.js ***!\n \\***************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar Browser = {\n // Firefox 1.0+\n isFirefox: function isFirefox() {\n return typeof InstallTrigger !== 'undefined';\n },\n // Internet Explorer 6-11\n isIE: function isIE() {\n return navigator.userAgent.indexOf('MSIE') !== -1 || !!document.documentMode;\n },\n // Edge 20+\n isEdge: function isEdge() {\n return !Browser.isIE() && !!window.StyleMedia;\n },\n // Chrome 1+\n isChrome: function isChrome() {\n var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n return !!context.chrome;\n },\n // At least Safari 3+: \"[object HTMLElementConstructor]\"\n isSafari: function isSafari() {\n return Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0 || navigator.userAgent.toLowerCase().indexOf('safari') !== -1;\n },\n // IOS Chrome\n isIOSChrome: function isIOSChrome() {\n return navigator.userAgent.toLowerCase().indexOf('crios') !== -1;\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Browser);\n\n/***/ }),\n\n/***/ \"./src/js/functions.js\":\n/*!*****************************!*\\\n !*** ./src/js/functions.js ***!\n \\*****************************/\n/*! exports provided: addWrapper, capitalizePrint, collectStyles, addHeader, cleanUp, isRawHTML */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addWrapper\", function() { return addWrapper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"capitalizePrint\", function() { return capitalizePrint; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"collectStyles\", function() { return collectStyles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addHeader\", function() { return addHeader; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cleanUp\", function() { return cleanUp; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRawHTML\", function() { return isRawHTML; });\n/* harmony import */ var _modal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modal */ \"./src/js/modal.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\nfunction addWrapper(htmlData, params) {\n var bodyStyle = 'font-family:' + params.font + ' !important; font-size: ' + params.font_size + ' !important; width:100%;';\n return '<div style=\"' + bodyStyle + '\">' + htmlData + '</div>';\n}\nfunction capitalizePrint(obj) {\n return obj.charAt(0).toUpperCase() + obj.slice(1);\n}\nfunction collectStyles(element, params) {\n var win = document.defaultView || window; // String variable to hold styling for each element\n\n var elementStyle = ''; // Loop over computed styles\n\n var styles = win.getComputedStyle(element, '');\n\n for (var key = 0; key < styles.length; key++) {\n // Check if style should be processed\n if (params.targetStyles.indexOf('*') !== -1 || params.targetStyle.indexOf(styles[key]) !== -1 || targetStylesMatch(params.targetStyles, styles[key])) {\n if (styles.getPropertyValue(styles[key])) elementStyle += styles[key] + ':' + styles.getPropertyValue(styles[key]) + ';';\n }\n } // Print friendly defaults (deprecated)\n\n\n elementStyle += 'max-width: ' + params.maxWidth + 'px !important; font-size: ' + params.font_size + ' !important;';\n return elementStyle;\n}\n\nfunction targetStylesMatch(styles, value) {\n for (var i = 0; i < styles.length; i++) {\n if (_typeof(value) === 'object' && value.indexOf(styles[i]) !== -1) return true;\n }\n\n return false;\n}\n\nfunction addHeader(printElement, params) {\n // Create the header container div\n var headerContainer = document.createElement('div'); // Check if the header is text or raw html\n\n if (isRawHTML(params.header)) {\n headerContainer.innerHTML = params.header;\n } else {\n // Create header element\n var headerElement = document.createElement('h1'); // Create header text node\n\n var headerNode = document.createTextNode(params.header); // Build and style\n\n headerElement.appendChild(headerNode);\n headerElement.setAttribute('style', params.headerStyle);\n headerContainer.appendChild(headerElement);\n }\n\n printElement.insertBefore(headerContainer, printElement.childNodes[0]);\n}\nfunction cleanUp(params) {\n // If we are showing a feedback message to user, remove it\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_0__[\"default\"].close(); // Check for a finished loading hook function\n\n if (params.onLoadingEnd) params.onLoadingEnd(); // If preloading pdf files, clean blob url\n\n if (params.showModal || params.onLoadingStart) window.URL.revokeObjectURL(params.printable); // Run onPrintDialogClose callback\n\n var event = 'mouseover';\n\n if (_browser__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isChrome() || _browser__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFirefox()) {\n // Ps.: Firefox will require an extra click in the document to fire the focus event.\n event = 'focus';\n }\n\n var handler = function handler() {\n // Make sure the event only happens once.\n window.removeEventListener(event, handler);\n params.onPrintDialogClose(); // Remove iframe from the DOM\n\n var iframe = document.getElementById(params.frameId);\n\n if (iframe) {\n iframe.remove();\n }\n };\n\n window.addEventListener(event, handler);\n}\nfunction isRawHTML(raw) {\n var regexHtml = new RegExp('<([A-Za-z][A-Za-z0-9]*)\\\\b[^>]*>(.*?)</\\\\1>');\n return regexHtml.test(raw);\n}\n\n/***/ }),\n\n/***/ \"./src/js/html.js\":\n/*!************************!*\\\n !*** ./src/js/html.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Get the DOM printable element\n var printElement = isHtmlElement(params.printable) ? params.printable : document.getElementById(params.printable); // Check if the element exists\n\n if (!printElement) {\n window.console.error('Invalid HTML element id: ' + params.printable);\n return;\n } // Clone the target element including its children (if available)\n\n\n params.printableElement = cloneElement(printElement, params); // Add header\n\n if (params.header) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params);\n } // Print html element contents\n\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\nfunction cloneElement(element, params) {\n // Clone the main node (if not already inside the recursion process)\n var clone = element.cloneNode(); // Loop over and process the children elements / nodes (including text nodes)\n\n var childNodesArray = Array.prototype.slice.call(element.childNodes);\n\n for (var i = 0; i < childNodesArray.length; i++) {\n // Check if we are skipping the current element\n if (params.ignoreElements.indexOf(childNodesArray[i].id) !== -1) {\n continue;\n } // Clone the child element\n\n\n var clonedChild = cloneElement(childNodesArray[i], params); // Attach the cloned child to the cloned parent node\n\n clone.appendChild(clonedChild);\n } // Get all styling for print element (for nodes of type element only)\n\n\n if (params.scanStyles && element.nodeType === 1) {\n clone.setAttribute('style', Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"collectStyles\"])(element, params));\n } // Check if the element needs any state processing (copy user input data)\n\n\n switch (element.tagName) {\n case 'SELECT':\n // Copy the current selection value to its clone\n clone.value = element.value;\n break;\n\n case 'CANVAS':\n // Copy the canvas content to its clone\n clone.getContext('2d').drawImage(element, 0, 0);\n break;\n }\n\n return clone;\n}\n\nfunction isHtmlElement(printable) {\n // Check if element is instance of HTMLElement or has nodeType === 1 (for elements in iframe)\n return _typeof(printable) === 'object' && printable && (printable instanceof HTMLElement || printable.nodeType === 1);\n}\n\n/***/ }),\n\n/***/ \"./src/js/image.js\":\n/*!*************************!*\\\n !*** ./src/js/image.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we are printing one image or multiple images\n if (params.printable.constructor !== Array) {\n // Create array with one image\n params.printable = [params.printable];\n } // Create printable element (container)\n\n\n params.printableElement = document.createElement('div'); // Create all image elements and append them to the printable container\n\n params.printable.forEach(function (src) {\n // Create the image element\n var img = document.createElement('img');\n img.setAttribute('style', params.imageStyle); // Set image src with the file url\n\n img.src = src; // The following block is for Firefox, which for some reason requires the image's src to be fully qualified in\n // order to print it\n\n if (_browser__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isFirefox()) {\n var fullyQualifiedSrc = img.src;\n img.src = fullyQualifiedSrc;\n } // Create the image wrapper\n\n\n var imageWrapper = document.createElement('div'); // Append image to the wrapper element\n\n imageWrapper.appendChild(img); // Append wrapper to the printable element\n\n params.printableElement.appendChild(imageWrapper);\n }); // Check if we are adding a print header\n\n if (params.header) Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params); // Print image\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/js/init.js\":\n/*!************************!*\\\n !*** ./src/js/init.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n/* harmony import */ var _modal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modal */ \"./src/js/modal.js\");\n/* harmony import */ var _pdf__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./pdf */ \"./src/js/pdf.js\");\n/* harmony import */ var _html__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./html */ \"./src/js/html.js\");\n/* harmony import */ var _raw_html__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./raw-html */ \"./src/js/raw-html.js\");\n/* harmony import */ var _image__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./image */ \"./src/js/image.js\");\n/* harmony import */ var _json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./json */ \"./src/js/json.js\");\n\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\nvar printTypes = ['pdf', 'html', 'image', 'json', 'raw-html'];\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n init: function init() {\n var params = {\n printable: null,\n fallbackPrintable: null,\n type: 'pdf',\n header: null,\n headerStyle: 'font-weight: 300;',\n maxWidth: 800,\n properties: null,\n gridHeaderStyle: 'font-weight: bold; padding: 5px; border: 1px solid #dddddd;',\n gridStyle: 'border: 1px solid lightgray; margin-bottom: -1px;',\n showModal: false,\n onError: function onError(error) {\n throw error;\n },\n onLoadingStart: null,\n onLoadingEnd: null,\n onPrintDialogClose: function onPrintDialogClose() {},\n onIncompatibleBrowser: function onIncompatibleBrowser() {},\n modalMessage: 'Retrieving Document...',\n frameId: 'printJS',\n printableElement: null,\n documentTitle: 'Document',\n targetStyle: ['clear', 'display', 'width', 'min-width', 'height', 'min-height', 'max-height'],\n targetStyles: ['border', 'box', 'break', 'text-decoration'],\n ignoreElements: [],\n repeatTableHeader: true,\n css: null,\n style: null,\n scanStyles: true,\n base64: false,\n // Deprecated\n onPdfOpen: null,\n font: 'TimesNewRoman',\n font_size: '12pt',\n honorMarginPadding: true,\n honorColor: false,\n imageStyle: 'max-width: 100%;'\n }; // Check if a printable document or object was supplied\n\n var args = arguments[0];\n\n if (args === undefined) {\n throw new Error('printJS expects at least 1 attribute.');\n } // Process parameters\n\n\n switch (_typeof(args)) {\n case 'string':\n params.printable = encodeURI(args);\n params.fallbackPrintable = params.printable;\n params.type = arguments[1] || params.type;\n break;\n\n case 'object':\n params.printable = args.printable;\n params.fallbackPrintable = typeof args.fallbackPrintable !== 'undefined' ? args.fallbackPrintable : params.printable;\n params.fallbackPrintable = params.base64 ? \"data:application/pdf;base64,\".concat(params.fallbackPrintable) : params.fallbackPrintable;\n\n for (var k in params) {\n if (k === 'printable' || k === 'fallbackPrintable') continue;\n params[k] = typeof args[k] !== 'undefined' ? args[k] : params[k];\n }\n\n break;\n\n default:\n throw new Error('Unexpected argument type! Expected \"string\" or \"object\", got ' + _typeof(args));\n } // Validate printable\n\n\n if (!params.printable) throw new Error('Missing printable information.'); // Validate type\n\n if (!params.type || typeof params.type !== 'string' || printTypes.indexOf(params.type.toLowerCase()) === -1) {\n throw new Error('Invalid print type. Available types are: pdf, html, image and json.');\n } // Check if we are showing a feedback message to the user (useful for large files)\n\n\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__[\"default\"].show(params); // Check for a print start hook function\n\n if (params.onLoadingStart) params.onLoadingStart(); // To prevent duplication and issues, remove any used printFrame from the DOM\n\n var usedFrame = document.getElementById(params.frameId);\n if (usedFrame) usedFrame.parentNode.removeChild(usedFrame); // Create a new iframe for the print job\n\n var printFrame = document.createElement('iframe');\n\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n // Set the iframe to be is visible on the page (guaranteed by fixed position) but hidden using opacity 0, because\n // this works in Firefox. The height needs to be sufficient for some part of the document other than the PDF\n // viewer's toolbar to be visible in the page\n printFrame.setAttribute('style', 'width: 1px; height: 100px; position: fixed; left: 0; top: 0; opacity: 0; border-width: 0; margin: 0; padding: 0');\n } else {\n // Hide the iframe in other browsers\n printFrame.setAttribute('style', 'visibility: hidden; height: 0; width: 0; position: absolute; border: 0');\n } // Set iframe element id\n\n\n printFrame.setAttribute('id', params.frameId); // For non pdf printing, pass an html document string to srcdoc (force onload callback)\n\n if (params.type !== 'pdf') {\n printFrame.srcdoc = '<html><head><title>' + params.documentTitle + '</title>'; // Attach css files\n\n if (params.css) {\n // Add support for single file\n if (!Array.isArray(params.css)) params.css = [params.css]; // Create link tags for each css file\n\n params.css.forEach(function (file) {\n printFrame.srcdoc += '<link rel=\"stylesheet\" href=\"' + file + '\">';\n });\n }\n\n printFrame.srcdoc += '</head><body></body></html>';\n } // Check printable type\n\n\n switch (params.type) {\n case 'pdf':\n // Check browser support for pdf and if not supported we will just open the pdf file instead\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIE()) {\n try {\n console.info('Print.js doesn\\'t support PDF printing in Internet Explorer.');\n var win = window.open(params.fallbackPrintable, '_blank');\n win.focus();\n params.onIncompatibleBrowser();\n } catch (error) {\n params.onError(error);\n } finally {\n // Make sure there is no loading modal opened\n if (params.showModal) _modal__WEBPACK_IMPORTED_MODULE_1__[\"default\"].close();\n if (params.onLoadingEnd) params.onLoadingEnd();\n }\n } else {\n _pdf__WEBPACK_IMPORTED_MODULE_2__[\"default\"].print(params, printFrame);\n }\n\n break;\n\n case 'image':\n _image__WEBPACK_IMPORTED_MODULE_5__[\"default\"].print(params, printFrame);\n break;\n\n case 'html':\n _html__WEBPACK_IMPORTED_MODULE_3__[\"default\"].print(params, printFrame);\n break;\n\n case 'raw-html':\n _raw_html__WEBPACK_IMPORTED_MODULE_4__[\"default\"].print(params, printFrame);\n break;\n\n case 'json':\n _json__WEBPACK_IMPORTED_MODULE_6__[\"default\"].print(params, printFrame);\n break;\n }\n }\n});\n\n/***/ }),\n\n/***/ \"./src/js/json.js\":\n/*!************************!*\\\n !*** ./src/js/json.js ***!\n \\************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we received proper data\n if (_typeof(params.printable) !== 'object') {\n throw new Error('Invalid javascript data object (JSON).');\n } // Validate repeatTableHeader\n\n\n if (typeof params.repeatTableHeader !== 'boolean') {\n throw new Error('Invalid value for repeatTableHeader attribute (JSON).');\n } // Validate properties\n\n\n if (!params.properties || !Array.isArray(params.properties)) {\n throw new Error('Invalid properties array for your JSON data.');\n } // We will format the property objects to keep the JSON api compatible with older releases\n\n\n params.properties = params.properties.map(function (property) {\n return {\n field: _typeof(property) === 'object' ? property.field : property,\n displayName: _typeof(property) === 'object' ? property.displayName : property,\n columnSize: _typeof(property) === 'object' && property.columnSize ? property.columnSize + ';' : 100 / params.properties.length + '%;'\n };\n }); // Create a print container element\n\n params.printableElement = document.createElement('div'); // Check if we are adding a print header\n\n if (params.header) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"addHeader\"])(params.printableElement, params);\n } // Build the printable html data\n\n\n params.printableElement.innerHTML += jsonToHTML(params); // Print the json data\n\n _print__WEBPACK_IMPORTED_MODULE_1__[\"default\"].send(params, printFrame);\n }\n});\n\nfunction jsonToHTML(params) {\n // Get the row and column data\n var data = params.printable;\n var properties = params.properties; // Create a html table\n\n var htmlData = '<table style=\"border-collapse: collapse; width: 100%;\">'; // Check if the header should be repeated\n\n if (params.repeatTableHeader) {\n htmlData += '<thead>';\n } // Add the table header row\n\n\n htmlData += '<tr>'; // Add the table header columns\n\n for (var a = 0; a < properties.length; a++) {\n htmlData += '<th style=\"width:' + properties[a].columnSize + ';' + params.gridHeaderStyle + '\">' + Object(_functions__WEBPACK_IMPORTED_MODULE_0__[\"capitalizePrint\"])(properties[a].displayName) + '</th>';\n } // Add the closing tag for the table header row\n\n\n htmlData += '</tr>'; // If the table header is marked as repeated, add the closing tag\n\n if (params.repeatTableHeader) {\n htmlData += '</thead>';\n } // Create the table body\n\n\n htmlData += '<tbody>'; // Add the table data rows\n\n for (var i = 0; i < data.length; i++) {\n // Add the row starting tag\n htmlData += '<tr>'; // Print selected properties only\n\n for (var n = 0; n < properties.length; n++) {\n var stringData = data[i]; // Support nested objects\n\n var property = properties[n].field.split('.');\n\n if (property.length > 1) {\n for (var p = 0; p < property.length; p++) {\n stringData = stringData[property[p]];\n }\n } else {\n stringData = stringData[properties[n].field];\n } // Add the row contents and styles\n\n\n htmlData += '<td style=\"width:' + properties[n].columnSize + params.gridStyle + '\">' + stringData + '</td>';\n } // Add the row closing tag\n\n\n htmlData += '</tr>';\n } // Add the table and body closing tags\n\n\n htmlData += '</tbody></table>';\n return htmlData;\n}\n\n/***/ }),\n\n/***/ \"./src/js/modal.js\":\n/*!*************************!*\\\n !*** ./src/js/modal.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\nvar Modal = {\n show: function show(params) {\n // Build modal\n var modalStyle = 'font-family:sans-serif; ' + 'display:table; ' + 'text-align:center; ' + 'font-weight:300; ' + 'font-size:30px; ' + 'left:0; top:0;' + 'position:fixed; ' + 'z-index: 9990;' + 'color: #0460B5; ' + 'width: 100%; ' + 'height: 100%; ' + 'background-color:rgba(255,255,255,.9);' + 'transition: opacity .3s ease;'; // Create wrapper\n\n var printModal = document.createElement('div');\n printModal.setAttribute('style', modalStyle);\n printModal.setAttribute('id', 'printJS-Modal'); // Create content div\n\n var contentDiv = document.createElement('div');\n contentDiv.setAttribute('style', 'display:table-cell; vertical-align:middle; padding-bottom:100px;'); // Add close button (requires print.css)\n\n var closeButton = document.createElement('div');\n closeButton.setAttribute('class', 'printClose');\n closeButton.setAttribute('id', 'printClose');\n contentDiv.appendChild(closeButton); // Add spinner (requires print.css)\n\n var spinner = document.createElement('span');\n spinner.setAttribute('class', 'printSpinner');\n contentDiv.appendChild(spinner); // Add message\n\n var messageNode = document.createTextNode(params.modalMessage);\n contentDiv.appendChild(messageNode); // Add contentDiv to printModal\n\n printModal.appendChild(contentDiv); // Append print modal element to document body\n\n document.getElementsByTagName('body')[0].appendChild(printModal); // Add event listener to close button\n\n document.getElementById('printClose').addEventListener('click', function () {\n Modal.close();\n });\n },\n close: function close() {\n var printModal = document.getElementById('printJS-Modal');\n\n if (printModal) {\n printModal.parentNode.removeChild(printModal);\n }\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Modal);\n\n/***/ }),\n\n/***/ \"./src/js/pdf.js\":\n/*!***********************!*\\\n !*** ./src/js/pdf.js ***!\n \\***********************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Check if we have base64 data\n if (params.base64) {\n var bytesArray = Uint8Array.from(atob(params.printable), function (c) {\n return c.charCodeAt(0);\n });\n createBlobAndPrint(params, printFrame, bytesArray);\n return;\n } // Format pdf url\n\n\n params.printable = /^(blob|http|\\/\\/)/i.test(params.printable) ? params.printable : window.location.origin + (params.printable.charAt(0) !== '/' ? '/' + params.printable : params.printable); // Get the file through a http request (Preload)\n\n var req = new window.XMLHttpRequest();\n req.responseType = 'arraybuffer';\n req.addEventListener('error', function () {\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job\n });\n req.addEventListener('load', function () {\n // Check for errors\n if ([200, 201].indexOf(req.status) === -1) {\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n params.onError(req.statusText, req); // Since we don't have a pdf document available, we will stop the print job\n\n return;\n } // Print requested document\n\n\n createBlobAndPrint(params, printFrame, req.response);\n });\n req.open('GET', params.printable, true);\n req.send();\n }\n});\n\nfunction createBlobAndPrint(params, printFrame, data) {\n // Pass response or base64 data to a blob and create a local object url\n var localPdf = new window.Blob([data], {\n type: 'application/pdf'\n });\n localPdf = window.URL.createObjectURL(localPdf); // Set iframe src with pdf document url\n\n printFrame.setAttribute('src', localPdf);\n _print__WEBPACK_IMPORTED_MODULE_0__[\"default\"].send(params, printFrame);\n}\n\n/***/ }),\n\n/***/ \"./src/js/print.js\":\n/*!*************************!*\\\n !*** ./src/js/print.js ***!\n \\*************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./browser */ \"./src/js/browser.js\");\n/* harmony import */ var _functions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./functions */ \"./src/js/functions.js\");\n\n\nvar Print = {\n send: function send(params, printFrame) {\n // Append iframe element to document body\n document.getElementsByTagName('body')[0].appendChild(printFrame); // Get iframe element\n\n var iframeElement = document.getElementById(params.frameId); // Wait for iframe to load all content\n\n iframeElement.onload = function () {\n if (params.type === 'pdf') {\n // Add a delay for Firefox. In my tests, 1000ms was sufficient but 100ms was not\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n setTimeout(function () {\n return performPrint(iframeElement, params);\n }, 1000);\n } else {\n performPrint(iframeElement, params);\n }\n\n return;\n } // Get iframe element document\n\n\n var printDocument = iframeElement.contentWindow || iframeElement.contentDocument;\n if (printDocument.document) printDocument = printDocument.document; // Append printable element to the iframe body\n\n printDocument.body.appendChild(params.printableElement); // Add custom style\n\n if (params.type !== 'pdf' && params.style) {\n // Create style element\n var style = document.createElement('style');\n style.innerHTML = params.style; // Append style element to iframe's head\n\n printDocument.head.appendChild(style);\n } // If printing images, wait for them to load inside the iframe\n\n\n var images = printDocument.getElementsByTagName('img');\n\n if (images.length > 0) {\n loadIframeImages(Array.from(images)).then(function () {\n return performPrint(iframeElement, params);\n });\n } else {\n performPrint(iframeElement, params);\n }\n };\n }\n};\n\nfunction performPrint(iframeElement, params) {\n try {\n iframeElement.focus(); // If Edge or IE, try catch with execCommand\n\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isEdge() || _browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIE()) {\n try {\n iframeElement.contentWindow.document.execCommand('print', false, null);\n } catch (e) {\n iframeElement.contentWindow.print();\n }\n } else {\n // Other browsers\n iframeElement.contentWindow.print();\n }\n } catch (error) {\n params.onError(error);\n } finally {\n if (_browser__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFirefox()) {\n // Move the iframe element off-screen and make it invisible\n iframeElement.style.visibility = 'hidden';\n iframeElement.style.left = '-1px';\n }\n\n Object(_functions__WEBPACK_IMPORTED_MODULE_1__[\"cleanUp\"])(params);\n }\n}\n\nfunction loadIframeImages(images) {\n var promises = images.map(function (image) {\n if (image.src && image.src !== window.location.href) {\n return loadIframeImage(image);\n }\n });\n return Promise.all(promises);\n}\n\nfunction loadIframeImage(image) {\n return new Promise(function (resolve) {\n var pollImage = function pollImage() {\n !image || typeof image.naturalWidth === 'undefined' || image.naturalWidth === 0 || !image.complete ? setTimeout(pollImage, 500) : resolve();\n };\n\n pollImage();\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Print);\n\n/***/ }),\n\n/***/ \"./src/js/raw-html.js\":\n/*!****************************!*\\\n !*** ./src/js/raw-html.js ***!\n \\****************************/\n/*! exports provided: default */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _print__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./print */ \"./src/js/print.js\");\n\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n print: function print(params, printFrame) {\n // Create printable element (container)\n params.printableElement = document.createElement('div');\n params.printableElement.setAttribute('style', 'width:100%'); // Set our raw html as the printable element inner html content\n\n params.printableElement.innerHTML = params.printable; // Print html contents\n\n _print__WEBPACK_IMPORTED_MODULE_0__[\"default\"].send(params, printFrame);\n }\n});\n\n/***/ }),\n\n/***/ \"./src/sass/index.scss\":\n/*!*****************************!*\\\n !*** ./src/sass/index.scss ***!\n \\*****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\n// extracted by mini-css-extract-plugin\n\n/***/ }),\n\n/***/ 0:\n/*!****************************!*\\\n !*** multi ./src/index.js ***!\n \\****************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! ./src/index.js */\"./src/index.js\");\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=print.map","import { defineComponent as l, shallowRef as a, toRaw as p, openBlock as u, createElementBlock as m, normalizeStyle as v } from \"vue\";\nconst h = \"vue-email-editor\", b = \"2.1.4\", y = \"dist/vue-email-editor.es\", f = \"dist/vue-email-editor.d.ts\", g = {\n serve: \"vue-cli-service serve\",\n build: \"vue-cli-service build\",\n lint: \"vue-cli-service lint\",\n \"adjust-types\": `sed -i '' '1s/^/\\\\/\\\\/\\\\/ <reference types=\\\\\"unlayer-types\\\\/embed.d.ts\\\\\" \\\\/>\\\\n/' ./dist/components/types.d.ts`,\n \"build-types\": \"vue-tsc --emitDeclarationOnly && npm run adjust-types\",\n \"build-bundle\": \"vite build && cd ./src/components && npm run build-types\",\n release: \"npm run build-bundle && npm publish\"\n}, j = {\n \"unlayer-types\": \"latest\",\n vue: \"^3.2.13\"\n}, E = {\n \"@babel/types\": \"^7.24.7\",\n \"@vitejs/plugin-vue\": \"^5.0.5\",\n \"@vue/cli-service\": \"~5.0.0\",\n \"@vue/cli-plugin-typescript\": \"~5.0.0\",\n typescript: \"^5.2.2\",\n vite: \"^5.3.1\",\n \"vue-dts-gen\": \"^0.3.0\",\n \"vue-loader\": \"^17.4.2\",\n \"vue-router\": \"^4.4.0\",\n \"vue-template-compiler\": \"^2.7.16\",\n \"vue-tsc\": \"^2.0.22\"\n}, _ = [\n \"dist\"\n], n = {\n name: h,\n version: b,\n main: y,\n types: f,\n scripts: g,\n dependencies: j,\n devDependencies: E,\n files: _\n}, S = \"https://editor.unlayer.com/embed.js?2\", d = [];\nlet c = !1;\nconst I = (e) => {\n const t = document.querySelectorAll(\"script\");\n let i = !1;\n return t.forEach((s) => {\n s.src.includes(e) && (i = !0);\n }), i;\n}, k = (e) => {\n d.push(e);\n}, r = () => {\n if (c) {\n let e;\n for (; e = d.shift(); )\n e();\n }\n}, D = (e, t = S) => {\n if (k(e), I(t))\n r();\n else {\n const i = document.createElement(\"script\");\n i.setAttribute(\"src\", t), i.onload = () => {\n c = !0, r();\n }, document.head.appendChild(i);\n }\n};\nlet $ = 0;\nconst H = l({\n name: \"EmailEditor\",\n props: {\n editorId: String,\n minHeight: {\n type: String,\n default: \"500px\"\n },\n options: {\n type: Object,\n default: () => ({})\n },\n scriptUrl: String,\n /**\n * @Deprecated Props: Use `options.appearance` instead\n */\n appearance: Object,\n /**\n * @Deprecated Props: Use `options.locale` instead\n */\n locale: String,\n /**\n * @Deprecated Props: Use `options.projectId` instead\n */\n projectId: Number,\n /**\n * @Deprecated Props: Use `options.tools` instead\n */\n tools: Object\n },\n computed: {\n id() {\n return this.editorId || `editor-${++$}`;\n }\n },\n setup() {\n return {\n editor: a(null)\n // Makes editor available to the template\n };\n },\n mounted() {\n D(this.loadEditor.bind(this), this.scriptUrl);\n },\n methods: {\n loadEditor() {\n const e = p(this.options) || {};\n this.appearance && (e.appearance = this.appearance), this.locale && (e.locale = this.locale), this.projectId && (e.projectId = this.projectId), this.tools && (e.tools = this.tools), this.editor = unlayer.createEditor({\n ...e,\n id: this.id,\n source: {\n name: n.name,\n version: n.version\n }\n }), this.$emit(\"load\"), this.editor.addEventListener(\"editor:ready\", () => {\n this.$emit(\"ready\");\n });\n },\n /**\n * @deprecated This method will be removed in the next major release. Use `editor.exportHtml` instead.\n */\n exportHtml(e) {\n var t;\n (t = this.editor) == null || t.exportHtml(e);\n },\n /**\n * @deprecated This method will be removed in the next major release. Use `editor.loadDesign` instead.\n */\n loadDesign(e) {\n var t;\n (t = this.editor) == null || t.loadDesign(e);\n },\n /**\n * @deprecated This method will be removed in the next major release. Use `editor.saveDesign` instead.\n */\n saveDesign(e) {\n var t;\n (t = this.editor) == null || t.saveDesign(e);\n }\n }\n}), O = (e, t) => {\n const i = e.__vccOpts || e;\n for (const [s, o] of t)\n i[s] = o;\n return i;\n}, x = [\"id\"];\nfunction C(e, t, i, s, o, w) {\n return u(), m(\"div\", {\n id: e.id,\n class: \"unlayer-editor\",\n style: v({ minHeight: e.minHeight })\n }, null, 12, x);\n}\nconst B = /* @__PURE__ */ O(H, [[\"render\", C], [\"__scopeId\", \"data-v-b6b7a6a4\"]]);\nexport {\n B as EmailEditor\n};\n","/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Quill\"] = factory();\n\telse\n\t\troot[\"Quill\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 109);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar format_1 = __webpack_require__(18);\nvar leaf_1 = __webpack_require__(19);\nvar scroll_1 = __webpack_require__(45);\nvar inline_1 = __webpack_require__(46);\nvar block_1 = __webpack_require__(47);\nvar embed_1 = __webpack_require__(48);\nvar text_1 = __webpack_require__(49);\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar store_1 = __webpack_require__(31);\nvar Registry = __webpack_require__(1);\nvar Parchment = {\n Scope: Registry.Scope,\n create: Registry.create,\n find: Registry.find,\n query: Registry.query,\n register: Registry.register,\n Container: container_1.default,\n Format: format_1.default,\n Leaf: leaf_1.default,\n Embed: embed_1.default,\n Scroll: scroll_1.default,\n Block: block_1.default,\n Inline: inline_1.default,\n Text: text_1.default,\n Attributor: {\n Attribute: attributor_1.default,\n Class: class_1.default,\n Style: style_1.default,\n Store: store_1.default,\n },\n};\nexports.default = Parchment;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ParchmentError = /** @class */ (function (_super) {\n __extends(ParchmentError, _super);\n function ParchmentError(message) {\n var _this = this;\n message = '[Parchment] ' + message;\n _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _this.constructor.name;\n return _this;\n }\n return ParchmentError;\n}(Error));\nexports.ParchmentError = ParchmentError;\nvar attributes = {};\nvar classes = {};\nvar tags = {};\nvar types = {};\nexports.DATA_KEY = '__blot';\nvar Scope;\n(function (Scope) {\n Scope[Scope[\"TYPE\"] = 3] = \"TYPE\";\n Scope[Scope[\"LEVEL\"] = 12] = \"LEVEL\";\n Scope[Scope[\"ATTRIBUTE\"] = 13] = \"ATTRIBUTE\";\n Scope[Scope[\"BLOT\"] = 14] = \"BLOT\";\n Scope[Scope[\"INLINE\"] = 7] = \"INLINE\";\n Scope[Scope[\"BLOCK\"] = 11] = \"BLOCK\";\n Scope[Scope[\"BLOCK_BLOT\"] = 10] = \"BLOCK_BLOT\";\n Scope[Scope[\"INLINE_BLOT\"] = 6] = \"INLINE_BLOT\";\n Scope[Scope[\"BLOCK_ATTRIBUTE\"] = 9] = \"BLOCK_ATTRIBUTE\";\n Scope[Scope[\"INLINE_ATTRIBUTE\"] = 5] = \"INLINE_ATTRIBUTE\";\n Scope[Scope[\"ANY\"] = 15] = \"ANY\";\n})(Scope = exports.Scope || (exports.Scope = {}));\nfunction create(input, value) {\n var match = query(input);\n if (match == null) {\n throw new ParchmentError(\"Unable to create \" + input + \" blot\");\n }\n var BlotClass = match;\n var node = \n // @ts-ignore\n input instanceof Node || input['nodeType'] === Node.TEXT_NODE ? input : BlotClass.create(value);\n return new BlotClass(node, value);\n}\nexports.create = create;\nfunction find(node, bubble) {\n if (bubble === void 0) { bubble = false; }\n if (node == null)\n return null;\n // @ts-ignore\n if (node[exports.DATA_KEY] != null)\n return node[exports.DATA_KEY].blot;\n if (bubble)\n return find(node.parentNode, bubble);\n return null;\n}\nexports.find = find;\nfunction query(query, scope) {\n if (scope === void 0) { scope = Scope.ANY; }\n var match;\n if (typeof query === 'string') {\n match = types[query] || attributes[query];\n // @ts-ignore\n }\n else if (query instanceof Text || query['nodeType'] === Node.TEXT_NODE) {\n match = types['text'];\n }\n else if (typeof query === 'number') {\n if (query & Scope.LEVEL & Scope.BLOCK) {\n match = types['block'];\n }\n else if (query & Scope.LEVEL & Scope.INLINE) {\n match = types['inline'];\n }\n }\n else if (query instanceof HTMLElement) {\n var names = (query.getAttribute('class') || '').split(/\\s+/);\n for (var i in names) {\n match = classes[names[i]];\n if (match)\n break;\n }\n match = match || tags[query.tagName];\n }\n if (match == null)\n return null;\n // @ts-ignore\n if (scope & Scope.LEVEL & match.scope && scope & Scope.TYPE & match.scope)\n return match;\n return null;\n}\nexports.query = query;\nfunction register() {\n var Definitions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Definitions[_i] = arguments[_i];\n }\n if (Definitions.length > 1) {\n return Definitions.map(function (d) {\n return register(d);\n });\n }\n var Definition = Definitions[0];\n if (typeof Definition.blotName !== 'string' && typeof Definition.attrName !== 'string') {\n throw new ParchmentError('Invalid definition');\n }\n else if (Definition.blotName === 'abstract') {\n throw new ParchmentError('Cannot register abstract class');\n }\n types[Definition.blotName || Definition.attrName] = Definition;\n if (typeof Definition.keyName === 'string') {\n attributes[Definition.keyName] = Definition;\n }\n else {\n if (Definition.className != null) {\n classes[Definition.className] = Definition;\n }\n if (Definition.tagName != null) {\n if (Array.isArray(Definition.tagName)) {\n Definition.tagName = Definition.tagName.map(function (tagName) {\n return tagName.toUpperCase();\n });\n }\n else {\n Definition.tagName = Definition.tagName.toUpperCase();\n }\n var tagNames = Array.isArray(Definition.tagName) ? Definition.tagName : [Definition.tagName];\n tagNames.forEach(function (tag) {\n if (tags[tag] == null || Definition.className == null) {\n tags[tag] = Definition;\n }\n });\n }\n }\n return Definition;\n}\nexports.register = register;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar diff = __webpack_require__(51);\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\nvar op = __webpack_require__(20);\n\n\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\n\n\nvar Delta = function (ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n } else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n } else {\n this.ops = [];\n }\n};\n\n\nDelta.prototype.insert = function (text, attributes) {\n var newOp = {};\n if (text.length === 0) return this;\n newOp.insert = text;\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype['delete'] = function (length) {\n if (length <= 0) return this;\n return this.push({ 'delete': length });\n};\n\nDelta.prototype.retain = function (length, attributes) {\n if (length <= 0) return this;\n var newOp = { retain: length };\n if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n};\n\nDelta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = extend(true, {}, newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp['delete'] === 'number' && typeof lastOp['delete'] === 'number') {\n this.ops[index - 1] = { 'delete': lastOp['delete'] + newOp['delete'] };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp['delete'] === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (equal(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') this.ops[index - 1].attributes = newOp.attributes\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n } else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n};\n\nDelta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n};\n\nDelta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n};\n\nDelta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n};\n\nDelta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n};\n\nDelta.prototype.partition = function (predicate) {\n var passed = [], failed = [];\n this.forEach(function(op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n};\n\nDelta.prototype.reduce = function (predicate, initial) {\n return this.ops.reduce(predicate, initial);\n};\n\nDelta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + op.length(elem);\n } else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n};\n\nDelta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + op.length(elem);\n }, 0);\n};\n\nDelta.prototype.slice = function (start, end) {\n start = start || 0;\n if (typeof end !== 'number') end = Infinity;\n var ops = [];\n var iter = op.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp;\n if (index < start) {\n nextOp = iter.next(start - index);\n } else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += op.length(nextOp);\n }\n return new Delta(ops);\n};\n\n\nDelta.prototype.compose = function (other) {\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length;\n } else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = op.attributes.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) newOp.attributes = attributes;\n delta.push(newOp);\n\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() && equal(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n } else if (typeof otherOp['delete'] === 'number' && typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n};\n\nDelta.prototype.diff = function (other, index) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta.map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = (delta === other) ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n }).join('');\n });\n var delta = new Delta();\n var diffResult = diff(strings[0], strings[1], index);\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case diff.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n delta.push(otherIter.next(opLength));\n break;\n case diff.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n delta['delete'](opLength);\n break;\n case diff.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (equal(thisOp.insert, otherOp.insert)) {\n delta.retain(opLength, op.attributes.diff(thisOp.attributes, otherOp.attributes));\n } else {\n delta.push(otherOp)['delete'](opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return delta.chop();\n};\n\nDelta.prototype.eachLine = function (predicate, newline) {\n newline = newline || '\\n';\n var iter = op.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') return;\n var thisOp = iter.peek();\n var start = op.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string' ?\n thisOp.insert.indexOf(newline, start) - start : -1;\n if (index < 0) {\n line.push(iter.next());\n } else if (index > 0) {\n line.push(iter.next(index));\n } else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n};\n\nDelta.prototype.transform = function (other, priority) {\n priority = !!priority;\n if (typeof other === 'number') {\n return this.transformPosition(other, priority);\n }\n var thisIter = op.iterator(this.ops);\n var otherIter = op.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(op.length(thisIter.next()));\n } else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n } else {\n var length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length);\n var otherOp = otherIter.next(length);\n if (thisOp['delete']) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n } else if (otherOp['delete']) {\n delta.push(otherOp);\n } else {\n // We retain either their retain or insert\n delta.retain(length, op.attributes.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n};\n\nDelta.prototype.transformPosition = function (index, priority) {\n priority = !!priority;\n var thisIter = op.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length, index - offset);\n continue;\n } else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length;\n }\n offset += length;\n }\n return index;\n};\n\n\nmodule.exports = Delta;\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BlockEmbed = exports.bubbleFormats = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar NEWLINE_LENGTH = 1;\n\nvar BlockEmbed = function (_Parchment$Embed) {\n _inherits(BlockEmbed, _Parchment$Embed);\n\n function BlockEmbed() {\n _classCallCheck(this, BlockEmbed);\n\n return _possibleConstructorReturn(this, (BlockEmbed.__proto__ || Object.getPrototypeOf(BlockEmbed)).apply(this, arguments));\n }\n\n _createClass(BlockEmbed, [{\n key: 'attach',\n value: function attach() {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'attach', this).call(this);\n this.attributes = new _parchment2.default.Attributor.Store(this.domNode);\n }\n }, {\n key: 'delta',\n value: function delta() {\n return new _quillDelta2.default().insert(this.value(), (0, _extend2.default)(this.formats(), this.attributes.values()));\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var attribute = _parchment2.default.query(name, _parchment2.default.Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n this.attributes.attribute(attribute, value);\n }\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n this.format(name, value);\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (typeof value === 'string' && value.endsWith('\\n')) {\n var block = _parchment2.default.create(Block.blotName);\n this.parent.insertBefore(block, index === 0 ? this : this.next);\n block.insertAt(0, value.slice(0, -1));\n } else {\n _get(BlockEmbed.prototype.__proto__ || Object.getPrototypeOf(BlockEmbed.prototype), 'insertAt', this).call(this, index, value, def);\n }\n }\n }]);\n\n return BlockEmbed;\n}(_parchment2.default.Embed);\n\nBlockEmbed.scope = _parchment2.default.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\n\nvar Block = function (_Parchment$Block) {\n _inherits(Block, _Parchment$Block);\n\n function Block(domNode) {\n _classCallCheck(this, Block);\n\n var _this2 = _possibleConstructorReturn(this, (Block.__proto__ || Object.getPrototypeOf(Block)).call(this, domNode));\n\n _this2.cache = {};\n return _this2;\n }\n\n _createClass(Block, [{\n key: 'delta',\n value: function delta() {\n if (this.cache.delta == null) {\n this.cache.delta = this.descendants(_parchment2.default.Leaf).reduce(function (delta, leaf) {\n if (leaf.length() === 0) {\n return delta;\n } else {\n return delta.insert(leaf.value(), bubbleFormats(leaf));\n }\n }, new _quillDelta2.default()).insert('\\n', bubbleFormats(this));\n }\n return this.cache.delta;\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'deleteAt', this).call(this, index, length);\n this.cache = {};\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'formatAt', this).call(this, index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, index, value, def);\n if (value.length === 0) return;\n var lines = value.split('\\n');\n var text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertAt', this).call(this, Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n var block = this;\n lines.reduce(function (index, line) {\n block = block.split(index, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n var head = this.children.head;\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'insertBefore', this).call(this, blot, ref);\n if (head instanceof _break2.default) {\n head.remove();\n }\n this.cache = {};\n }\n }, {\n key: 'length',\n value: function length() {\n if (this.cache.length == null) {\n this.cache.length = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'length', this).call(this) + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n }, {\n key: 'moveChildren',\n value: function moveChildren(target, ref) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'moveChildren', this).call(this, target, ref);\n this.cache = {};\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'optimize', this).call(this, context);\n this.cache = {};\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'path', this).call(this, index, true);\n }\n }, {\n key: 'removeChild',\n value: function removeChild(child) {\n _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'removeChild', this).call(this, child);\n this.cache = {};\n }\n }, {\n key: 'split',\n value: function split(index) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n var clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n } else {\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n } else {\n var next = _get(Block.prototype.__proto__ || Object.getPrototypeOf(Block.prototype), 'split', this).call(this, index, force);\n this.cache = {};\n return next;\n }\n }\n }]);\n\n return Block;\n}(_parchment2.default.Block);\n\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = 'break';\nBlock.allowedChildren = [_inline2.default, _parchment2.default.Embed, _text2.default];\n\nfunction bubbleFormats(blot) {\n var formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (blot == null) return formats;\n if (typeof blot.formats === 'function') {\n formats = (0, _extend2.default)(formats, blot.formats());\n }\n if (blot.parent == null || blot.parent.blotName == 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats);\n}\n\nexports.bubbleFormats = bubbleFormats;\nexports.BlockEmbed = BlockEmbed;\nexports.default = Block;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.overload = exports.expandConfig = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n__webpack_require__(50);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _editor = __webpack_require__(14);\n\nvar _editor2 = _interopRequireDefault(_editor);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _selection = __webpack_require__(15);\n\nvar _selection2 = _interopRequireDefault(_selection);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill');\n\nvar Quill = function () {\n _createClass(Quill, null, [{\n key: 'debug',\n value: function debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n _logger2.default.level(limit);\n }\n }, {\n key: 'find',\n value: function find(node) {\n return node.__quill || _parchment2.default.find(node);\n }\n }, {\n key: 'import',\n value: function _import(name) {\n if (this.imports[name] == null) {\n debug.error('Cannot import ' + name + '. Are you sure it was registered?');\n }\n return this.imports[name];\n }\n }, {\n key: 'register',\n value: function register(path, target) {\n var _this = this;\n\n var overwrite = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (typeof path !== 'string') {\n var name = path.attrName || path.blotName;\n if (typeof name === 'string') {\n // register(Blot | Attributor, overwrite)\n this.register('formats/' + name, path, target);\n } else {\n Object.keys(path).forEach(function (key) {\n _this.register(key, path[key], target);\n });\n }\n } else {\n if (this.imports[path] != null && !overwrite) {\n debug.warn('Overwriting ' + path + ' with', target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target.blotName !== 'abstract') {\n _parchment2.default.register(target);\n } else if (path.startsWith('modules') && typeof target.register === 'function') {\n target.register();\n }\n }\n }\n }]);\n\n function Quill(container) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Quill);\n\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n return debug.error('Invalid Quill container', container);\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n var html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n this.container.__quill = this;\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.root.setAttribute('data-gramm', false);\n this.scrollingContainer = this.options.scrollingContainer || this.root;\n this.emitter = new _emitter4.default();\n this.scroll = _parchment2.default.create(this.root, {\n emitter: this.emitter,\n whitelist: this.options.formats\n });\n this.editor = new _editor2.default(this.scroll);\n this.selection = new _selection2.default(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options);\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.theme.init();\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type) {\n if (type === _emitter4.default.events.TEXT_CHANGE) {\n _this2.root.classList.toggle('ql-blank', _this2.editor.isBlank());\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_UPDATE, function (source, mutations) {\n var range = _this2.selection.lastRange;\n var index = range && range.length === 0 ? range.index : undefined;\n modify.call(_this2, function () {\n return _this2.editor.update(null, mutations, index);\n }, source);\n });\n var contents = this.clipboard.convert('<div class=\\'ql-editor\\' style=\"white-space: normal;\">' + html + '<p><br></p></div>');\n this.setContents(contents);\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n }\n\n _createClass(Quill, [{\n key: 'addContainer',\n value: function addContainer(container) {\n var refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n if (typeof container === 'string') {\n var className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n }, {\n key: 'blur',\n value: function blur() {\n this.selection.setRange(null);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length, source) {\n var _this3 = this;\n\n var _overload = overload(index, length, source);\n\n var _overload2 = _slicedToArray(_overload, 4);\n\n index = _overload2[0];\n length = _overload2[1];\n source = _overload2[3];\n\n return modify.call(this, function () {\n return _this3.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n }, {\n key: 'disable',\n value: function disable() {\n this.enable(false);\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n }, {\n key: 'focus',\n value: function focus() {\n var scrollTop = this.scrollingContainer.scrollTop;\n this.selection.focus();\n this.scrollingContainer.scrollTop = scrollTop;\n this.scrollIntoView();\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n var _this4 = this;\n\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n var range = _this4.getSelection(true);\n var change = new _quillDelta2.default();\n if (range == null) {\n return change;\n } else if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK)) {\n change = _this4.editor.formatLine(range.index, range.length, _defineProperty({}, name, value));\n } else if (range.length === 0) {\n _this4.selection.format(name, value);\n return change;\n } else {\n change = _this4.editor.formatText(range.index, range.length, _defineProperty({}, name, value));\n }\n _this4.setSelection(range, _emitter4.default.sources.SILENT);\n return change;\n }, source);\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length, name, value, source) {\n var _this5 = this;\n\n var formats = void 0;\n\n var _overload3 = overload(index, length, name, value, source);\n\n var _overload4 = _slicedToArray(_overload3, 4);\n\n index = _overload4[0];\n length = _overload4[1];\n formats = _overload4[2];\n source = _overload4[3];\n\n return modify.call(this, function () {\n return _this5.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length, name, value, source) {\n var _this6 = this;\n\n var formats = void 0;\n\n var _overload5 = overload(index, length, name, value, source);\n\n var _overload6 = _slicedToArray(_overload5, 4);\n\n index = _overload6[0];\n length = _overload6[1];\n formats = _overload6[2];\n source = _overload6[3];\n\n return modify.call(this, function () {\n return _this6.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var bounds = void 0;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n var containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n }, {\n key: 'getContents',\n value: function getContents() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload7 = overload(index, length);\n\n var _overload8 = _slicedToArray(_overload7, 2);\n\n index = _overload8[0];\n length = _overload8[1];\n\n return this.editor.getContents(index, length);\n }\n }, {\n key: 'getFormat',\n value: function getFormat() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n } else {\n return this.editor.getFormat(index.index, index.length);\n }\n }\n }, {\n key: 'getIndex',\n value: function getIndex(blot) {\n return blot.offset(this.scroll);\n }\n }, {\n key: 'getLength',\n value: function getLength() {\n return this.scroll.length();\n }\n }, {\n key: 'getLeaf',\n value: function getLeaf(index) {\n return this.scroll.leaf(index);\n }\n }, {\n key: 'getLine',\n value: function getLine(index) {\n return this.scroll.line(index);\n }\n }, {\n key: 'getLines',\n value: function getLines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n } else {\n return this.scroll.lines(index, length);\n }\n }\n }, {\n key: 'getModule',\n value: function getModule(name) {\n return this.theme.modules[name];\n }\n }, {\n key: 'getSelection',\n value: function getSelection() {\n var focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n }, {\n key: 'getText',\n value: function getText() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n\n var _overload9 = overload(index, length);\n\n var _overload10 = _slicedToArray(_overload9, 2);\n\n index = _overload10[0];\n length = _overload10[1];\n\n return this.editor.getText(index, length);\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return this.selection.hasFocus();\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n var _this7 = this;\n\n var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n\n return modify.call(this, function () {\n return _this7.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text, name, value, source) {\n var _this8 = this;\n\n var formats = void 0;\n\n var _overload11 = overload(index, 0, name, value, source);\n\n var _overload12 = _slicedToArray(_overload11, 4);\n\n index = _overload12[0];\n formats = _overload12[2];\n source = _overload12[3];\n\n return modify.call(this, function () {\n return _this8.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n }, {\n key: 'isEnabled',\n value: function isEnabled() {\n return !this.container.classList.contains('ql-disabled');\n }\n }, {\n key: 'off',\n value: function off() {\n return this.emitter.off.apply(this.emitter, arguments);\n }\n }, {\n key: 'on',\n value: function on() {\n return this.emitter.on.apply(this.emitter, arguments);\n }\n }, {\n key: 'once',\n value: function once() {\n return this.emitter.once.apply(this.emitter, arguments);\n }\n }, {\n key: 'pasteHTML',\n value: function pasteHTML(index, html, source) {\n this.clipboard.dangerouslyPasteHTML(index, html, source);\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length, source) {\n var _this9 = this;\n\n var _overload13 = overload(index, length, source);\n\n var _overload14 = _slicedToArray(_overload13, 4);\n\n index = _overload14[0];\n length = _overload14[1];\n source = _overload14[3];\n\n return modify.call(this, function () {\n return _this9.editor.removeFormat(index, length);\n }, source, index);\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView() {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }, {\n key: 'setContents',\n value: function setContents(delta) {\n var _this10 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n var length = _this10.getLength();\n var deleted = _this10.editor.deleteText(0, length);\n var applied = _this10.editor.applyDelta(delta);\n var lastOp = applied.ops[applied.ops.length - 1];\n if (lastOp != null && typeof lastOp.insert === 'string' && lastOp.insert[lastOp.insert.length - 1] === '\\n') {\n _this10.editor.deleteText(_this10.getLength() - 1, 1);\n applied.delete(1);\n }\n var ret = deleted.compose(applied);\n return ret;\n }, source);\n }\n }, {\n key: 'setSelection',\n value: function setSelection(index, length, source) {\n if (index == null) {\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n var _overload15 = overload(index, length, source);\n\n var _overload16 = _slicedToArray(_overload15, 4);\n\n index = _overload16[0];\n length = _overload16[1];\n source = _overload16[3];\n\n this.selection.setRange(new _selection.Range(index, length), source);\n if (source !== _emitter4.default.sources.SILENT) {\n this.selection.scrollIntoView(this.scrollingContainer);\n }\n }\n }\n }, {\n key: 'setText',\n value: function setText(text) {\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n var delta = new _quillDelta2.default().insert(text);\n return this.setContents(delta, source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n return change;\n }\n }, {\n key: 'updateContents',\n value: function updateContents(delta) {\n var _this11 = this;\n\n var source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter4.default.sources.API;\n\n return modify.call(this, function () {\n delta = new _quillDelta2.default(delta);\n return _this11.editor.applyDelta(delta, source);\n }, source, true);\n }\n }]);\n\n return Quill;\n}();\n\nQuill.DEFAULTS = {\n bounds: null,\n formats: null,\n modules: {},\n placeholder: '',\n readOnly: false,\n scrollingContainer: null,\n strict: true,\n theme: 'default'\n};\nQuill.events = _emitter4.default.events;\nQuill.sources = _emitter4.default.sources;\n// eslint-disable-next-line no-undef\nQuill.version = false ? 'dev' : \"1.3.7\";\n\nQuill.imports = {\n 'delta': _quillDelta2.default,\n 'parchment': _parchment2.default,\n 'core/module': _module2.default,\n 'core/theme': _theme2.default\n};\n\nfunction expandConfig(container, userConfig) {\n userConfig = (0, _extend2.default)(true, {\n container: container,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true\n }\n }, userConfig);\n if (!userConfig.theme || userConfig.theme === Quill.DEFAULTS.theme) {\n userConfig.theme = _theme2.default;\n } else {\n userConfig.theme = Quill.import('themes/' + userConfig.theme);\n if (userConfig.theme == null) {\n throw new Error('Invalid theme ' + userConfig.theme + '. Did you register it?');\n }\n }\n var themeConfig = (0, _extend2.default)(true, {}, userConfig.theme.DEFAULTS);\n [themeConfig, userConfig].forEach(function (config) {\n config.modules = config.modules || {};\n Object.keys(config.modules).forEach(function (module) {\n if (config.modules[module] === true) {\n config.modules[module] = {};\n }\n });\n });\n var moduleNames = Object.keys(themeConfig.modules).concat(Object.keys(userConfig.modules));\n var moduleConfig = moduleNames.reduce(function (config, name) {\n var moduleClass = Quill.import('modules/' + name);\n if (moduleClass == null) {\n debug.error('Cannot load ' + name + ' module. Are you sure you registered it?');\n } else {\n config[name] = moduleClass.DEFAULTS || {};\n }\n return config;\n }, {});\n // Special case toolbar shorthand\n if (userConfig.modules != null && userConfig.modules.toolbar && userConfig.modules.toolbar.constructor !== Object) {\n userConfig.modules.toolbar = {\n container: userConfig.modules.toolbar\n };\n }\n userConfig = (0, _extend2.default)(true, {}, Quill.DEFAULTS, { modules: moduleConfig }, themeConfig, userConfig);\n ['bounds', 'container', 'scrollingContainer'].forEach(function (key) {\n if (typeof userConfig[key] === 'string') {\n userConfig[key] = document.querySelector(userConfig[key]);\n }\n });\n userConfig.modules = Object.keys(userConfig.modules).reduce(function (config, name) {\n if (userConfig.modules[name]) {\n config[name] = userConfig.modules[name];\n }\n return config;\n }, {});\n return userConfig;\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (this.options.strict && !this.isEnabled() && source === _emitter4.default.sources.USER) {\n return new _quillDelta2.default();\n }\n var range = index == null ? null : this.getSelection();\n var oldDelta = this.editor.delta;\n var change = modifier();\n if (range != null) {\n if (index === true) index = range.index;\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, _emitter4.default.sources.SILENT);\n }\n if (change.length() > 0) {\n var _emitter;\n\n var args = [_emitter4.default.events.TEXT_CHANGE, change, oldDelta, source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n return change;\n}\n\nfunction overload(index, length, name, value, source) {\n var formats = {};\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n source = value, value = name, name = length, length = index.length, index = index.index;\n } else {\n length = index.length, index = index.index;\n }\n } else if (typeof length !== 'number') {\n source = value, value = name, name = length, length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {\n formats = name;\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n source = name;\n }\n }\n // Handle optional source\n source = source || _emitter4.default.sources.API;\n return [index, length, formats, source];\n}\n\nfunction shiftRange(range, index, length, source) {\n if (range == null) return null;\n var start = void 0,\n end = void 0;\n if (index instanceof _quillDelta2.default) {\n var _map = [range.index, range.index + range.length].map(function (pos) {\n return index.transformPosition(pos, source !== _emitter4.default.sources.USER);\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n } else {\n var _map3 = [range.index, range.index + range.length].map(function (pos) {\n if (pos < index || pos === index && source === _emitter4.default.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n } else {\n return Math.max(index, pos + length);\n }\n });\n\n var _map4 = _slicedToArray(_map3, 2);\n\n start = _map4[0];\n end = _map4[1];\n }\n return new _selection.Range(start, end - start);\n}\n\nexports.expandConfig = expandConfig;\nexports.overload = overload;\nexports.default = Quill;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Inline = function (_Parchment$Inline) {\n _inherits(Inline, _Parchment$Inline);\n\n function Inline() {\n _classCallCheck(this, Inline);\n\n return _possibleConstructorReturn(this, (Inline.__proto__ || Object.getPrototypeOf(Inline)).apply(this, arguments));\n }\n\n _createClass(Inline, [{\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && _parchment2.default.query(name, _parchment2.default.Scope.BLOT)) {\n var blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'formatAt', this).call(this, index, length, name, value);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(Inline.prototype.__proto__ || Object.getPrototypeOf(Inline.prototype), 'optimize', this).call(this, context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n var parent = this.parent.isolate(this.offset(), this.length());\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n }], [{\n key: 'compare',\n value: function compare(self, other) {\n var selfIndex = Inline.order.indexOf(self);\n var otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n } else if (self === other) {\n return 0;\n } else if (self < other) {\n return -1;\n } else {\n return 1;\n }\n }\n }]);\n\n return Inline;\n}(_parchment2.default.Inline);\n\nInline.allowedChildren = [Inline, _parchment2.default.Embed, _text2.default];\n// Lower index means deeper in the DOM tree, since not found (-1) is for embeds\nInline.order = ['cursor', 'inline', // Must be lower\n'underline', 'strike', 'italic', 'bold', 'script', 'link', 'code' // Must be higher\n];\n\nexports.default = Inline;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TextBlot = function (_Parchment$Text) {\n _inherits(TextBlot, _Parchment$Text);\n\n function TextBlot() {\n _classCallCheck(this, TextBlot);\n\n return _possibleConstructorReturn(this, (TextBlot.__proto__ || Object.getPrototypeOf(TextBlot)).apply(this, arguments));\n }\n\n return TextBlot;\n}(_parchment2.default.Text);\n\nexports.default = TextBlot;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _eventemitter = __webpack_require__(54);\n\nvar _eventemitter2 = _interopRequireDefault(_eventemitter);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:events');\n\nvar EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\n\nEVENTS.forEach(function (eventName) {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n [].slice.call(document.querySelectorAll('.ql-container')).forEach(function (node) {\n // TODO use WeakMap\n if (node.__quill && node.__quill.emitter) {\n var _node$__quill$emitter;\n\n (_node$__quill$emitter = node.__quill.emitter).handleDOM.apply(_node$__quill$emitter, args);\n }\n });\n });\n});\n\nvar Emitter = function (_EventEmitter) {\n _inherits(Emitter, _EventEmitter);\n\n function Emitter() {\n _classCallCheck(this, Emitter);\n\n var _this = _possibleConstructorReturn(this, (Emitter.__proto__ || Object.getPrototypeOf(Emitter)).call(this));\n\n _this.listeners = {};\n _this.on('error', debug.error);\n return _this;\n }\n\n _createClass(Emitter, [{\n key: 'emit',\n value: function emit() {\n debug.log.apply(debug, arguments);\n _get(Emitter.prototype.__proto__ || Object.getPrototypeOf(Emitter.prototype), 'emit', this).apply(this, arguments);\n }\n }, {\n key: 'handleDOM',\n value: function handleDOM(event) {\n for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n (this.listeners[event.type] || []).forEach(function (_ref) {\n var node = _ref.node,\n handler = _ref.handler;\n\n if (event.target === node || node.contains(event.target)) {\n handler.apply(undefined, [event].concat(args));\n }\n });\n }\n }, {\n key: 'listenDOM',\n value: function listenDOM(eventName, node, handler) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push({ node: node, handler: handler });\n }\n }]);\n\n return Emitter;\n}(_eventemitter2.default);\n\nEmitter.events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change'\n};\nEmitter.sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n};\n\nexports.default = Emitter;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Module = function Module(quill) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Module);\n\n this.quill = quill;\n this.options = options;\n};\n\nModule.DEFAULTS = {};\n\nexports.default = Module;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar levels = ['error', 'warn', 'log', 'info'];\nvar level = 'warn';\n\nfunction debug(method) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n var _console;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_console = console)[method].apply(_console, args); // eslint-disable-line no-console\n }\n}\n\nfunction namespace(ns) {\n return levels.reduce(function (logger, method) {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\n\ndebug.level = namespace.level = function (newLevel) {\n level = newLevel;\n};\n\nexports.default = namespace;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar pSlice = Array.prototype.slice;\nvar objectKeys = __webpack_require__(52);\nvar isArguments = __webpack_require__(53);\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar Attributor = /** @class */ (function () {\n function Attributor(attrName, keyName, options) {\n if (options === void 0) { options = {}; }\n this.attrName = attrName;\n this.keyName = keyName;\n var attributeBit = Registry.Scope.TYPE & Registry.Scope.ATTRIBUTE;\n if (options.scope != null) {\n // Ignore type bits, force attribute bit\n this.scope = (options.scope & Registry.Scope.LEVEL) | attributeBit;\n }\n else {\n this.scope = Registry.Scope.ATTRIBUTE;\n }\n if (options.whitelist != null)\n this.whitelist = options.whitelist;\n }\n Attributor.keys = function (node) {\n return [].map.call(node.attributes, function (item) {\n return item.name;\n });\n };\n Attributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n node.setAttribute(this.keyName, value);\n return true;\n };\n Attributor.prototype.canAdd = function (node, value) {\n var match = Registry.query(node, Registry.Scope.BLOT & (this.scope | Registry.Scope.TYPE));\n if (match == null)\n return false;\n if (this.whitelist == null)\n return true;\n if (typeof value === 'string') {\n return this.whitelist.indexOf(value.replace(/[\"']/g, '')) > -1;\n }\n else {\n return this.whitelist.indexOf(value) > -1;\n }\n };\n Attributor.prototype.remove = function (node) {\n node.removeAttribute(this.keyName);\n };\n Attributor.prototype.value = function (node) {\n var value = node.getAttribute(this.keyName);\n if (this.canAdd(node, value) && value) {\n return value;\n }\n return '';\n };\n return Attributor;\n}());\nexports.default = Attributor;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Code = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Code = function (_Inline) {\n _inherits(Code, _Inline);\n\n function Code() {\n _classCallCheck(this, Code);\n\n return _possibleConstructorReturn(this, (Code.__proto__ || Object.getPrototypeOf(Code)).apply(this, arguments));\n }\n\n return Code;\n}(_inline2.default);\n\nCode.blotName = 'code';\nCode.tagName = 'CODE';\n\nvar CodeBlock = function (_Block) {\n _inherits(CodeBlock, _Block);\n\n function CodeBlock() {\n _classCallCheck(this, CodeBlock);\n\n return _possibleConstructorReturn(this, (CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock)).apply(this, arguments));\n }\n\n _createClass(CodeBlock, [{\n key: 'delta',\n value: function delta() {\n var _this3 = this;\n\n var text = this.domNode.textContent;\n if (text.endsWith('\\n')) {\n // Should always be true\n text = text.slice(0, -1);\n }\n return text.split('\\n').reduce(function (delta, frag) {\n return delta.insert(frag).insert('\\n', _this3.formats());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (name === this.statics.blotName && value) return;\n\n var _descendant = this.descendant(_text2.default, this.length() - 1),\n _descendant2 = _slicedToArray(_descendant, 1),\n text = _descendant2[0];\n\n if (text != null) {\n text.deleteAt(text.length() - 1, 1);\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'format', this).call(this, name, value);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, name, value) {\n if (length === 0) return;\n if (_parchment2.default.query(name, _parchment2.default.Scope.BLOCK) == null || name === this.statics.blotName && value === this.statics.formats(this.domNode)) {\n return;\n }\n var nextNewline = this.newlineIndex(index);\n if (nextNewline < 0 || nextNewline >= index + length) return;\n var prevNewline = this.newlineIndex(index, true) + 1;\n var isolateLength = nextNewline - prevNewline + 1;\n var blot = this.isolate(prevNewline, isolateLength);\n var next = blot.next;\n blot.format(name, value);\n if (next instanceof CodeBlock) {\n next.formatAt(0, index - prevNewline + length - isolateLength, name, value);\n }\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null) return;\n\n var _descendant3 = this.descendant(_text2.default, index),\n _descendant4 = _slicedToArray(_descendant3, 2),\n text = _descendant4[0],\n offset = _descendant4[1];\n\n text.insertAt(offset, value);\n }\n }, {\n key: 'length',\n value: function length() {\n var length = this.domNode.textContent.length;\n if (!this.domNode.textContent.endsWith('\\n')) {\n return length + 1;\n }\n return length;\n }\n }, {\n key: 'newlineIndex',\n value: function newlineIndex(searchIndex) {\n var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!reverse) {\n var offset = this.domNode.textContent.slice(searchIndex).indexOf('\\n');\n return offset > -1 ? searchIndex + offset : -1;\n } else {\n return this.domNode.textContent.slice(0, searchIndex).lastIndexOf('\\n');\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n if (!this.domNode.textContent.endsWith('\\n')) {\n this.appendChild(_parchment2.default.create('text', '\\n'));\n }\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && this.statics.formats(this.domNode) === next.statics.formats(next.domNode)) {\n next.optimize(context);\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n _get(CodeBlock.prototype.__proto__ || Object.getPrototypeOf(CodeBlock.prototype), 'replace', this).call(this, target);\n [].slice.call(this.domNode.querySelectorAll('*')).forEach(function (node) {\n var blot = _parchment2.default.find(node);\n if (blot == null) {\n node.parentNode.removeChild(node);\n } else if (blot instanceof _parchment2.default.Embed) {\n blot.remove();\n } else {\n blot.unwrap();\n }\n });\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var domNode = _get(CodeBlock.__proto__ || Object.getPrototypeOf(CodeBlock), 'create', this).call(this, value);\n domNode.setAttribute('spellcheck', false);\n return domNode;\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return CodeBlock;\n}(_block2.default);\n\nCodeBlock.blotName = 'code-block';\nCodeBlock.tagName = 'PRE';\nCodeBlock.TAB = ' ';\n\nexports.Code = Code;\nexports.default = CodeBlock;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar ASCII = /^[ -~]*$/;\n\nvar Editor = function () {\n function Editor(scroll) {\n _classCallCheck(this, Editor);\n\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n\n _createClass(Editor, [{\n key: 'applyDelta',\n value: function applyDelta(delta) {\n var _this = this;\n\n var consumeNextNewline = false;\n this.scroll.update();\n var scrollLength = this.scroll.length();\n this.scroll.batchStart();\n delta = normalizeDelta(delta);\n delta.reduce(function (index, op) {\n var length = op.retain || op.delete || op.insert.length || 1;\n var attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n var text = op.insert;\n if (text.endsWith('\\n') && consumeNextNewline) {\n consumeNextNewline = false;\n text = text.slice(0, -1);\n }\n if (index >= scrollLength && !text.endsWith('\\n')) {\n consumeNextNewline = true;\n }\n _this.scroll.insertAt(index, text);\n\n var _scroll$line = _this.scroll.line(index),\n _scroll$line2 = _slicedToArray(_scroll$line, 2),\n line = _scroll$line2[0],\n offset = _scroll$line2[1];\n\n var formats = (0, _extend2.default)({}, (0, _block.bubbleFormats)(line));\n if (line instanceof _block2.default) {\n var _line$descendant = line.descendant(_parchment2.default.Leaf, offset),\n _line$descendant2 = _slicedToArray(_line$descendant, 1),\n leaf = _line$descendant2[0];\n\n formats = (0, _extend2.default)(formats, (0, _block.bubbleFormats)(leaf));\n }\n attributes = _op2.default.attributes.diff(formats, attributes) || {};\n } else if (_typeof(op.insert) === 'object') {\n var key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n _this.scroll.insertAt(index, key, op.insert[key]);\n }\n scrollLength += length;\n }\n Object.keys(attributes).forEach(function (name) {\n _this.scroll.formatAt(index, length, name, attributes[name]);\n });\n return index + length;\n }, 0);\n delta.reduce(function (index, op) {\n if (typeof op.delete === 'number') {\n _this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + (op.retain || op.insert.length || 1);\n }, 0);\n this.scroll.batchEnd();\n return this.update(delta);\n }\n }, {\n key: 'deleteText',\n value: function deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new _quillDelta2.default().retain(index).delete(length));\n }\n }, {\n key: 'formatLine',\n value: function formatLine(index, length) {\n var _this2 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n this.scroll.update();\n Object.keys(formats).forEach(function (format) {\n if (_this2.scroll.whitelist != null && !_this2.scroll.whitelist[format]) return;\n var lines = _this2.scroll.lines(index, Math.max(length, 1));\n var lengthRemaining = length;\n lines.forEach(function (line) {\n var lineLength = line.length();\n if (!(line instanceof _code2.default)) {\n line.format(format, formats[format]);\n } else {\n var codeIndex = index - line.offset(_this2.scroll);\n var codeLength = line.newlineIndex(codeIndex + lengthRemaining) - codeIndex + 1;\n line.formatAt(codeIndex, codeLength, format, formats[format]);\n }\n lengthRemaining -= lineLength;\n });\n });\n this.scroll.optimize();\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'formatText',\n value: function formatText(index, length) {\n var _this3 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n Object.keys(formats).forEach(function (format) {\n _this3.scroll.formatAt(index, length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).retain(length, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'getContents',\n value: function getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n }, {\n key: 'getDelta',\n value: function getDelta() {\n return this.scroll.lines().reduce(function (delta, line) {\n return delta.concat(line.delta());\n }, new _quillDelta2.default());\n }\n }, {\n key: 'getFormat',\n value: function getFormat(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var lines = [],\n leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(function (path) {\n var _path = _slicedToArray(path, 1),\n blot = _path[0];\n\n if (blot instanceof _block2.default) {\n lines.push(blot);\n } else if (blot instanceof _parchment2.default.Leaf) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(_parchment2.default.Leaf, index, length);\n }\n var formatsArr = [lines, leaves].map(function (blots) {\n if (blots.length === 0) return {};\n var formats = (0, _block.bubbleFormats)(blots.shift());\n while (Object.keys(formats).length > 0) {\n var blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats((0, _block.bubbleFormats)(blot), formats);\n }\n return formats;\n });\n return _extend2.default.apply(_extend2.default, formatsArr);\n }\n }, {\n key: 'getText',\n value: function getText(index, length) {\n return this.getContents(index, length).filter(function (op) {\n return typeof op.insert === 'string';\n }).map(function (op) {\n return op.insert;\n }).join('');\n }\n }, {\n key: 'insertEmbed',\n value: function insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new _quillDelta2.default().retain(index).insert(_defineProperty({}, embed, value)));\n }\n }, {\n key: 'insertText',\n value: function insertText(index, text) {\n var _this4 = this;\n\n var formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(function (format) {\n _this4.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new _quillDelta2.default().retain(index).insert(text, (0, _clone2.default)(formats)));\n }\n }, {\n key: 'isBlank',\n value: function isBlank() {\n if (this.scroll.children.length == 0) return true;\n if (this.scroll.children.length > 1) return false;\n var block = this.scroll.children.head;\n if (block.statics.blotName !== _block2.default.blotName) return false;\n if (block.children.length > 1) return false;\n return block.children.head instanceof _break2.default;\n }\n }, {\n key: 'removeFormat',\n value: function removeFormat(index, length) {\n var text = this.getText(index, length);\n\n var _scroll$line3 = this.scroll.line(index + length),\n _scroll$line4 = _slicedToArray(_scroll$line3, 2),\n line = _scroll$line4[0],\n offset = _scroll$line4[1];\n\n var suffixLength = 0,\n suffix = new _quillDelta2.default();\n if (line != null) {\n if (!(line instanceof _code2.default)) {\n suffixLength = line.length() - offset;\n } else {\n suffixLength = line.newlineIndex(offset) - offset + 1;\n }\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n var contents = this.getContents(index, length + suffixLength);\n var diff = contents.diff(new _quillDelta2.default().insert(text).concat(suffix));\n var delta = new _quillDelta2.default().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n }, {\n key: 'update',\n value: function update(change) {\n var mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var cursorIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n\n var oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' && mutations[0].target.data.match(ASCII) && _parchment2.default.find(mutations[0].target)) {\n // Optimization for character changes\n var textBlot = _parchment2.default.find(mutations[0].target);\n var formats = (0, _block.bubbleFormats)(textBlot);\n var index = textBlot.offset(this.scroll);\n var oldValue = mutations[0].oldValue.replace(_cursor2.default.CONTENTS, '');\n var oldText = new _quillDelta2.default().insert(oldValue);\n var newText = new _quillDelta2.default().insert(textBlot.value());\n var diffDelta = new _quillDelta2.default().retain(index).concat(oldText.diff(newText, cursorIndex));\n change = diffDelta.reduce(function (delta, op) {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n } else {\n return delta.push(op);\n }\n }, new _quillDelta2.default());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !(0, _deepEqual2.default)(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, cursorIndex);\n }\n }\n return change;\n }\n }]);\n\n return Editor;\n}();\n\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce(function (merged, name) {\n if (formats[name] == null) return merged;\n if (combined[name] === formats[name]) {\n merged[name] = combined[name];\n } else if (Array.isArray(combined[name])) {\n if (combined[name].indexOf(formats[name]) < 0) {\n merged[name] = combined[name].concat([formats[name]]);\n }\n } else {\n merged[name] = [combined[name], formats[name]];\n }\n return merged;\n }, {});\n}\n\nfunction normalizeDelta(delta) {\n return delta.reduce(function (delta, op) {\n if (op.insert === 1) {\n var attributes = (0, _clone2.default)(op.attributes);\n delete attributes['image'];\n return delta.insert({ image: op.attributes.image }, attributes);\n }\n if (op.attributes != null && (op.attributes.list === true || op.attributes.bullet === true)) {\n op = (0, _clone2.default)(op);\n if (op.attributes.list) {\n op.attributes.list = 'ordered';\n } else {\n op.attributes.list = 'bullet';\n delete op.attributes.bullet;\n }\n }\n if (typeof op.insert === 'string') {\n var text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return delta.insert(text, op.attributes);\n }\n return delta.push(op);\n }, new _quillDelta2.default());\n}\n\nexports.default = Editor;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.Range = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _emitter3 = __webpack_require__(8);\n\nvar _emitter4 = _interopRequireDefault(_emitter3);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar debug = (0, _logger2.default)('quill:selection');\n\nvar Range = function Range(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Range);\n\n this.index = index;\n this.length = length;\n};\n\nvar Selection = function () {\n function Selection(scroll, emitter) {\n var _this = this;\n\n _classCallCheck(this, Selection);\n\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n this.cursor = _parchment2.default.create('cursor', this);\n // savedRange is last non-null range\n this.lastRange = this.savedRange = new Range(0, 0);\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, function () {\n if (!_this.mouseDown) {\n setTimeout(_this.update.bind(_this, _emitter4.default.sources.USER), 1);\n }\n });\n this.emitter.on(_emitter4.default.events.EDITOR_CHANGE, function (type, delta) {\n if (type === _emitter4.default.events.TEXT_CHANGE && delta.length() > 0) {\n _this.update(_emitter4.default.sources.SILENT);\n }\n });\n this.emitter.on(_emitter4.default.events.SCROLL_BEFORE_UPDATE, function () {\n if (!_this.hasFocus()) return;\n var native = _this.getNativeRange();\n if (native == null) return;\n if (native.start.node === _this.cursor.textNode) return; // cursor.restore() will handle\n // TODO unclear if this has negative side effects\n _this.emitter.once(_emitter4.default.events.SCROLL_UPDATE, function () {\n try {\n _this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n } catch (ignored) {}\n });\n });\n this.emitter.on(_emitter4.default.events.SCROLL_OPTIMIZE, function (mutations, context) {\n if (context.range) {\n var _context$range = context.range,\n startNode = _context$range.startNode,\n startOffset = _context$range.startOffset,\n endNode = _context$range.endNode,\n endOffset = _context$range.endOffset;\n\n _this.setNativeRange(startNode, startOffset, endNode, endOffset);\n }\n });\n this.update(_emitter4.default.sources.SILENT);\n }\n\n _createClass(Selection, [{\n key: 'handleComposition',\n value: function handleComposition() {\n var _this2 = this;\n\n this.root.addEventListener('compositionstart', function () {\n _this2.composing = true;\n });\n this.root.addEventListener('compositionend', function () {\n _this2.composing = false;\n if (_this2.cursor.parent) {\n var range = _this2.cursor.restore();\n if (!range) return;\n setTimeout(function () {\n _this2.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n }, {\n key: 'handleDragging',\n value: function handleDragging() {\n var _this3 = this;\n\n this.emitter.listenDOM('mousedown', document.body, function () {\n _this3.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, function () {\n _this3.mouseDown = false;\n _this3.update(_emitter4.default.sources.USER);\n });\n }\n }, {\n key: 'focus',\n value: function focus() {\n if (this.hasFocus()) return;\n this.root.focus();\n this.setRange(this.savedRange);\n }\n }, {\n key: 'format',\n value: function format(_format, value) {\n if (this.scroll.whitelist != null && !this.scroll.whitelist[_format]) return;\n this.scroll.update();\n var nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || _parchment2.default.query(_format, _parchment2.default.Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n var blot = _parchment2.default.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof _parchment2.default.Leaf) {\n var after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(_format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n }, {\n key: 'getBounds',\n value: function getBounds(index) {\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n var node = void 0,\n _scroll$leaf = this.scroll.leaf(index),\n _scroll$leaf2 = _slicedToArray(_scroll$leaf, 2),\n leaf = _scroll$leaf2[0],\n offset = _scroll$leaf2[1];\n if (leaf == null) return null;\n\n var _leaf$position = leaf.position(offset, true);\n\n var _leaf$position2 = _slicedToArray(_leaf$position, 2);\n\n node = _leaf$position2[0];\n offset = _leaf$position2[1];\n\n var range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n\n var _scroll$leaf3 = this.scroll.leaf(index + length);\n\n var _scroll$leaf4 = _slicedToArray(_scroll$leaf3, 2);\n\n leaf = _scroll$leaf4[0];\n offset = _scroll$leaf4[1];\n\n if (leaf == null) return null;\n\n var _leaf$position3 = leaf.position(offset, true);\n\n var _leaf$position4 = _slicedToArray(_leaf$position3, 2);\n\n node = _leaf$position4[0];\n offset = _leaf$position4[1];\n\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n } else {\n var side = 'left';\n var rect = void 0;\n if (node instanceof Text) {\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n }\n }, {\n key: 'getNativeRange',\n value: function getNativeRange() {\n var selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n var nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n var range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n }, {\n key: 'getRange',\n value: function getRange() {\n var normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n var range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n }, {\n key: 'hasFocus',\n value: function hasFocus() {\n return document.activeElement === this.root;\n }\n }, {\n key: 'normalizedToRange',\n value: function normalizedToRange(range) {\n var _this4 = this;\n\n var positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n var indexes = positions.map(function (position) {\n var _position = _slicedToArray(position, 2),\n node = _position[0],\n offset = _position[1];\n\n var blot = _parchment2.default.find(node, true);\n var index = blot.offset(_this4.scroll);\n if (offset === 0) {\n return index;\n } else if (blot instanceof _parchment2.default.Container) {\n return index + blot.length();\n } else {\n return index + blot.index(node, offset);\n }\n });\n var end = Math.min(Math.max.apply(Math, _toConsumableArray(indexes)), this.scroll.length() - 1);\n var start = Math.min.apply(Math, [end].concat(_toConsumableArray(indexes)));\n return new Range(start, end - start);\n }\n }, {\n key: 'normalizeNative',\n value: function normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n var range = {\n start: { node: nativeRange.startContainer, offset: nativeRange.startOffset },\n end: { node: nativeRange.endContainer, offset: nativeRange.endOffset },\n native: nativeRange\n };\n [range.start, range.end].forEach(function (position) {\n var node = position.node,\n offset = position.offset;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n node = node.lastChild;\n offset = node instanceof Text ? node.data.length : node.childNodes.length + 1;\n } else {\n break;\n }\n }\n position.node = node, position.offset = offset;\n });\n return range;\n }\n }, {\n key: 'rangeToNative',\n value: function rangeToNative(range) {\n var _this5 = this;\n\n var indexes = range.collapsed ? [range.index] : [range.index, range.index + range.length];\n var args = [];\n var scrollLength = this.scroll.length();\n indexes.forEach(function (index, i) {\n index = Math.min(scrollLength - 1, index);\n var node = void 0,\n _scroll$leaf5 = _this5.scroll.leaf(index),\n _scroll$leaf6 = _slicedToArray(_scroll$leaf5, 2),\n leaf = _scroll$leaf6[0],\n offset = _scroll$leaf6[1];\n var _leaf$position5 = leaf.position(offset, i !== 0);\n\n var _leaf$position6 = _slicedToArray(_leaf$position5, 2);\n\n node = _leaf$position6[0];\n offset = _leaf$position6[1];\n\n args.push(node, offset);\n });\n if (args.length < 2) {\n args = args.concat(args);\n }\n return args;\n }\n }, {\n key: 'scrollIntoView',\n value: function scrollIntoView(scrollingContainer) {\n var range = this.lastRange;\n if (range == null) return;\n var bounds = this.getBounds(range.index, range.length);\n if (bounds == null) return;\n var limit = this.scroll.length() - 1;\n\n var _scroll$line = this.scroll.line(Math.min(range.index, limit)),\n _scroll$line2 = _slicedToArray(_scroll$line, 1),\n first = _scroll$line2[0];\n\n var last = first;\n if (range.length > 0) {\n var _scroll$line3 = this.scroll.line(Math.min(range.index + range.length, limit));\n\n var _scroll$line4 = _slicedToArray(_scroll$line3, 1);\n\n last = _scroll$line4[0];\n }\n if (first == null || last == null) return;\n var scrollBounds = scrollingContainer.getBoundingClientRect();\n if (bounds.top < scrollBounds.top) {\n scrollingContainer.scrollTop -= scrollBounds.top - bounds.top;\n } else if (bounds.bottom > scrollBounds.bottom) {\n scrollingContainer.scrollTop += bounds.bottom - scrollBounds.bottom;\n }\n }\n }, {\n key: 'setNativeRange',\n value: function setNativeRange(startNode, startOffset) {\n var endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n var endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n var force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null || endNode.parentNode == null)) {\n return;\n }\n var selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus();\n var native = (this.getNativeRange() || {}).native;\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n\n if (startNode.tagName == \"BR\") {\n startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode);\n startNode = startNode.parentNode;\n }\n if (endNode.tagName == \"BR\") {\n endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode);\n endNode = endNode.parentNode;\n }\n var range = document.createRange();\n range.setStart(startNode, startOffset);\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n document.body.focus(); // root.blur() not enough on IE11+Travis+SauceLabs (but not local VMs)\n }\n }\n }, {\n key: 'setRange',\n value: function setRange(range) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter4.default.sources.API;\n\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n var args = this.rangeToNative(range);\n this.setNativeRange.apply(this, _toConsumableArray(args).concat([force]));\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n }, {\n key: 'update',\n value: function update() {\n var source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter4.default.sources.USER;\n\n var oldRange = this.lastRange;\n\n var _getRange = this.getRange(),\n _getRange2 = _slicedToArray(_getRange, 2),\n lastRange = _getRange2[0],\n nativeRange = _getRange2[1];\n\n this.lastRange = lastRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!(0, _deepEqual2.default)(oldRange, this.lastRange)) {\n var _emitter;\n\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n this.cursor.restore();\n }\n var args = [_emitter4.default.events.SELECTION_CHANGE, (0, _clone2.default)(this.lastRange), (0, _clone2.default)(oldRange), source];\n (_emitter = this.emitter).emit.apply(_emitter, [_emitter4.default.events.EDITOR_CHANGE].concat(args));\n if (source !== _emitter4.default.sources.SILENT) {\n var _emitter2;\n\n (_emitter2 = this.emitter).emit.apply(_emitter2, args);\n }\n }\n }\n }]);\n\n return Selection;\n}();\n\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode;\n } catch (e) {\n return false;\n }\n // IE11 has bug with Text nodes\n // https://connect.microsoft.com/IE/feedback/details/780874/node-contains-is-incorrect\n if (descendant instanceof Text) {\n descendant = descendant.parentNode;\n }\n return parent.contains(descendant);\n}\n\nexports.Range = Range;\nexports.default = Selection;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Break = function (_Parchment$Embed) {\n _inherits(Break, _Parchment$Embed);\n\n function Break() {\n _classCallCheck(this, Break);\n\n return _possibleConstructorReturn(this, (Break.__proto__ || Object.getPrototypeOf(Break)).apply(this, arguments));\n }\n\n _createClass(Break, [{\n key: 'insertInto',\n value: function insertInto(parent, ref) {\n if (parent.children.length === 0) {\n _get(Break.prototype.__proto__ || Object.getPrototypeOf(Break.prototype), 'insertInto', this).call(this, parent, ref);\n } else {\n this.remove();\n }\n }\n }, {\n key: 'length',\n value: function length() {\n return 0;\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }], [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n return Break;\n}(_parchment2.default.Embed);\n\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n\nexports.default = Break;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar linked_list_1 = __webpack_require__(44);\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar ContainerBlot = /** @class */ (function (_super) {\n __extends(ContainerBlot, _super);\n function ContainerBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.build();\n return _this;\n }\n ContainerBlot.prototype.appendChild = function (other) {\n this.insertBefore(other);\n };\n ContainerBlot.prototype.attach = function () {\n _super.prototype.attach.call(this);\n this.children.forEach(function (child) {\n child.attach();\n });\n };\n ContainerBlot.prototype.build = function () {\n var _this = this;\n this.children = new linked_list_1.default();\n // Need to be reversed for if DOM nodes already in order\n [].slice\n .call(this.domNode.childNodes)\n .reverse()\n .forEach(function (node) {\n try {\n var child = makeBlot(node);\n _this.insertBefore(child, _this.children.head || undefined);\n }\n catch (err) {\n if (err instanceof Registry.ParchmentError)\n return;\n else\n throw err;\n }\n });\n };\n ContainerBlot.prototype.deleteAt = function (index, length) {\n if (index === 0 && length === this.length()) {\n return this.remove();\n }\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.deleteAt(offset, length);\n });\n };\n ContainerBlot.prototype.descendant = function (criteria, index) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n return [child, offset];\n }\n else if (child instanceof ContainerBlot) {\n return child.descendant(criteria, offset);\n }\n else {\n return [null, -1];\n }\n };\n ContainerBlot.prototype.descendants = function (criteria, index, length) {\n if (index === void 0) { index = 0; }\n if (length === void 0) { length = Number.MAX_VALUE; }\n var descendants = [];\n var lengthLeft = length;\n this.children.forEachAt(index, length, function (child, index, length) {\n if ((criteria.blotName == null && criteria(child)) ||\n (criteria.blotName != null && child instanceof criteria)) {\n descendants.push(child);\n }\n if (child instanceof ContainerBlot) {\n descendants = descendants.concat(child.descendants(criteria, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return descendants;\n };\n ContainerBlot.prototype.detach = function () {\n this.children.forEach(function (child) {\n child.detach();\n });\n _super.prototype.detach.call(this);\n };\n ContainerBlot.prototype.formatAt = function (index, length, name, value) {\n this.children.forEachAt(index, length, function (child, offset, length) {\n child.formatAt(offset, length, name, value);\n });\n };\n ContainerBlot.prototype.insertAt = function (index, value, def) {\n var _a = this.children.find(index), child = _a[0], offset = _a[1];\n if (child) {\n child.insertAt(offset, value, def);\n }\n else {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n this.appendChild(blot);\n }\n };\n ContainerBlot.prototype.insertBefore = function (childBlot, refBlot) {\n if (this.statics.allowedChildren != null &&\n !this.statics.allowedChildren.some(function (child) {\n return childBlot instanceof child;\n })) {\n throw new Registry.ParchmentError(\"Cannot insert \" + childBlot.statics.blotName + \" into \" + this.statics.blotName);\n }\n childBlot.insertInto(this, refBlot);\n };\n ContainerBlot.prototype.length = function () {\n return this.children.reduce(function (memo, child) {\n return memo + child.length();\n }, 0);\n };\n ContainerBlot.prototype.moveChildren = function (targetParent, refNode) {\n this.children.forEach(function (child) {\n targetParent.insertBefore(child, refNode);\n });\n };\n ContainerBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n if (this.children.length === 0) {\n if (this.statics.defaultChild != null) {\n var child = Registry.create(this.statics.defaultChild);\n this.appendChild(child);\n child.optimize(context);\n }\n else {\n this.remove();\n }\n }\n };\n ContainerBlot.prototype.path = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var _a = this.children.find(index, inclusive), child = _a[0], offset = _a[1];\n var position = [[this, index]];\n if (child instanceof ContainerBlot) {\n return position.concat(child.path(offset, inclusive));\n }\n else if (child != null) {\n position.push([child, offset]);\n }\n return position;\n };\n ContainerBlot.prototype.removeChild = function (child) {\n this.children.remove(child);\n };\n ContainerBlot.prototype.replace = function (target) {\n if (target instanceof ContainerBlot) {\n target.moveChildren(this);\n }\n _super.prototype.replace.call(this, target);\n };\n ContainerBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = this.clone();\n this.parent.insertBefore(after, this.next);\n this.children.forEachAt(index, this.length(), function (child, offset, length) {\n child = child.split(offset, force);\n after.appendChild(child);\n });\n return after;\n };\n ContainerBlot.prototype.unwrap = function () {\n this.moveChildren(this.parent, this.next);\n this.remove();\n };\n ContainerBlot.prototype.update = function (mutations, context) {\n var _this = this;\n var addedNodes = [];\n var removedNodes = [];\n mutations.forEach(function (mutation) {\n if (mutation.target === _this.domNode && mutation.type === 'childList') {\n addedNodes.push.apply(addedNodes, mutation.addedNodes);\n removedNodes.push.apply(removedNodes, mutation.removedNodes);\n }\n });\n removedNodes.forEach(function (node) {\n // Check node has actually been removed\n // One exception is Chrome does not immediately remove IFRAMEs\n // from DOM but MutationRecord is correct in its reported removal\n if (node.parentNode != null &&\n // @ts-ignore\n node.tagName !== 'IFRAME' &&\n document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return;\n }\n var blot = Registry.find(node);\n if (blot == null)\n return;\n if (blot.domNode.parentNode == null || blot.domNode.parentNode === _this.domNode) {\n blot.detach();\n }\n });\n addedNodes\n .filter(function (node) {\n return node.parentNode == _this.domNode;\n })\n .sort(function (a, b) {\n if (a === b)\n return 0;\n if (a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING) {\n return 1;\n }\n return -1;\n })\n .forEach(function (node) {\n var refBlot = null;\n if (node.nextSibling != null) {\n refBlot = Registry.find(node.nextSibling);\n }\n var blot = makeBlot(node);\n if (blot.next != refBlot || blot.next == null) {\n if (blot.parent != null) {\n blot.parent.removeChild(_this);\n }\n _this.insertBefore(blot, refBlot || undefined);\n }\n });\n };\n return ContainerBlot;\n}(shadow_1.default));\nfunction makeBlot(node) {\n var blot = Registry.find(node);\n if (blot == null) {\n try {\n blot = Registry.create(node);\n }\n catch (e) {\n blot = Registry.create(Registry.Scope.INLINE);\n [].slice.call(node.childNodes).forEach(function (child) {\n // @ts-ignore\n blot.domNode.appendChild(child);\n });\n if (node.parentNode) {\n node.parentNode.replaceChild(blot.domNode, node);\n }\n blot.attach();\n }\n }\n return blot;\n}\nexports.default = ContainerBlot;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar store_1 = __webpack_require__(31);\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar FormatBlot = /** @class */ (function (_super) {\n __extends(FormatBlot, _super);\n function FormatBlot(domNode) {\n var _this = _super.call(this, domNode) || this;\n _this.attributes = new store_1.default(_this.domNode);\n return _this;\n }\n FormatBlot.formats = function (domNode) {\n if (typeof this.tagName === 'string') {\n return true;\n }\n else if (Array.isArray(this.tagName)) {\n return domNode.tagName.toLowerCase();\n }\n return undefined;\n };\n FormatBlot.prototype.format = function (name, value) {\n var format = Registry.query(name);\n if (format instanceof attributor_1.default) {\n this.attributes.attribute(format, value);\n }\n else if (value) {\n if (format != null && (name !== this.statics.blotName || this.formats()[name] !== value)) {\n this.replaceWith(name, value);\n }\n }\n };\n FormatBlot.prototype.formats = function () {\n var formats = this.attributes.values();\n var format = this.statics.formats(this.domNode);\n if (format != null) {\n formats[this.statics.blotName] = format;\n }\n return formats;\n };\n FormatBlot.prototype.replaceWith = function (name, value) {\n var replacement = _super.prototype.replaceWith.call(this, name, value);\n this.attributes.copy(replacement);\n return replacement;\n };\n FormatBlot.prototype.update = function (mutations, context) {\n var _this = this;\n _super.prototype.update.call(this, mutations, context);\n if (mutations.some(function (mutation) {\n return mutation.target === _this.domNode && mutation.type === 'attributes';\n })) {\n this.attributes.build();\n }\n };\n FormatBlot.prototype.wrap = function (name, value) {\n var wrapper = _super.prototype.wrap.call(this, name, value);\n if (wrapper instanceof FormatBlot && wrapper.statics.scope === this.statics.scope) {\n this.attributes.move(wrapper);\n }\n return wrapper;\n };\n return FormatBlot;\n}(container_1.default));\nexports.default = FormatBlot;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar shadow_1 = __webpack_require__(30);\nvar Registry = __webpack_require__(1);\nvar LeafBlot = /** @class */ (function (_super) {\n __extends(LeafBlot, _super);\n function LeafBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LeafBlot.value = function (domNode) {\n return true;\n };\n LeafBlot.prototype.index = function (node, offset) {\n if (this.domNode === node ||\n this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return Math.min(offset, 1);\n }\n return -1;\n };\n LeafBlot.prototype.position = function (index, inclusive) {\n var offset = [].indexOf.call(this.parent.domNode.childNodes, this.domNode);\n if (index > 0)\n offset += 1;\n return [this.parent.domNode, offset];\n };\n LeafBlot.prototype.value = function () {\n var _a;\n return _a = {}, _a[this.statics.blotName] = this.statics.value(this.domNode) || true, _a;\n };\n LeafBlot.scope = Registry.Scope.INLINE_BLOT;\n return LeafBlot;\n}(shadow_1.default));\nexports.default = LeafBlot;\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar equal = __webpack_require__(11);\nvar extend = __webpack_require__(3);\n\n\nvar lib = {\n attributes: {\n compose: function (a, b, keepNull) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = extend(true, {}, b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n diff: function(a, b) {\n if (typeof a !== 'object') a = {};\n if (typeof b !== 'object') b = {};\n var attributes = Object.keys(a).concat(Object.keys(b)).reduce(function (attributes, key) {\n if (!equal(a[key], b[key])) {\n attributes[key] = b[key] === undefined ? null : b[key];\n }\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n },\n\n transform: function (a, b, priority) {\n if (typeof a !== 'object') return b;\n if (typeof b !== 'object') return undefined;\n if (!priority) return b; // b simply overwrites us without priority\n var attributes = Object.keys(b).reduce(function (attributes, key) {\n if (a[key] === undefined) attributes[key] = b[key]; // null is a valid value\n return attributes;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n },\n\n iterator: function (ops) {\n return new Iterator(ops);\n },\n\n length: function (op) {\n if (typeof op['delete'] === 'number') {\n return op['delete'];\n } else if (typeof op.retain === 'number') {\n return op.retain;\n } else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n};\n\n\nfunction Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n};\n\nIterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n};\n\nIterator.prototype.next = function (length) {\n if (!length) length = Infinity;\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = lib.length(nextOp)\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n } else {\n this.offset += length;\n }\n if (typeof nextOp['delete'] === 'number') {\n return { 'delete': length };\n } else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n } else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n } else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n } else {\n return { retain: Infinity };\n }\n};\n\nIterator.prototype.peek = function () {\n return this.ops[this.index];\n};\n\nIterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return lib.length(this.ops[this.index]) - this.offset;\n } else {\n return Infinity;\n }\n};\n\nIterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index]['delete'] === 'number') {\n return 'delete';\n } else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n } else {\n return 'insert';\n }\n }\n return 'retain';\n};\n\nIterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n } else if (this.offset === 0) {\n return this.ops.slice(this.index);\n } else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n};\n\n\nmodule.exports = lib;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\nvar clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction isLine(blot) {\n return blot instanceof _block2.default || blot instanceof _block.BlockEmbed;\n}\n\nvar Scroll = function (_Parchment$Scroll) {\n _inherits(Scroll, _Parchment$Scroll);\n\n function Scroll(domNode, config) {\n _classCallCheck(this, Scroll);\n\n var _this = _possibleConstructorReturn(this, (Scroll.__proto__ || Object.getPrototypeOf(Scroll)).call(this, domNode));\n\n _this.emitter = config.emitter;\n if (Array.isArray(config.whitelist)) {\n _this.whitelist = config.whitelist.reduce(function (whitelist, format) {\n whitelist[format] = true;\n return whitelist;\n }, {});\n }\n // Some reason fixes composition issues with character languages in Windows/Chrome, Safari\n _this.domNode.addEventListener('DOMNodeInserted', function () {});\n _this.optimize();\n _this.enable();\n return _this;\n }\n\n _createClass(Scroll, [{\n key: 'batchStart',\n value: function batchStart() {\n this.batch = true;\n }\n }, {\n key: 'batchEnd',\n value: function batchEnd() {\n this.batch = false;\n this.optimize();\n }\n }, {\n key: 'deleteAt',\n value: function deleteAt(index, length) {\n var _line = this.line(index),\n _line2 = _slicedToArray(_line, 2),\n first = _line2[0],\n offset = _line2[1];\n\n var _line3 = this.line(index + length),\n _line4 = _slicedToArray(_line3, 1),\n last = _line4[0];\n\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'deleteAt', this).call(this, index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof _block.BlockEmbed || last instanceof _block.BlockEmbed) {\n this.optimize();\n return;\n }\n if (first instanceof _code2.default) {\n var newlineIndex = first.newlineIndex(first.length(), true);\n if (newlineIndex > -1) {\n first = first.split(newlineIndex + 1);\n if (first === last) {\n this.optimize();\n return;\n }\n }\n } else if (last instanceof _code2.default) {\n var _newlineIndex = last.newlineIndex(0);\n if (_newlineIndex > -1) {\n last.split(_newlineIndex + 1);\n }\n }\n var ref = last.children.head instanceof _break2.default ? null : last.children.head;\n first.moveChildren(last, ref);\n first.remove();\n }\n this.optimize();\n }\n }, {\n key: 'enable',\n value: function enable() {\n var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n this.domNode.setAttribute('contenteditable', enabled);\n }\n }, {\n key: 'formatAt',\n value: function formatAt(index, length, format, value) {\n if (this.whitelist != null && !this.whitelist[format]) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'formatAt', this).call(this, index, length, format, value);\n this.optimize();\n }\n }, {\n key: 'insertAt',\n value: function insertAt(index, value, def) {\n if (def != null && this.whitelist != null && !this.whitelist[value]) return;\n if (index >= this.length()) {\n if (def == null || _parchment2.default.query(value, _parchment2.default.Scope.BLOCK) == null) {\n var blot = _parchment2.default.create(this.statics.defaultChild);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n value = value.slice(0, -1);\n }\n blot.insertAt(0, value, def);\n } else {\n var embed = _parchment2.default.create(value, def);\n this.appendChild(embed);\n }\n } else {\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertAt', this).call(this, index, value, def);\n }\n this.optimize();\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot.statics.scope === _parchment2.default.Scope.INLINE_BLOT) {\n var wrapper = _parchment2.default.create(this.statics.defaultChild);\n wrapper.appendChild(blot);\n blot = wrapper;\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'insertBefore', this).call(this, blot, ref);\n }\n }, {\n key: 'leaf',\n value: function leaf(index) {\n return this.path(index).pop() || [null, -1];\n }\n }, {\n key: 'line',\n value: function line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n return this.descendant(isLine, index);\n }\n }, {\n key: 'lines',\n value: function lines() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n\n var getLines = function getLines(blot, index, length) {\n var lines = [],\n lengthLeft = length;\n blot.children.forEachAt(index, length, function (child, index, length) {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof _parchment2.default.Container) {\n lines = lines.concat(getLines(child, index, lengthLeft));\n }\n lengthLeft -= length;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n }, {\n key: 'optimize',\n value: function optimize() {\n var mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.batch === true) return;\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'optimize', this).call(this, mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n }, {\n key: 'path',\n value: function path(index) {\n return _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'path', this).call(this, index).slice(1); // Exclude self\n }\n }, {\n key: 'update',\n value: function update(mutations) {\n if (this.batch === true) return;\n var source = _emitter2.default.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n _get(Scroll.prototype.__proto__ || Object.getPrototypeOf(Scroll.prototype), 'update', this).call(this, mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(_emitter2.default.events.SCROLL_UPDATE, source, mutations);\n }\n }\n }]);\n\n return Scroll;\n}(_parchment2.default.Scroll);\n\nScroll.blotName = 'scroll';\nScroll.className = 'ql-editor';\nScroll.tagName = 'DIV';\nScroll.defaultChild = 'block';\nScroll.allowedChildren = [_block2.default, _block.BlockEmbed, _container2.default];\n\nexports.default = Scroll;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SHORTKEY = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _clone = __webpack_require__(21);\n\nvar _clone2 = _interopRequireDefault(_clone);\n\nvar _deepEqual = __webpack_require__(11);\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _op = __webpack_require__(20);\n\nvar _op2 = _interopRequireDefault(_op);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:keyboard');\n\nvar SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\n\nvar Keyboard = function (_Module) {\n _inherits(Keyboard, _Module);\n\n _createClass(Keyboard, null, [{\n key: 'match',\n value: function match(evt, binding) {\n binding = normalize(binding);\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(function (key) {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === (evt.which || evt.keyCode);\n }\n }]);\n\n function Keyboard(quill, options) {\n _classCallCheck(this, Keyboard);\n\n var _this = _possibleConstructorReturn(this, (Keyboard.__proto__ || Object.getPrototypeOf(Keyboard)).call(this, quill, options));\n\n _this.bindings = {};\n Object.keys(_this.options.bindings).forEach(function (name) {\n if (name === 'list autofill' && quill.scroll.whitelist != null && !quill.scroll.whitelist['list']) {\n return;\n }\n if (_this.options.bindings[name]) {\n _this.addBinding(_this.options.bindings[name]);\n }\n });\n _this.addBinding({ key: Keyboard.keys.ENTER, shiftKey: null }, handleEnter);\n _this.addBinding({ key: Keyboard.keys.ENTER, metaKey: null, ctrlKey: null, altKey: null }, function () {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true }, handleDelete);\n } else {\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: true, prefix: /^.?$/ }, handleBackspace);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: true, suffix: /^.?$/ }, handleDelete);\n }\n _this.addBinding({ key: Keyboard.keys.BACKSPACE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.DELETE }, { collapsed: false }, handleDeleteRange);\n _this.addBinding({ key: Keyboard.keys.BACKSPACE, altKey: null, ctrlKey: null, metaKey: null, shiftKey: null }, { collapsed: true, offset: 0 }, handleBackspace);\n _this.listen();\n return _this;\n }\n\n _createClass(Keyboard, [{\n key: 'addBinding',\n value: function addBinding(key) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var binding = normalize(key);\n if (binding == null || binding.key == null) {\n return debug.warn('Attempted to add invalid keyboard binding', binding);\n }\n if (typeof context === 'function') {\n context = { handler: context };\n }\n if (typeof handler === 'function') {\n handler = { handler: handler };\n }\n binding = (0, _extend2.default)(binding, context, handler);\n this.bindings[binding.key] = this.bindings[binding.key] || [];\n this.bindings[binding.key].push(binding);\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this2 = this;\n\n this.quill.root.addEventListener('keydown', function (evt) {\n if (evt.defaultPrevented) return;\n var which = evt.which || evt.keyCode;\n var bindings = (_this2.bindings[which] || []).filter(function (binding) {\n return Keyboard.match(evt, binding);\n });\n if (bindings.length === 0) return;\n var range = _this2.quill.getSelection();\n if (range == null || !_this2.quill.hasFocus()) return;\n\n var _quill$getLine = _this2.quill.getLine(range.index),\n _quill$getLine2 = _slicedToArray(_quill$getLine, 2),\n line = _quill$getLine2[0],\n offset = _quill$getLine2[1];\n\n var _quill$getLeaf = _this2.quill.getLeaf(range.index),\n _quill$getLeaf2 = _slicedToArray(_quill$getLeaf, 2),\n leafStart = _quill$getLeaf2[0],\n offsetStart = _quill$getLeaf2[1];\n\n var _ref = range.length === 0 ? [leafStart, offsetStart] : _this2.quill.getLeaf(range.index + range.length),\n _ref2 = _slicedToArray(_ref, 2),\n leafEnd = _ref2[0],\n offsetEnd = _ref2[1];\n\n var prefixText = leafStart instanceof _parchment2.default.Text ? leafStart.value().slice(0, offsetStart) : '';\n var suffixText = leafEnd instanceof _parchment2.default.Text ? leafEnd.value().slice(offsetEnd) : '';\n var curContext = {\n collapsed: range.length === 0,\n empty: range.length === 0 && line.length() <= 1,\n format: _this2.quill.getFormat(range),\n offset: offset,\n prefix: prefixText,\n suffix: suffixText\n };\n var prevented = bindings.some(function (binding) {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) return false;\n if (binding.empty != null && binding.empty !== curContext.empty) return false;\n if (binding.offset != null && binding.offset !== curContext.offset) return false;\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(function (name) {\n return curContext.format[name] == null;\n })) {\n return false;\n }\n } else if (_typeof(binding.format) === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(function (name) {\n if (binding.format[name] === true) return curContext.format[name] != null;\n if (binding.format[name] === false) return curContext.format[name] == null;\n return (0, _deepEqual2.default)(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) return false;\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) return false;\n return binding.handler.call(_this2, range, curContext) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n }]);\n\n return Keyboard;\n}(_module2.default);\n\nKeyboard.keys = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESCAPE: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n};\n\nKeyboard.DEFAULTS = {\n bindings: {\n 'bold': makeFormatHandler('bold'),\n 'italic': makeFormatHandler('italic'),\n 'underline': makeFormatHandler('underline'),\n 'indent': {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: Keyboard.keys.TAB,\n format: ['blockquote', 'indent', 'list'],\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', _quill2.default.sources.USER);\n }\n },\n 'outdent': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler: function handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n }\n },\n 'outdent backspace': {\n key: Keyboard.keys.BACKSPACE,\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler: function handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', _quill2.default.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: Keyboard.keys.TAB,\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler: function handler(range) {\n this.quill.deleteText(range.index - 1, 1, _quill2.default.sources.USER);\n }\n },\n 'tab': {\n key: Keyboard.keys.TAB,\n handler: function handler(range) {\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n }\n },\n 'list empty enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['list'],\n empty: true,\n handler: function handler(range, context) {\n this.quill.format('list', false, _quill2.default.sources.USER);\n if (context.format.indent) {\n this.quill.format('indent', false, _quill2.default.sources.USER);\n }\n }\n },\n 'checklist enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: { list: 'checked' },\n handler: function handler(range) {\n var _quill$getLine3 = this.quill.getLine(range.index),\n _quill$getLine4 = _slicedToArray(_quill$getLine3, 2),\n line = _quill$getLine4[0],\n offset = _quill$getLine4[1];\n\n var formats = (0, _extend2.default)({}, line.formats(), { list: 'checked' });\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', formats).retain(line.length() - offset - 1).retain(1, { list: 'unchecked' });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'header enter': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler: function handler(range, context) {\n var _quill$getLine5 = this.quill.getLine(range.index),\n _quill$getLine6 = _slicedToArray(_quill$getLine5, 2),\n line = _quill$getLine6[0],\n offset = _quill$getLine6[1];\n\n var delta = new _quillDelta2.default().retain(range.index).insert('\\n', context.format).retain(line.length() - offset - 1).retain(1, { header: null });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.scrollIntoView();\n }\n },\n 'list autofill': {\n key: ' ',\n collapsed: true,\n format: { list: false },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler: function handler(range, context) {\n var length = context.prefix.length;\n\n var _quill$getLine7 = this.quill.getLine(range.index),\n _quill$getLine8 = _slicedToArray(_quill$getLine7, 2),\n line = _quill$getLine8[0],\n offset = _quill$getLine8[1];\n\n if (offset > length) return true;\n var value = void 0;\n switch (context.prefix.trim()) {\n case '[]':case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', _quill2.default.sources.USER);\n this.quill.history.cutoff();\n var delta = new _quillDelta2.default().retain(range.index - offset).delete(length + 1).retain(line.length() - 2 - offset).retain(1, { list: value });\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, _quill2.default.sources.SILENT);\n }\n },\n 'code exit': {\n key: Keyboard.keys.ENTER,\n collapsed: true,\n format: ['code-block'],\n prefix: /\\n\\n$/,\n suffix: /^\\s+$/,\n handler: function handler(range) {\n var _quill$getLine9 = this.quill.getLine(range.index),\n _quill$getLine10 = _slicedToArray(_quill$getLine9, 2),\n line = _quill$getLine10[0],\n offset = _quill$getLine10[1];\n\n var delta = new _quillDelta2.default().retain(range.index + line.length() - offset - 2).retain(1, { 'code-block': null }).delete(1);\n this.quill.updateContents(delta, _quill2.default.sources.USER);\n }\n },\n 'embed left': makeEmbedArrowHandler(Keyboard.keys.LEFT, false),\n 'embed left shift': makeEmbedArrowHandler(Keyboard.keys.LEFT, true),\n 'embed right': makeEmbedArrowHandler(Keyboard.keys.RIGHT, false),\n 'embed right shift': makeEmbedArrowHandler(Keyboard.keys.RIGHT, true)\n }\n};\n\nfunction makeEmbedArrowHandler(key, shiftKey) {\n var _ref3;\n\n var where = key === Keyboard.keys.LEFT ? 'prefix' : 'suffix';\n return _ref3 = {\n key: key,\n shiftKey: shiftKey,\n altKey: null\n }, _defineProperty(_ref3, where, /^$/), _defineProperty(_ref3, 'handler', function handler(range) {\n var index = range.index;\n if (key === Keyboard.keys.RIGHT) {\n index += range.length + 1;\n }\n\n var _quill$getLeaf3 = this.quill.getLeaf(index),\n _quill$getLeaf4 = _slicedToArray(_quill$getLeaf3, 1),\n leaf = _quill$getLeaf4[0];\n\n if (!(leaf instanceof _parchment2.default.Embed)) return true;\n if (key === Keyboard.keys.LEFT) {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, _quill2.default.sources.USER);\n }\n } else {\n if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, _quill2.default.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, _quill2.default.sources.USER);\n }\n }\n return false;\n }), _ref3;\n}\n\nfunction handleBackspace(range, context) {\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n\n var _quill$getLine11 = this.quill.getLine(range.index),\n _quill$getLine12 = _slicedToArray(_quill$getLine11, 1),\n line = _quill$getLine12[0];\n\n var formats = {};\n if (context.offset === 0) {\n var _quill$getLine13 = this.quill.getLine(range.index - 1),\n _quill$getLine14 = _slicedToArray(_quill$getLine13, 1),\n prev = _quill$getLine14[0];\n\n if (prev != null && prev.length() > 1) {\n var curFormats = line.formats();\n var prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = _op2.default.attributes.diff(curFormats, prevFormats) || {};\n }\n }\n // Check for astral symbols\n var length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n this.quill.deleteText(range.index - length, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index - length, length, formats, _quill2.default.sources.USER);\n }\n this.quill.focus();\n}\n\nfunction handleDelete(range, context) {\n // Check for astral symbols\n var length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n var formats = {},\n nextLength = 0;\n\n var _quill$getLine15 = this.quill.getLine(range.index),\n _quill$getLine16 = _slicedToArray(_quill$getLine15, 1),\n line = _quill$getLine16[0];\n\n if (context.offset >= line.length() - 1) {\n var _quill$getLine17 = this.quill.getLine(range.index + 1),\n _quill$getLine18 = _slicedToArray(_quill$getLine17, 1),\n next = _quill$getLine18[0];\n\n if (next) {\n var curFormats = line.formats();\n var nextFormats = this.quill.getFormat(range.index, 1);\n formats = _op2.default.attributes.diff(curFormats, nextFormats) || {};\n nextLength = next.length();\n }\n }\n this.quill.deleteText(range.index, length, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index + nextLength - 1, length, formats, _quill2.default.sources.USER);\n }\n}\n\nfunction handleDeleteRange(range) {\n var lines = this.quill.getLines(range);\n var formats = {};\n if (lines.length > 1) {\n var firstFormats = lines[0].formats();\n var lastFormats = lines[lines.length - 1].formats();\n formats = _op2.default.attributes.diff(lastFormats, firstFormats) || {};\n }\n this.quill.deleteText(range, _quill2.default.sources.USER);\n if (Object.keys(formats).length > 0) {\n this.quill.formatLine(range.index, 1, formats, _quill2.default.sources.USER);\n }\n this.quill.setSelection(range.index, _quill2.default.sources.SILENT);\n this.quill.focus();\n}\n\nfunction handleEnter(range, context) {\n var _this3 = this;\n\n if (range.length > 0) {\n this.quill.scroll.deleteAt(range.index, range.length); // So we do not trigger text-change\n }\n var lineFormats = Object.keys(context.format).reduce(function (lineFormats, format) {\n if (_parchment2.default.query(format, _parchment2.default.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n lineFormats[format] = context.format[format];\n }\n return lineFormats;\n }, {});\n this.quill.insertText(range.index, '\\n', lineFormats, _quill2.default.sources.USER);\n // Earlier scroll.deleteAt might have messed up our selection,\n // so insertText's built in selection preservation is not reliable\n this.quill.setSelection(range.index + 1, _quill2.default.sources.SILENT);\n this.quill.focus();\n Object.keys(context.format).forEach(function (name) {\n if (lineFormats[name] != null) return;\n if (Array.isArray(context.format[name])) return;\n if (name === 'link') return;\n _this3.quill.format(name, context.format[name], _quill2.default.sources.USER);\n });\n}\n\nfunction makeCodeBlockHandler(indent) {\n return {\n key: Keyboard.keys.TAB,\n shiftKey: !indent,\n format: { 'code-block': true },\n handler: function handler(range) {\n var CodeBlock = _parchment2.default.query('code-block');\n var index = range.index,\n length = range.length;\n\n var _quill$scroll$descend = this.quill.scroll.descendant(CodeBlock, index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n block = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (block == null) return;\n var scrollIndex = this.quill.getIndex(block);\n var start = block.newlineIndex(offset, true) + 1;\n var end = block.newlineIndex(scrollIndex + offset + length);\n var lines = block.domNode.textContent.slice(start, end).split('\\n');\n offset = 0;\n lines.forEach(function (line, i) {\n if (indent) {\n block.insertAt(start + offset, CodeBlock.TAB);\n offset += CodeBlock.TAB.length;\n if (i === 0) {\n index += CodeBlock.TAB.length;\n } else {\n length += CodeBlock.TAB.length;\n }\n } else if (line.startsWith(CodeBlock.TAB)) {\n block.deleteAt(start + offset, CodeBlock.TAB.length);\n offset -= CodeBlock.TAB.length;\n if (i === 0) {\n index -= CodeBlock.TAB.length;\n } else {\n length -= CodeBlock.TAB.length;\n }\n }\n offset += line.length + 1;\n });\n this.quill.update(_quill2.default.sources.USER);\n this.quill.setSelection(index, length, _quill2.default.sources.SILENT);\n }\n };\n}\n\nfunction makeFormatHandler(format) {\n return {\n key: format[0].toUpperCase(),\n shortKey: true,\n handler: function handler(range, context) {\n this.quill.format(format, !context.format[format], _quill2.default.sources.USER);\n }\n };\n}\n\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n return normalize({ key: binding });\n }\n if ((typeof binding === 'undefined' ? 'undefined' : _typeof(binding)) === 'object') {\n binding = (0, _clone2.default)(binding, false);\n }\n if (typeof binding.key === 'string') {\n if (Keyboard.keys[binding.key.toUpperCase()] != null) {\n binding.key = Keyboard.keys[binding.key.toUpperCase()];\n } else if (binding.key.length === 1) {\n binding.key = binding.key.toUpperCase().charCodeAt(0);\n } else {\n return null;\n }\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\nexports.default = Keyboard;\nexports.SHORTKEY = SHORTKEY;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Cursor = function (_Parchment$Embed) {\n _inherits(Cursor, _Parchment$Embed);\n\n _createClass(Cursor, null, [{\n key: 'value',\n value: function value() {\n return undefined;\n }\n }]);\n\n function Cursor(domNode, selection) {\n _classCallCheck(this, Cursor);\n\n var _this = _possibleConstructorReturn(this, (Cursor.__proto__ || Object.getPrototypeOf(Cursor)).call(this, domNode));\n\n _this.selection = selection;\n _this.textNode = document.createTextNode(Cursor.CONTENTS);\n _this.domNode.appendChild(_this.textNode);\n _this._length = 0;\n return _this;\n }\n\n _createClass(Cursor, [{\n key: 'detach',\n value: function detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n }, {\n key: 'format',\n value: function format(name, value) {\n if (this._length !== 0) {\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'format', this).call(this, name, value);\n }\n var target = this,\n index = 0;\n while (target != null && target.statics.scope !== _parchment2.default.Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this._length = Cursor.CONTENTS.length;\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this._length = 0;\n }\n }\n }, {\n key: 'index',\n value: function index(node, offset) {\n if (node === this.textNode) return 0;\n return _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'length',\n value: function length() {\n return this._length;\n }\n }, {\n key: 'position',\n value: function position() {\n return [this.textNode, this.textNode.data.length];\n }\n }, {\n key: 'remove',\n value: function remove() {\n _get(Cursor.prototype.__proto__ || Object.getPrototypeOf(Cursor.prototype), 'remove', this).call(this);\n this.parent = null;\n }\n }, {\n key: 'restore',\n value: function restore() {\n if (this.selection.composing || this.parent == null) return;\n var textNode = this.textNode;\n var range = this.selection.getNativeRange();\n var restoreText = void 0,\n start = void 0,\n end = void 0;\n if (range != null && range.start.node === textNode && range.end.node === textNode) {\n var _ref = [textNode, range.start.offset, range.end.offset];\n restoreText = _ref[0];\n start = _ref[1];\n end = _ref[2];\n }\n // Link format will insert text outside of anchor tag\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n if (this.textNode.data !== Cursor.CONTENTS) {\n var text = this.textNode.data.split(Cursor.CONTENTS).join('');\n if (this.next instanceof _text2.default) {\n restoreText = this.next.domNode;\n this.next.insertAt(0, text);\n this.textNode.data = Cursor.CONTENTS;\n } else {\n this.textNode.data = text;\n this.parent.insertBefore(_parchment2.default.create(this.textNode), this);\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n }\n }\n this.remove();\n if (start != null) {\n var _map = [start, end].map(function (offset) {\n return Math.max(0, Math.min(restoreText.data.length, offset - 1));\n });\n\n var _map2 = _slicedToArray(_map, 2);\n\n start = _map2[0];\n end = _map2[1];\n\n return {\n startNode: restoreText,\n startOffset: start,\n endNode: restoreText,\n endOffset: end\n };\n }\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this2.textNode;\n })) {\n var range = this.restore();\n if (range) context.range = range;\n }\n }\n }, {\n key: 'value',\n value: function value() {\n return '';\n }\n }]);\n\n return Cursor;\n}(_parchment2.default.Embed);\n\nCursor.blotName = 'cursor';\nCursor.className = 'ql-cursor';\nCursor.tagName = 'span';\nCursor.CONTENTS = '\\uFEFF'; // Zero width no break space\n\n\nexports.default = Cursor;\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Container = function (_Parchment$Container) {\n _inherits(Container, _Parchment$Container);\n\n function Container() {\n _classCallCheck(this, Container);\n\n return _possibleConstructorReturn(this, (Container.__proto__ || Object.getPrototypeOf(Container)).apply(this, arguments));\n }\n\n return Container;\n}(_parchment2.default.Container);\n\nContainer.allowedChildren = [_block2.default, _block.BlockEmbed, Container];\n\nexports.default = Container;\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ColorStyle = exports.ColorClass = exports.ColorAttributor = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorAttributor = function (_Parchment$Attributor) {\n _inherits(ColorAttributor, _Parchment$Attributor);\n\n function ColorAttributor() {\n _classCallCheck(this, ColorAttributor);\n\n return _possibleConstructorReturn(this, (ColorAttributor.__proto__ || Object.getPrototypeOf(ColorAttributor)).apply(this, arguments));\n }\n\n _createClass(ColorAttributor, [{\n key: 'value',\n value: function value(domNode) {\n var value = _get(ColorAttributor.prototype.__proto__ || Object.getPrototypeOf(ColorAttributor.prototype), 'value', this).call(this, domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n return '#' + value.split(',').map(function (component) {\n return ('00' + parseInt(component).toString(16)).slice(-2);\n }).join('');\n }\n }]);\n\n return ColorAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar ColorClass = new _parchment2.default.Attributor.Class('color', 'ql-color', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar ColorStyle = new ColorAttributor('color', 'color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.ColorAttributor = ColorAttributor;\nexports.ColorClass = ColorClass;\nexports.ColorStyle = ColorStyle;\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.sanitize = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Link = function (_Inline) {\n _inherits(Link, _Inline);\n\n function Link() {\n _classCallCheck(this, Link);\n\n return _possibleConstructorReturn(this, (Link.__proto__ || Object.getPrototypeOf(Link)).apply(this, arguments));\n }\n\n _createClass(Link, [{\n key: 'format',\n value: function format(name, value) {\n if (name !== this.statics.blotName || !value) return _get(Link.prototype.__proto__ || Object.getPrototypeOf(Link.prototype), 'format', this).call(this, name, value);\n value = this.constructor.sanitize(value);\n this.domNode.setAttribute('href', value);\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Link.__proto__ || Object.getPrototypeOf(Link), 'create', this).call(this, value);\n value = this.sanitize(value);\n node.setAttribute('href', value);\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return domNode.getAttribute('href');\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n }]);\n\n return Link;\n}(_inline2.default);\n\nLink.blotName = 'link';\nLink.tagName = 'A';\nLink.SANITIZED_URL = 'about:blank';\nLink.PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel'];\n\nfunction _sanitize(url, protocols) {\n var anchor = document.createElement('a');\n anchor.href = url;\n var protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\n\nexports.default = Link;\nexports.sanitize = _sanitize;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _dropdown = __webpack_require__(107);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar optionsCounter = 0;\n\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, !(element.getAttribute(attribute) === 'true'));\n}\n\nvar Picker = function () {\n function Picker(select) {\n var _this = this;\n\n _classCallCheck(this, Picker);\n\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n this.select.parentNode.insertBefore(this.container, this.select);\n\n this.label.addEventListener('mousedown', function () {\n _this.togglePicker();\n });\n this.label.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to open the picker\n case _keyboard2.default.keys.ENTER:\n _this.togglePicker();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n\n _createClass(Picker, [{\n key: 'togglePicker',\n value: function togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n }, {\n key: 'buildItem',\n value: function buildItem(option) {\n var _this2 = this;\n\n var item = document.createElement('span');\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n\n item.classList.add('ql-picker-item');\n if (option.hasAttribute('value')) {\n item.setAttribute('data-value', option.getAttribute('value'));\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', function () {\n _this2.selectItem(item, true);\n });\n item.addEventListener('keydown', function (event) {\n switch (event.keyCode) {\n // Allows the \"Enter\" key to select an item\n case _keyboard2.default.keys.ENTER:\n _this2.selectItem(item, true);\n event.preventDefault();\n break;\n\n // Allows the \"Escape\" key to close the picker\n case _keyboard2.default.keys.ESCAPE:\n _this2.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n\n return item;\n }\n }, {\n key: 'buildLabel',\n value: function buildLabel() {\n var label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = _dropdown2.default;\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n }, {\n key: 'buildOptions',\n value: function buildOptions() {\n var _this3 = this;\n\n var options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = 'ql-picker-options-' + optionsCounter;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n this.options = options;\n\n [].slice.call(this.select.options).forEach(function (option) {\n var item = _this3.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n _this3.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n }, {\n key: 'buildPicker',\n value: function buildPicker() {\n var _this4 = this;\n\n [].slice.call(this.select.attributes).forEach(function (item) {\n _this4.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n }, {\n key: 'escape',\n value: function escape() {\n var _this5 = this;\n\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(function () {\n return _this5.label.focus();\n }, 1);\n }\n }, {\n key: 'close',\n value: function close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n this.options.setAttribute('aria-hidden', 'true');\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item) {\n var trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n this.select.selectedIndex = [].indexOf.call(item.parentNode.children, item);\n if (item.hasAttribute('data-value')) {\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n if (typeof Event === 'function') {\n this.select.dispatchEvent(new Event('change'));\n } else if ((typeof Event === 'undefined' ? 'undefined' : _typeof(Event)) === 'object') {\n // IE11\n var event = document.createEvent('Event');\n event.initEvent('change', true, true);\n this.select.dispatchEvent(event);\n }\n this.close();\n }\n }\n }, {\n key: 'update',\n value: function update() {\n var option = void 0;\n if (this.select.selectedIndex > -1) {\n var item = this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n var isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n }]);\n\n return Picker;\n}();\n\nexports.default = Picker;\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _break = __webpack_require__(16);\n\nvar _break2 = _interopRequireDefault(_break);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nvar _cursor = __webpack_require__(24);\n\nvar _cursor2 = _interopRequireDefault(_cursor);\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nvar _scroll = __webpack_require__(22);\n\nvar _scroll2 = _interopRequireDefault(_scroll);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nvar _clipboard = __webpack_require__(55);\n\nvar _clipboard2 = _interopRequireDefault(_clipboard);\n\nvar _history = __webpack_require__(42);\n\nvar _history2 = _interopRequireDefault(_history);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_quill2.default.register({\n 'blots/block': _block2.default,\n 'blots/block/embed': _block.BlockEmbed,\n 'blots/break': _break2.default,\n 'blots/container': _container2.default,\n 'blots/cursor': _cursor2.default,\n 'blots/embed': _embed2.default,\n 'blots/inline': _inline2.default,\n 'blots/scroll': _scroll2.default,\n 'blots/text': _text2.default,\n\n 'modules/clipboard': _clipboard2.default,\n 'modules/history': _history2.default,\n 'modules/keyboard': _keyboard2.default\n});\n\n_parchment2.default.register(_block2.default, _break2.default, _cursor2.default, _inline2.default, _scroll2.default, _text2.default);\n\nexports.default = _quill2.default;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Registry = __webpack_require__(1);\nvar ShadowBlot = /** @class */ (function () {\n function ShadowBlot(domNode) {\n this.domNode = domNode;\n // @ts-ignore\n this.domNode[Registry.DATA_KEY] = { blot: this };\n }\n Object.defineProperty(ShadowBlot.prototype, \"statics\", {\n // Hack for accessing inherited static methods\n get: function () {\n return this.constructor;\n },\n enumerable: true,\n configurable: true\n });\n ShadowBlot.create = function (value) {\n if (this.tagName == null) {\n throw new Registry.ParchmentError('Blot definition missing tagName');\n }\n var node;\n if (Array.isArray(this.tagName)) {\n if (typeof value === 'string') {\n value = value.toUpperCase();\n if (parseInt(value).toString() === value) {\n value = parseInt(value);\n }\n }\n if (typeof value === 'number') {\n node = document.createElement(this.tagName[value - 1]);\n }\n else if (this.tagName.indexOf(value) > -1) {\n node = document.createElement(value);\n }\n else {\n node = document.createElement(this.tagName[0]);\n }\n }\n else {\n node = document.createElement(this.tagName);\n }\n if (this.className) {\n node.classList.add(this.className);\n }\n return node;\n };\n ShadowBlot.prototype.attach = function () {\n if (this.parent != null) {\n this.scroll = this.parent.scroll;\n }\n };\n ShadowBlot.prototype.clone = function () {\n var domNode = this.domNode.cloneNode(false);\n return Registry.create(domNode);\n };\n ShadowBlot.prototype.detach = function () {\n if (this.parent != null)\n this.parent.removeChild(this);\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY];\n };\n ShadowBlot.prototype.deleteAt = function (index, length) {\n var blot = this.isolate(index, length);\n blot.remove();\n };\n ShadowBlot.prototype.formatAt = function (index, length, name, value) {\n var blot = this.isolate(index, length);\n if (Registry.query(name, Registry.Scope.BLOT) != null && value) {\n blot.wrap(name, value);\n }\n else if (Registry.query(name, Registry.Scope.ATTRIBUTE) != null) {\n var parent = Registry.create(this.statics.scope);\n blot.wrap(parent);\n parent.format(name, value);\n }\n };\n ShadowBlot.prototype.insertAt = function (index, value, def) {\n var blot = def == null ? Registry.create('text', value) : Registry.create(value, def);\n var ref = this.split(index);\n this.parent.insertBefore(blot, ref);\n };\n ShadowBlot.prototype.insertInto = function (parentBlot, refBlot) {\n if (refBlot === void 0) { refBlot = null; }\n if (this.parent != null) {\n this.parent.children.remove(this);\n }\n var refDomNode = null;\n parentBlot.children.insertBefore(this, refBlot);\n if (refBlot != null) {\n refDomNode = refBlot.domNode;\n }\n if (this.domNode.parentNode != parentBlot.domNode ||\n this.domNode.nextSibling != refDomNode) {\n parentBlot.domNode.insertBefore(this.domNode, refDomNode);\n }\n this.parent = parentBlot;\n this.attach();\n };\n ShadowBlot.prototype.isolate = function (index, length) {\n var target = this.split(index);\n target.split(length);\n return target;\n };\n ShadowBlot.prototype.length = function () {\n return 1;\n };\n ShadowBlot.prototype.offset = function (root) {\n if (root === void 0) { root = this.parent; }\n if (this.parent == null || this == root)\n return 0;\n return this.parent.children.offset(this) + this.parent.offset(root);\n };\n ShadowBlot.prototype.optimize = function (context) {\n // TODO clean up once we use WeakMap\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY] != null) {\n // @ts-ignore\n delete this.domNode[Registry.DATA_KEY].mutations;\n }\n };\n ShadowBlot.prototype.remove = function () {\n if (this.domNode.parentNode != null) {\n this.domNode.parentNode.removeChild(this.domNode);\n }\n this.detach();\n };\n ShadowBlot.prototype.replace = function (target) {\n if (target.parent == null)\n return;\n target.parent.insertBefore(this, target.next);\n target.remove();\n };\n ShadowBlot.prototype.replaceWith = function (name, value) {\n var replacement = typeof name === 'string' ? Registry.create(name, value) : name;\n replacement.replace(this);\n return replacement;\n };\n ShadowBlot.prototype.split = function (index, force) {\n return index === 0 ? this : this.next;\n };\n ShadowBlot.prototype.update = function (mutations, context) {\n // Nothing to do by default\n };\n ShadowBlot.prototype.wrap = function (name, value) {\n var wrapper = typeof name === 'string' ? Registry.create(name, value) : name;\n if (this.parent != null) {\n this.parent.insertBefore(wrapper, this.next);\n }\n wrapper.appendChild(this);\n return wrapper;\n };\n ShadowBlot.blotName = 'abstract';\n return ShadowBlot;\n}());\nexports.default = ShadowBlot;\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nvar class_1 = __webpack_require__(32);\nvar style_1 = __webpack_require__(33);\nvar Registry = __webpack_require__(1);\nvar AttributorStore = /** @class */ (function () {\n function AttributorStore(domNode) {\n this.attributes = {};\n this.domNode = domNode;\n this.build();\n }\n AttributorStore.prototype.attribute = function (attribute, value) {\n // verb\n if (value) {\n if (attribute.add(this.domNode, value)) {\n if (attribute.value(this.domNode) != null) {\n this.attributes[attribute.attrName] = attribute;\n }\n else {\n delete this.attributes[attribute.attrName];\n }\n }\n }\n else {\n attribute.remove(this.domNode);\n delete this.attributes[attribute.attrName];\n }\n };\n AttributorStore.prototype.build = function () {\n var _this = this;\n this.attributes = {};\n var attributes = attributor_1.default.keys(this.domNode);\n var classes = class_1.default.keys(this.domNode);\n var styles = style_1.default.keys(this.domNode);\n attributes\n .concat(classes)\n .concat(styles)\n .forEach(function (name) {\n var attr = Registry.query(name, Registry.Scope.ATTRIBUTE);\n if (attr instanceof attributor_1.default) {\n _this.attributes[attr.attrName] = attr;\n }\n });\n };\n AttributorStore.prototype.copy = function (target) {\n var _this = this;\n Object.keys(this.attributes).forEach(function (key) {\n var value = _this.attributes[key].value(_this.domNode);\n target.format(key, value);\n });\n };\n AttributorStore.prototype.move = function (target) {\n var _this = this;\n this.copy(target);\n Object.keys(this.attributes).forEach(function (key) {\n _this.attributes[key].remove(_this.domNode);\n });\n this.attributes = {};\n };\n AttributorStore.prototype.values = function () {\n var _this = this;\n return Object.keys(this.attributes).reduce(function (attributes, name) {\n attributes[name] = _this.attributes[name].value(_this.domNode);\n return attributes;\n }, {});\n };\n return AttributorStore;\n}());\nexports.default = AttributorStore;\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction match(node, prefix) {\n var className = node.getAttribute('class') || '';\n return className.split(/\\s+/).filter(function (name) {\n return name.indexOf(prefix + \"-\") === 0;\n });\n}\nvar ClassAttributor = /** @class */ (function (_super) {\n __extends(ClassAttributor, _super);\n function ClassAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ClassAttributor.keys = function (node) {\n return (node.getAttribute('class') || '').split(/\\s+/).map(function (name) {\n return name\n .split('-')\n .slice(0, -1)\n .join('-');\n });\n };\n ClassAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n this.remove(node);\n node.classList.add(this.keyName + \"-\" + value);\n return true;\n };\n ClassAttributor.prototype.remove = function (node) {\n var matches = match(node, this.keyName);\n matches.forEach(function (name) {\n node.classList.remove(name);\n });\n if (node.classList.length === 0) {\n node.removeAttribute('class');\n }\n };\n ClassAttributor.prototype.value = function (node) {\n var result = match(node, this.keyName)[0] || '';\n var value = result.slice(this.keyName.length + 1); // +1 for hyphen\n return this.canAdd(node, value) ? value : '';\n };\n return ClassAttributor;\n}(attributor_1.default));\nexports.default = ClassAttributor;\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar attributor_1 = __webpack_require__(12);\nfunction camelize(name) {\n var parts = name.split('-');\n var rest = parts\n .slice(1)\n .map(function (part) {\n return part[0].toUpperCase() + part.slice(1);\n })\n .join('');\n return parts[0] + rest;\n}\nvar StyleAttributor = /** @class */ (function (_super) {\n __extends(StyleAttributor, _super);\n function StyleAttributor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StyleAttributor.keys = function (node) {\n return (node.getAttribute('style') || '').split(';').map(function (value) {\n var arr = value.split(':');\n return arr[0].trim();\n });\n };\n StyleAttributor.prototype.add = function (node, value) {\n if (!this.canAdd(node, value))\n return false;\n // @ts-ignore\n node.style[camelize(this.keyName)] = value;\n return true;\n };\n StyleAttributor.prototype.remove = function (node) {\n // @ts-ignore\n node.style[camelize(this.keyName)] = '';\n if (!node.getAttribute('style')) {\n node.removeAttribute('style');\n }\n };\n StyleAttributor.prototype.value = function (node) {\n // @ts-ignore\n var value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : '';\n };\n return StyleAttributor;\n}(attributor_1.default));\nexports.default = StyleAttributor;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Theme = function () {\n function Theme(quill, options) {\n _classCallCheck(this, Theme);\n\n this.quill = quill;\n this.options = options;\n this.modules = {};\n }\n\n _createClass(Theme, [{\n key: 'init',\n value: function init() {\n var _this = this;\n\n Object.keys(this.options.modules).forEach(function (name) {\n if (_this.modules[name] == null) {\n _this.addModule(name);\n }\n });\n }\n }, {\n key: 'addModule',\n value: function addModule(name) {\n var moduleClass = this.quill.constructor.import('modules/' + name);\n this.modules[name] = new moduleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n }]);\n\n return Theme;\n}();\n\nTheme.DEFAULTS = {\n modules: {}\n};\nTheme.themes = {\n 'default': Theme\n};\n\nexports.default = Theme;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _text = __webpack_require__(7);\n\nvar _text2 = _interopRequireDefault(_text);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar GUARD_TEXT = '\\uFEFF';\n\nvar Embed = function (_Parchment$Embed) {\n _inherits(Embed, _Parchment$Embed);\n\n function Embed(node) {\n _classCallCheck(this, Embed);\n\n var _this = _possibleConstructorReturn(this, (Embed.__proto__ || Object.getPrototypeOf(Embed)).call(this, node));\n\n _this.contentNode = document.createElement('span');\n _this.contentNode.setAttribute('contenteditable', false);\n [].slice.call(_this.domNode.childNodes).forEach(function (childNode) {\n _this.contentNode.appendChild(childNode);\n });\n _this.leftGuard = document.createTextNode(GUARD_TEXT);\n _this.rightGuard = document.createTextNode(GUARD_TEXT);\n _this.domNode.appendChild(_this.leftGuard);\n _this.domNode.appendChild(_this.contentNode);\n _this.domNode.appendChild(_this.rightGuard);\n return _this;\n }\n\n _createClass(Embed, [{\n key: 'index',\n value: function index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return _get(Embed.prototype.__proto__ || Object.getPrototypeOf(Embed.prototype), 'index', this).call(this, node, offset);\n }\n }, {\n key: 'restore',\n value: function restore(node) {\n var range = void 0,\n textNode = void 0;\n var text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof _text2.default) {\n var prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof _text2.default) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(_parchment2.default.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n }, {\n key: 'update',\n value: function update(mutations, context) {\n var _this2 = this;\n\n mutations.forEach(function (mutation) {\n if (mutation.type === 'characterData' && (mutation.target === _this2.leftGuard || mutation.target === _this2.rightGuard)) {\n var range = _this2.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n }]);\n\n return Embed;\n}(_parchment2.default.Embed);\n\nexports.default = Embed;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.AlignStyle = exports.AlignClass = exports.AlignAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\n\nvar AlignAttribute = new _parchment2.default.Attributor.Attribute('align', 'align', config);\nvar AlignClass = new _parchment2.default.Attributor.Class('align', 'ql-align', config);\nvar AlignStyle = new _parchment2.default.Attributor.Style('align', 'text-align', config);\n\nexports.AlignAttribute = AlignAttribute;\nexports.AlignClass = AlignClass;\nexports.AlignStyle = AlignStyle;\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BackgroundStyle = exports.BackgroundClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _color = __webpack_require__(26);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BackgroundClass = new _parchment2.default.Attributor.Class('background', 'ql-bg', {\n scope: _parchment2.default.Scope.INLINE\n});\nvar BackgroundStyle = new _color.ColorAttributor('background', 'background-color', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nexports.BackgroundClass = BackgroundClass;\nexports.BackgroundStyle = BackgroundStyle;\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DirectionStyle = exports.DirectionClass = exports.DirectionAttribute = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar config = {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: ['rtl']\n};\n\nvar DirectionAttribute = new _parchment2.default.Attributor.Attribute('direction', 'dir', config);\nvar DirectionClass = new _parchment2.default.Attributor.Class('direction', 'ql-direction', config);\nvar DirectionStyle = new _parchment2.default.Attributor.Style('direction', 'direction', config);\n\nexports.DirectionAttribute = DirectionAttribute;\nexports.DirectionClass = DirectionClass;\nexports.DirectionStyle = DirectionStyle;\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontClass = exports.FontStyle = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar config = {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\n\nvar FontClass = new _parchment2.default.Attributor.Class('font', 'ql-font', config);\n\nvar FontStyleAttributor = function (_Parchment$Attributor) {\n _inherits(FontStyleAttributor, _Parchment$Attributor);\n\n function FontStyleAttributor() {\n _classCallCheck(this, FontStyleAttributor);\n\n return _possibleConstructorReturn(this, (FontStyleAttributor.__proto__ || Object.getPrototypeOf(FontStyleAttributor)).apply(this, arguments));\n }\n\n _createClass(FontStyleAttributor, [{\n key: 'value',\n value: function value(node) {\n return _get(FontStyleAttributor.prototype.__proto__ || Object.getPrototypeOf(FontStyleAttributor.prototype), 'value', this).call(this, node).replace(/[\"']/g, '');\n }\n }]);\n\n return FontStyleAttributor;\n}(_parchment2.default.Attributor.Style);\n\nvar FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\nexports.FontStyle = FontStyle;\nexports.FontClass = FontClass;\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SizeStyle = exports.SizeClass = undefined;\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SizeClass = new _parchment2.default.Attributor.Class('size', 'ql-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nvar SizeStyle = new _parchment2.default.Attributor.Style('size', 'font-size', {\n scope: _parchment2.default.Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\n\nexports.SizeClass = SizeClass;\nexports.SizeStyle = SizeStyle;\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {\n 'align': {\n '': __webpack_require__(76),\n 'center': __webpack_require__(77),\n 'right': __webpack_require__(78),\n 'justify': __webpack_require__(79)\n },\n 'background': __webpack_require__(80),\n 'blockquote': __webpack_require__(81),\n 'bold': __webpack_require__(82),\n 'clean': __webpack_require__(83),\n 'code': __webpack_require__(58),\n 'code-block': __webpack_require__(58),\n 'color': __webpack_require__(84),\n 'direction': {\n '': __webpack_require__(85),\n 'rtl': __webpack_require__(86)\n },\n 'float': {\n 'center': __webpack_require__(87),\n 'full': __webpack_require__(88),\n 'left': __webpack_require__(89),\n 'right': __webpack_require__(90)\n },\n 'formula': __webpack_require__(91),\n 'header': {\n '1': __webpack_require__(92),\n '2': __webpack_require__(93)\n },\n 'italic': __webpack_require__(94),\n 'image': __webpack_require__(95),\n 'indent': {\n '+1': __webpack_require__(96),\n '-1': __webpack_require__(97)\n },\n 'link': __webpack_require__(98),\n 'list': {\n 'ordered': __webpack_require__(99),\n 'bullet': __webpack_require__(100),\n 'check': __webpack_require__(101)\n },\n 'script': {\n 'sub': __webpack_require__(102),\n 'super': __webpack_require__(103)\n },\n 'strike': __webpack_require__(104),\n 'underline': __webpack_require__(105),\n 'video': __webpack_require__(106)\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLastChangeIndex = exports.default = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar History = function (_Module) {\n _inherits(History, _Module);\n\n function History(quill, options) {\n _classCallCheck(this, History);\n\n var _this = _possibleConstructorReturn(this, (History.__proto__ || Object.getPrototypeOf(History)).call(this, quill, options));\n\n _this.lastRecorded = 0;\n _this.ignoreChange = false;\n _this.clear();\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (eventName, delta, oldDelta, source) {\n if (eventName !== _quill2.default.events.TEXT_CHANGE || _this.ignoreChange) return;\n if (!_this.options.userOnly || source === _quill2.default.sources.USER) {\n _this.record(delta, oldDelta);\n } else {\n _this.transform(delta);\n }\n });\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true }, _this.undo.bind(_this));\n _this.quill.keyboard.addBinding({ key: 'Z', shortKey: true, shiftKey: true }, _this.redo.bind(_this));\n if (/Win/i.test(navigator.platform)) {\n _this.quill.keyboard.addBinding({ key: 'Y', shortKey: true }, _this.redo.bind(_this));\n }\n return _this;\n }\n\n _createClass(History, [{\n key: 'change',\n value: function change(source, dest) {\n if (this.stack[source].length === 0) return;\n var delta = this.stack[source].pop();\n this.stack[dest].push(delta);\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(delta[source], _quill2.default.sources.USER);\n this.ignoreChange = false;\n var index = getLastChangeIndex(delta[source]);\n this.quill.setSelection(index);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.stack = { undo: [], redo: [] };\n }\n }, {\n key: 'cutoff',\n value: function cutoff() {\n this.lastRecorded = 0;\n }\n }, {\n key: 'record',\n value: function record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n var undoDelta = this.quill.getContents().diff(oldDelta);\n var timestamp = Date.now();\n if (this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n var delta = this.stack.undo.pop();\n undoDelta = undoDelta.compose(delta.undo);\n changeDelta = delta.redo.compose(changeDelta);\n } else {\n this.lastRecorded = timestamp;\n }\n this.stack.undo.push({\n redo: changeDelta,\n undo: undoDelta\n });\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n }, {\n key: 'redo',\n value: function redo() {\n this.change('redo', 'undo');\n }\n }, {\n key: 'transform',\n value: function transform(delta) {\n this.stack.undo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n this.stack.redo.forEach(function (change) {\n change.undo = delta.transform(change.undo, true);\n change.redo = delta.transform(change.redo, true);\n });\n }\n }, {\n key: 'undo',\n value: function undo() {\n this.change('undo', 'redo');\n }\n }]);\n\n return History;\n}(_module2.default);\n\nHistory.DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n};\n\nfunction endsWithNewlineChange(delta) {\n var lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(function (attr) {\n return _parchment2.default.query(attr, _parchment2.default.Scope.BLOCK) != null;\n });\n }\n return false;\n}\n\nfunction getLastChangeIndex(delta) {\n var deleteLength = delta.reduce(function (length, op) {\n length += op.delete || 0;\n return length;\n }, 0);\n var changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\n\nexports.default = History;\nexports.getLastChangeIndex = getLastChangeIndex;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BaseTooltip = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _keyboard = __webpack_require__(23);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nvar _theme = __webpack_require__(34);\n\nvar _theme2 = _interopRequireDefault(_theme);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ALIGNS = [false, 'center', 'right', 'justify'];\n\nvar COLORS = [\"#000000\", \"#e60000\", \"#ff9900\", \"#ffff00\", \"#008a00\", \"#0066cc\", \"#9933ff\", \"#ffffff\", \"#facccc\", \"#ffebcc\", \"#ffffcc\", \"#cce8cc\", \"#cce0f5\", \"#ebd6ff\", \"#bbbbbb\", \"#f06666\", \"#ffc266\", \"#ffff66\", \"#66b966\", \"#66a3e0\", \"#c285ff\", \"#888888\", \"#a10000\", \"#b26b00\", \"#b2b200\", \"#006100\", \"#0047b2\", \"#6b24b2\", \"#444444\", \"#5c0000\", \"#663d00\", \"#666600\", \"#003700\", \"#002966\", \"#3d1466\"];\n\nvar FONTS = [false, 'serif', 'monospace'];\n\nvar HEADERS = ['1', '2', '3', false];\n\nvar SIZES = ['small', false, 'large', 'huge'];\n\nvar BaseTheme = function (_Theme) {\n _inherits(BaseTheme, _Theme);\n\n function BaseTheme(quill, options) {\n _classCallCheck(this, BaseTheme);\n\n var _this = _possibleConstructorReturn(this, (BaseTheme.__proto__ || Object.getPrototypeOf(BaseTheme)).call(this, quill, options));\n\n var listener = function listener(e) {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener('click', listener);\n }\n if (_this.tooltip != null && !_this.tooltip.root.contains(e.target) && document.activeElement !== _this.tooltip.textbox && !_this.quill.hasFocus()) {\n _this.tooltip.hide();\n }\n if (_this.pickers != null) {\n _this.pickers.forEach(function (picker) {\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n return _this;\n }\n\n _createClass(BaseTheme, [{\n key: 'addModule',\n value: function addModule(name) {\n var module = _get(BaseTheme.prototype.__proto__ || Object.getPrototypeOf(BaseTheme.prototype), 'addModule', this).call(this, name);\n if (name === 'toolbar') {\n this.extendToolbar(module);\n }\n return module;\n }\n }, {\n key: 'buildButtons',\n value: function buildButtons(buttons, icons) {\n buttons.forEach(function (button) {\n var className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(function (name) {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n button.innerHTML = icons[name][''] + icons[name]['rtl'];\n } else if (typeof icons[name] === 'string') {\n button.innerHTML = icons[name];\n } else {\n var value = button.value || '';\n if (value != null && icons[name][value]) {\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n }, {\n key: 'buildPickers',\n value: function buildPickers(selects, icons) {\n var _this2 = this;\n\n this.pickers = selects.map(function (select) {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n return new _iconPicker2.default(select, icons.align);\n } else if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n var format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new _colorPicker2.default(select, icons[format]);\n } else {\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new _picker2.default(select);\n }\n });\n var update = function update() {\n _this2.pickers.forEach(function (picker) {\n picker.update();\n });\n };\n this.quill.on(_emitter2.default.events.EDITOR_CHANGE, update);\n }\n }]);\n\n return BaseTheme;\n}(_theme2.default);\n\nBaseTheme.DEFAULTS = (0, _extend2.default)(true, {}, _theme2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula: function formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image: function image() {\n var _this3 = this;\n\n var fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon');\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', function () {\n if (fileInput.files != null && fileInput.files[0] != null) {\n var reader = new FileReader();\n reader.onload = function (e) {\n var range = _this3.quill.getSelection(true);\n _this3.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert({ image: e.target.result }), _emitter2.default.sources.USER);\n _this3.quill.setSelection(range.index + 1, _emitter2.default.sources.SILENT);\n fileInput.value = \"\";\n };\n reader.readAsDataURL(fileInput.files[0]);\n }\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video: function video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\n\nvar BaseTooltip = function (_Tooltip) {\n _inherits(BaseTooltip, _Tooltip);\n\n function BaseTooltip(quill, boundsContainer) {\n _classCallCheck(this, BaseTooltip);\n\n var _this4 = _possibleConstructorReturn(this, (BaseTooltip.__proto__ || Object.getPrototypeOf(BaseTooltip)).call(this, quill, boundsContainer));\n\n _this4.textbox = _this4.root.querySelector('input[type=\"text\"]');\n _this4.listen();\n return _this4;\n }\n\n _createClass(BaseTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this5 = this;\n\n this.textbox.addEventListener('keydown', function (event) {\n if (_keyboard2.default.match(event, 'enter')) {\n _this5.save();\n event.preventDefault();\n } else if (_keyboard2.default.match(event, 'escape')) {\n _this5.cancel();\n event.preventDefault();\n }\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.hide();\n }\n }, {\n key: 'edit',\n value: function edit() {\n var mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n var preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n this.position(this.quill.getBounds(this.quill.selection.savedRange));\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute('data-' + mode) || '');\n this.root.setAttribute('data-mode', mode);\n }\n }, {\n key: 'restoreFocus',\n value: function restoreFocus() {\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.quill.focus();\n this.quill.scrollingContainer.scrollTop = scrollTop;\n }\n }, {\n key: 'save',\n value: function save() {\n var value = this.textbox.value;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n var scrollTop = this.quill.root.scrollTop;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, _emitter2.default.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, _emitter2.default.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n } // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n var range = this.quill.getSelection(true);\n if (range != null) {\n var index = range.index + range.length;\n this.quill.insertEmbed(index, this.root.getAttribute('data-mode'), value, _emitter2.default.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', _emitter2.default.sources.USER);\n }\n this.quill.setSelection(index + 2, _emitter2.default.sources.USER);\n }\n break;\n }\n default:\n }\n this.textbox.value = '';\n this.hide();\n }\n }]);\n\n return BaseTooltip;\n}(_tooltip2.default);\n\nfunction extractVideoUrl(url) {\n var match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return (match[1] || 'https') + '://www.youtube.com/embed/' + match[2] + '?showinfo=0';\n }\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n // eslint-disable-line no-cond-assign\n return (match[1] || 'https') + '://player.vimeo.com/video/' + match[2] + '/';\n }\n return url;\n}\n\nfunction fillSelect(select, values) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', value);\n }\n select.appendChild(option);\n });\n}\n\nexports.BaseTooltip = BaseTooltip;\nexports.default = BaseTheme;\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedList = /** @class */ (function () {\n function LinkedList() {\n this.head = this.tail = null;\n this.length = 0;\n }\n LinkedList.prototype.append = function () {\n var nodes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nodes[_i] = arguments[_i];\n }\n this.insertBefore(nodes[0], null);\n if (nodes.length > 1) {\n this.append.apply(this, nodes.slice(1));\n }\n };\n LinkedList.prototype.contains = function (node) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n if (cur === node)\n return true;\n }\n return false;\n };\n LinkedList.prototype.insertBefore = function (node, refNode) {\n if (!node)\n return;\n node.next = refNode;\n if (refNode != null) {\n node.prev = refNode.prev;\n if (refNode.prev != null) {\n refNode.prev.next = node;\n }\n refNode.prev = node;\n if (refNode === this.head) {\n this.head = node;\n }\n }\n else if (this.tail != null) {\n this.tail.next = node;\n node.prev = this.tail;\n this.tail = node;\n }\n else {\n node.prev = null;\n this.head = this.tail = node;\n }\n this.length += 1;\n };\n LinkedList.prototype.offset = function (target) {\n var index = 0, cur = this.head;\n while (cur != null) {\n if (cur === target)\n return index;\n index += cur.length();\n cur = cur.next;\n }\n return -1;\n };\n LinkedList.prototype.remove = function (node) {\n if (!this.contains(node))\n return;\n if (node.prev != null)\n node.prev.next = node.next;\n if (node.next != null)\n node.next.prev = node.prev;\n if (node === this.head)\n this.head = node.next;\n if (node === this.tail)\n this.tail = node.prev;\n this.length -= 1;\n };\n LinkedList.prototype.iterator = function (curNode) {\n if (curNode === void 0) { curNode = this.head; }\n // TODO use yield when we can\n return function () {\n var ret = curNode;\n if (curNode != null)\n curNode = curNode.next;\n return ret;\n };\n };\n LinkedList.prototype.find = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n var cur, next = this.iterator();\n while ((cur = next())) {\n var length = cur.length();\n if (index < length ||\n (inclusive && index === length && (cur.next == null || cur.next.length() !== 0))) {\n return [cur, index];\n }\n index -= length;\n }\n return [null, 0];\n };\n LinkedList.prototype.forEach = function (callback) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n callback(cur);\n }\n };\n LinkedList.prototype.forEachAt = function (index, length, callback) {\n if (length <= 0)\n return;\n var _a = this.find(index), startNode = _a[0], offset = _a[1];\n var cur, curIndex = index - offset, next = this.iterator(startNode);\n while ((cur = next()) && curIndex < index + length) {\n var curLength = cur.length();\n if (index > curIndex) {\n callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index));\n }\n else {\n callback(cur, 0, Math.min(curLength, index + length - curIndex));\n }\n curIndex += curLength;\n }\n };\n LinkedList.prototype.map = function (callback) {\n return this.reduce(function (memo, cur) {\n memo.push(callback(cur));\n return memo;\n }, []);\n };\n LinkedList.prototype.reduce = function (callback, memo) {\n var cur, next = this.iterator();\n while ((cur = next())) {\n memo = callback(memo, cur);\n }\n return memo;\n };\n return LinkedList;\n}());\nexports.default = LinkedList;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar container_1 = __webpack_require__(17);\nvar Registry = __webpack_require__(1);\nvar OBSERVER_CONFIG = {\n attributes: true,\n characterData: true,\n characterDataOldValue: true,\n childList: true,\n subtree: true,\n};\nvar MAX_OPTIMIZE_ITERATIONS = 100;\nvar ScrollBlot = /** @class */ (function (_super) {\n __extends(ScrollBlot, _super);\n function ScrollBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.scroll = _this;\n _this.observer = new MutationObserver(function (mutations) {\n _this.update(mutations);\n });\n _this.observer.observe(_this.domNode, OBSERVER_CONFIG);\n _this.attach();\n return _this;\n }\n ScrollBlot.prototype.detach = function () {\n _super.prototype.detach.call(this);\n this.observer.disconnect();\n };\n ScrollBlot.prototype.deleteAt = function (index, length) {\n this.update();\n if (index === 0 && length === this.length()) {\n this.children.forEach(function (child) {\n child.remove();\n });\n }\n else {\n _super.prototype.deleteAt.call(this, index, length);\n }\n };\n ScrollBlot.prototype.formatAt = function (index, length, name, value) {\n this.update();\n _super.prototype.formatAt.call(this, index, length, name, value);\n };\n ScrollBlot.prototype.insertAt = function (index, value, def) {\n this.update();\n _super.prototype.insertAt.call(this, index, value, def);\n };\n ScrollBlot.prototype.optimize = function (mutations, context) {\n var _this = this;\n if (mutations === void 0) { mutations = []; }\n if (context === void 0) { context = {}; }\n _super.prototype.optimize.call(this, context);\n // We must modify mutations directly, cannot make copy and then modify\n var records = [].slice.call(this.observer.takeRecords());\n // Array.push currently seems to be implemented by a non-tail recursive function\n // so we cannot just mutations.push.apply(mutations, this.observer.takeRecords());\n while (records.length > 0)\n mutations.push(records.pop());\n // TODO use WeakMap\n var mark = function (blot, markParent) {\n if (markParent === void 0) { markParent = true; }\n if (blot == null || blot === _this)\n return;\n if (blot.domNode.parentNode == null)\n return;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [];\n }\n if (markParent)\n mark(blot.parent);\n };\n var optimize = function (blot) {\n // Post-order traversal\n if (\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY] == null ||\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations == null) {\n return;\n }\n if (blot instanceof container_1.default) {\n blot.children.forEach(optimize);\n }\n blot.optimize(context);\n };\n var remaining = mutations;\n for (var i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS) {\n throw new Error('[Parchment] Maximum optimize iterations reached');\n }\n remaining.forEach(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return;\n if (blot.domNode === mutation.target) {\n if (mutation.type === 'childList') {\n mark(Registry.find(mutation.previousSibling, false));\n [].forEach.call(mutation.addedNodes, function (node) {\n var child = Registry.find(node, false);\n mark(child, false);\n if (child instanceof container_1.default) {\n child.children.forEach(function (grandChild) {\n mark(grandChild, false);\n });\n }\n });\n }\n else if (mutation.type === 'attributes') {\n mark(blot.prev);\n }\n }\n mark(blot);\n });\n this.children.forEach(optimize);\n remaining = [].slice.call(this.observer.takeRecords());\n records = remaining.slice();\n while (records.length > 0)\n mutations.push(records.pop());\n }\n };\n ScrollBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (context === void 0) { context = {}; }\n mutations = mutations || this.observer.takeRecords();\n // TODO use WeakMap\n mutations\n .map(function (mutation) {\n var blot = Registry.find(mutation.target, true);\n if (blot == null)\n return null;\n // @ts-ignore\n if (blot.domNode[Registry.DATA_KEY].mutations == null) {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations = [mutation];\n return blot;\n }\n else {\n // @ts-ignore\n blot.domNode[Registry.DATA_KEY].mutations.push(mutation);\n return null;\n }\n })\n .forEach(function (blot) {\n if (blot == null ||\n blot === _this ||\n //@ts-ignore\n blot.domNode[Registry.DATA_KEY] == null)\n return;\n // @ts-ignore\n blot.update(blot.domNode[Registry.DATA_KEY].mutations || [], context);\n });\n // @ts-ignore\n if (this.domNode[Registry.DATA_KEY].mutations != null) {\n // @ts-ignore\n _super.prototype.update.call(this, this.domNode[Registry.DATA_KEY].mutations, context);\n }\n this.optimize(mutations, context);\n };\n ScrollBlot.blotName = 'scroll';\n ScrollBlot.defaultChild = 'block';\n ScrollBlot.scope = Registry.Scope.BLOCK_BLOT;\n ScrollBlot.tagName = 'DIV';\n return ScrollBlot;\n}(container_1.default));\nexports.default = ScrollBlot;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\n// Shallow object comparison\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return false;\n // @ts-ignore\n for (var prop in obj1) {\n // @ts-ignore\n if (obj1[prop] !== obj2[prop])\n return false;\n }\n return true;\n}\nvar InlineBlot = /** @class */ (function (_super) {\n __extends(InlineBlot, _super);\n function InlineBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InlineBlot.formats = function (domNode) {\n if (domNode.tagName === InlineBlot.tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n InlineBlot.prototype.format = function (name, value) {\n var _this = this;\n if (name === this.statics.blotName && !value) {\n this.children.forEach(function (child) {\n if (!(child instanceof format_1.default)) {\n child = child.wrap(InlineBlot.blotName, true);\n }\n _this.attributes.copy(child);\n });\n this.unwrap();\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n InlineBlot.prototype.formatAt = function (index, length, name, value) {\n if (this.formats()[name] != null || Registry.query(name, Registry.Scope.ATTRIBUTE)) {\n var blot = this.isolate(index, length);\n blot.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n InlineBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n var formats = this.formats();\n if (Object.keys(formats).length === 0) {\n return this.unwrap(); // unformatted span\n }\n var next = this.next;\n if (next instanceof InlineBlot && next.prev === this && isEqual(formats, next.formats())) {\n next.moveChildren(this);\n next.remove();\n }\n };\n InlineBlot.blotName = 'inline';\n InlineBlot.scope = Registry.Scope.INLINE_BLOT;\n InlineBlot.tagName = 'SPAN';\n return InlineBlot;\n}(format_1.default));\nexports.default = InlineBlot;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar format_1 = __webpack_require__(18);\nvar Registry = __webpack_require__(1);\nvar BlockBlot = /** @class */ (function (_super) {\n __extends(BlockBlot, _super);\n function BlockBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockBlot.formats = function (domNode) {\n var tagName = Registry.query(BlockBlot.blotName).tagName;\n if (domNode.tagName === tagName)\n return undefined;\n return _super.formats.call(this, domNode);\n };\n BlockBlot.prototype.format = function (name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) == null) {\n return;\n }\n else if (name === this.statics.blotName && !value) {\n this.replaceWith(BlockBlot.blotName);\n }\n else {\n _super.prototype.format.call(this, name, value);\n }\n };\n BlockBlot.prototype.formatAt = function (index, length, name, value) {\n if (Registry.query(name, Registry.Scope.BLOCK) != null) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n BlockBlot.prototype.insertAt = function (index, value, def) {\n if (def == null || Registry.query(value, Registry.Scope.INLINE) != null) {\n // Insert text or inline\n _super.prototype.insertAt.call(this, index, value, def);\n }\n else {\n var after = this.split(index);\n var blot = Registry.create(value, def);\n after.parent.insertBefore(blot, after);\n }\n };\n BlockBlot.prototype.update = function (mutations, context) {\n if (navigator.userAgent.match(/Trident/)) {\n this.build();\n }\n else {\n _super.prototype.update.call(this, mutations, context);\n }\n };\n BlockBlot.blotName = 'block';\n BlockBlot.scope = Registry.Scope.BLOCK_BLOT;\n BlockBlot.tagName = 'P';\n return BlockBlot;\n}(format_1.default));\nexports.default = BlockBlot;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar EmbedBlot = /** @class */ (function (_super) {\n __extends(EmbedBlot, _super);\n function EmbedBlot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EmbedBlot.formats = function (domNode) {\n return undefined;\n };\n EmbedBlot.prototype.format = function (name, value) {\n // super.formatAt wraps, which is what we want in general,\n // but this allows subclasses to overwrite for formats\n // that just apply to particular embeds\n _super.prototype.formatAt.call(this, 0, this.length(), name, value);\n };\n EmbedBlot.prototype.formatAt = function (index, length, name, value) {\n if (index === 0 && length === this.length()) {\n this.format(name, value);\n }\n else {\n _super.prototype.formatAt.call(this, index, length, name, value);\n }\n };\n EmbedBlot.prototype.formats = function () {\n return this.statics.formats(this.domNode);\n };\n return EmbedBlot;\n}(leaf_1.default));\nexports.default = EmbedBlot;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar leaf_1 = __webpack_require__(19);\nvar Registry = __webpack_require__(1);\nvar TextBlot = /** @class */ (function (_super) {\n __extends(TextBlot, _super);\n function TextBlot(node) {\n var _this = _super.call(this, node) || this;\n _this.text = _this.statics.value(_this.domNode);\n return _this;\n }\n TextBlot.create = function (value) {\n return document.createTextNode(value);\n };\n TextBlot.value = function (domNode) {\n var text = domNode.data;\n // @ts-ignore\n if (text['normalize'])\n text = text['normalize']();\n return text;\n };\n TextBlot.prototype.deleteAt = function (index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n };\n TextBlot.prototype.index = function (node, offset) {\n if (this.domNode === node) {\n return offset;\n }\n return -1;\n };\n TextBlot.prototype.insertAt = function (index, value, def) {\n if (def == null) {\n this.text = this.text.slice(0, index) + value + this.text.slice(index);\n this.domNode.data = this.text;\n }\n else {\n _super.prototype.insertAt.call(this, index, value, def);\n }\n };\n TextBlot.prototype.length = function () {\n return this.text.length;\n };\n TextBlot.prototype.optimize = function (context) {\n _super.prototype.optimize.call(this, context);\n this.text = this.statics.value(this.domNode);\n if (this.text.length === 0) {\n this.remove();\n }\n else if (this.next instanceof TextBlot && this.next.prev === this) {\n this.insertAt(this.length(), this.next.value());\n this.next.remove();\n }\n };\n TextBlot.prototype.position = function (index, inclusive) {\n if (inclusive === void 0) { inclusive = false; }\n return [this.domNode, index];\n };\n TextBlot.prototype.split = function (index, force) {\n if (force === void 0) { force = false; }\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n var after = Registry.create(this.domNode.splitText(index));\n this.parent.insertBefore(after, this.next);\n this.text = this.statics.value(this.domNode);\n return after;\n };\n TextBlot.prototype.update = function (mutations, context) {\n var _this = this;\n if (mutations.some(function (mutation) {\n return mutation.type === 'characterData' && mutation.target === _this.domNode;\n })) {\n this.text = this.statics.value(this.domNode);\n }\n };\n TextBlot.prototype.value = function () {\n return this.text;\n };\n TextBlot.blotName = 'text';\n TextBlot.scope = Registry.Scope.INLINE_BLOT;\n return TextBlot;\n}(leaf_1.default));\nexports.default = TextBlot;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar elem = document.createElement('div');\nelem.classList.toggle('test-class', false);\nif (elem.classList.contains('test-class')) {\n var _toggle = DOMTokenList.prototype.toggle;\n DOMTokenList.prototype.toggle = function (token, force) {\n if (arguments.length > 1 && !this.contains(token) === !force) {\n return force;\n } else {\n return _toggle.call(this, token);\n }\n };\n}\n\nif (!String.prototype.startsWith) {\n String.prototype.startsWith = function (searchString, position) {\n position = position || 0;\n return this.substr(position, searchString.length) === searchString;\n };\n}\n\nif (!String.prototype.endsWith) {\n String.prototype.endsWith = function (searchString, position) {\n var subjectString = this.toString();\n if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) {\n position = subjectString.length;\n }\n position -= searchString.length;\n var lastIndex = subjectString.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n };\n}\n\nif (!Array.prototype.find) {\n Object.defineProperty(Array.prototype, \"find\", {\n value: function value(predicate) {\n if (this === null) {\n throw new TypeError('Array.prototype.find called on null or undefined');\n }\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n var list = Object(this);\n var length = list.length >>> 0;\n var thisArg = arguments[1];\n var value;\n\n for (var i = 0; i < length; i++) {\n value = list[i];\n if (predicate.call(thisArg, value, i, list)) {\n return value;\n }\n }\n return undefined;\n }\n });\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n // Disable resizing in Firefox\n document.execCommand(\"enableObjectResizing\", false, false);\n // Disable automatic linkifying in IE11\n document.execCommand(\"autoUrlDetect\", false, false);\n});\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int} cursor_pos Expected edit position in text1 (optional)\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos) {\n // Check for equality (speedup).\n if (text1 == text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n // Check cursor_pos within bounds\n if (cursor_pos < 0 || text1.length < cursor_pos) {\n cursor_pos = null;\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs);\n if (cursor_pos != null) {\n diffs = fix_cursor(diffs, cursor_pos);\n }\n diffs = fix_emoji(diffs);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i != -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [[DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length == 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 != 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 == -d || (k1 != d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) == text2.charAt(y1)) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] != -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 == -d || (k2 != d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) ==\n text2.charAt(text2_length - y2 - 1)) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] != -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) != text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 ||\n text1.charAt(text1.length - 1) != text2.charAt(text2.length - 1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) != -1) {\n var prefixLength = diff_commonPrefix(longtext.substring(i),\n shorttext.substring(j));\n var suffixLength = diff_commonSuffix(longtext.substring(0, i),\n shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(j - suffixLength, j) +\n shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext,\n Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n */\nfunction diff_cleanupMerge(diffs) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n // Upon reaching an equality, check for prior redundancies.\n if (count_delete + count_insert > 1) {\n if (count_delete !== 0 && count_insert !== 0) {\n // Factor out any common prefixies.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if ((pointer - count_delete - count_insert) > 0 &&\n diffs[pointer - count_delete - count_insert - 1][0] ==\n DIFF_EQUAL) {\n diffs[pointer - count_delete - count_insert - 1][1] +=\n text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL,\n text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixies.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] = text_insert.substring(text_insert.length -\n commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length -\n commonlength);\n text_delete = text_delete.substring(0, text_delete.length -\n commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n if (count_delete === 0) {\n diffs.splice(pointer - count_insert,\n count_delete + count_insert, [DIFF_INSERT, text_insert]);\n } else if (count_insert === 0) {\n diffs.splice(pointer - count_delete,\n count_delete + count_insert, [DIFF_DELETE, text_delete]);\n } else {\n diffs.splice(pointer - count_delete - count_insert,\n count_delete + count_insert, [DIFF_DELETE, text_delete],\n [DIFF_INSERT, text_insert]);\n }\n pointer = pointer - count_delete - count_insert +\n (count_delete ? 1 : 0) + (count_insert ? 1 : 0) + 1;\n } else if (pointer !== 0 && diffs[pointer - 1][0] == DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] == DIFF_EQUAL &&\n diffs[pointer + 1][0] == DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) == diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs);\n }\n};\n\n\nvar diff = diff_main;\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n\n/*\n * Modify a diff such that the cursor position points to the start of a change:\n * E.g.\n * cursor_normalize_diff([[DIFF_EQUAL, 'abc']], 1)\n * => [1, [[DIFF_EQUAL, 'a'], [DIFF_EQUAL, 'bc']]]\n * cursor_normalize_diff([[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xyz']], 2)\n * => [2, [[DIFF_INSERT, 'new'], [DIFF_DELETE, 'xy'], [DIFF_DELETE, 'z']]]\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} A tuple [cursor location in the modified diff, modified diff]\n */\nfunction cursor_normalize_diff (diffs, cursor_pos) {\n if (cursor_pos === 0) {\n return [DIFF_EQUAL, diffs];\n }\n for (var current_pos = 0, i = 0; i < diffs.length; i++) {\n var d = diffs[i];\n if (d[0] === DIFF_DELETE || d[0] === DIFF_EQUAL) {\n var next_pos = current_pos + d[1].length;\n if (cursor_pos === next_pos) {\n return [i + 1, diffs];\n } else if (cursor_pos < next_pos) {\n // copy to prevent side effects\n diffs = diffs.slice();\n // split d into two diff changes\n var split_pos = cursor_pos - current_pos;\n var d_left = [d[0], d[1].slice(0, split_pos)];\n var d_right = [d[0], d[1].slice(split_pos)];\n diffs.splice(i, 1, d_left, d_right);\n return [i + 1, diffs];\n } else {\n current_pos = next_pos;\n }\n }\n }\n throw new Error('cursor_pos is out of bounds!')\n}\n\n/*\n * Modify a diff such that the edit position is \"shifted\" to the proposed edit location (cursor_position).\n *\n * Case 1)\n * Check if a naive shift is possible:\n * [0, X], [ 1, Y] -> [ 1, Y], [0, X] (if X + Y === Y + X)\n * [0, X], [-1, Y] -> [-1, Y], [0, X] (if X + Y === Y + X) - holds same result\n * Case 2)\n * Check if the following shifts are possible:\n * [0, 'pre'], [ 1, 'prefix'] -> [ 1, 'pre'], [0, 'pre'], [ 1, 'fix']\n * [0, 'pre'], [-1, 'prefix'] -> [-1, 'pre'], [0, 'pre'], [-1, 'fix']\n * ^ ^\n * d d_next\n *\n * @param {Array} diffs Array of diff tuples\n * @param {Int} cursor_pos Suggested edit position. Must not be out of bounds!\n * @return {Array} Array of diff tuples\n */\nfunction fix_cursor (diffs, cursor_pos) {\n var norm = cursor_normalize_diff(diffs, cursor_pos);\n var ndiffs = norm[1];\n var cursor_pointer = norm[0];\n var d = ndiffs[cursor_pointer];\n var d_next = ndiffs[cursor_pointer + 1];\n\n if (d == null) {\n // Text was deleted from end of original string,\n // cursor is now out of bounds in new string\n return diffs;\n } else if (d[0] !== DIFF_EQUAL) {\n // A modification happened at the cursor location.\n // This is the expected outcome, so we can return the original diff.\n return diffs;\n } else {\n if (d_next != null && d[1] + d_next[1] === d_next[1] + d[1]) {\n // Case 1)\n // It is possible to perform a naive shift\n ndiffs.splice(cursor_pointer, 2, d_next, d)\n return merge_tuples(ndiffs, cursor_pointer, 2)\n } else if (d_next != null && d_next[1].indexOf(d[1]) === 0) {\n // Case 2)\n // d[1] is a prefix of d_next[1]\n // We can assume that d_next[0] !== 0, since d[0] === 0\n // Shift edit locations..\n ndiffs.splice(cursor_pointer, 2, [d_next[0], d[1]], [0, d[1]]);\n var suffix = d_next[1].slice(d[1].length);\n if (suffix.length > 0) {\n ndiffs.splice(cursor_pointer + 2, 0, [d_next[0], suffix]);\n }\n return merge_tuples(ndiffs, cursor_pointer, 3)\n } else {\n // Not possible to perform any modification\n return diffs;\n }\n }\n}\n\n/*\n * Check diff did not split surrogate pairs.\n * Ex. [0, '\\uD83D'], [-1, '\\uDC36'], [1, '\\uDC2F'] -> [-1, '\\uD83D\\uDC36'], [1, '\\uD83D\\uDC2F']\n * '\\uD83D\\uDC36' === 'ðŸ¶', '\\uD83D\\uDC2F' === 'ðŸ¯'\n *\n * @param {Array} diffs Array of diff tuples\n * @return {Array} Array of diff tuples\n */\nfunction fix_emoji (diffs) {\n var compact = false;\n var starts_with_pair_end = function(str) {\n return str.charCodeAt(0) >= 0xDC00 && str.charCodeAt(0) <= 0xDFFF;\n }\n var ends_with_pair_start = function(str) {\n return str.charCodeAt(str.length-1) >= 0xD800 && str.charCodeAt(str.length-1) <= 0xDBFF;\n }\n for (var i = 2; i < diffs.length; i += 1) {\n if (diffs[i-2][0] === DIFF_EQUAL && ends_with_pair_start(diffs[i-2][1]) &&\n diffs[i-1][0] === DIFF_DELETE && starts_with_pair_end(diffs[i-1][1]) &&\n diffs[i][0] === DIFF_INSERT && starts_with_pair_end(diffs[i][1])) {\n compact = true;\n\n diffs[i-1][1] = diffs[i-2][1].slice(-1) + diffs[i-1][1];\n diffs[i][1] = diffs[i-2][1].slice(-1) + diffs[i][1];\n\n diffs[i-2][1] = diffs[i-2][1].slice(0, -1);\n }\n }\n if (!compact) {\n return diffs;\n }\n var fixed_diffs = [];\n for (var i = 0; i < diffs.length; i += 1) {\n if (diffs[i][1].length > 0) {\n fixed_diffs.push(diffs[i]);\n }\n }\n return fixed_diffs;\n}\n\n/*\n * Try to merge tuples with their neigbors in a given range.\n * E.g. [0, 'a'], [0, 'b'] -> [0, 'ab']\n *\n * @param {Array} diffs Array of diff tuples.\n * @param {Int} start Position of the first element to merge (diffs[start] is also merged with diffs[start - 1]).\n * @param {Int} length Number of consecutive elements to check.\n * @return {Array} Array of merged diff tuples.\n */\nfunction merge_tuples (diffs, start, length) {\n // Check from (start-1) to (start+length).\n for (var i = start + length - 1; i >= 0 && i >= start - 1; i--) {\n if (i + 1 < diffs.length) {\n var left_d = diffs[i];\n var right_d = diffs[i+1];\n if (left_d[0] === right_d[1]) {\n diffs.splice(i, 2, [left_d[0], left_d[1] + right_d[1]]);\n }\n }\n }\n return diffs;\n}\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nexports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports) {\n\nvar supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports) {\n\n'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @api private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {Mixed} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @api private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @api public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @api public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Boolean} exists Only check if there are listeners.\n * @returns {Array|Boolean}\n * @api public\n */\nEventEmitter.prototype.listeners = function listeners(event, exists) {\n var evt = prefix ? prefix + event : event\n , available = this._events[evt];\n\n if (exists) return !!available;\n if (!available) return [];\n if (available.fn) return [available.fn];\n\n for (var i = 0, l = available.length, ee = new Array(l); i < l; i++) {\n ee[i] = available[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @api public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n var listener = new EE(fn, context || this)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn The listener function.\n * @param {Mixed} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n var listener = new EE(fn, context || this, true)\n , evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) this._events[evt] = listener, this._eventsCount++;\n else if (!this._events[evt].fn) this._events[evt].push(listener);\n else this._events[evt] = [this._events[evt], listener];\n\n return this;\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {String|Symbol} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {Mixed} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn\n && (!once || listeners.once)\n && (!context || listeners.context === context)\n ) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn\n || (once && !listeners[i].once)\n || (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {String|Symbol} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @api public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) {\n if (--this._eventsCount === 0) this._events = new Events();\n else delete this._events[evt];\n }\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// This function doesn't apply anymore.\n//\nEventEmitter.prototype.setMaxListeners = function setMaxListeners() {\n return this;\n};\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchText = exports.matchSpacing = exports.matchNewline = exports.matchBlot = exports.matchAttributor = exports.default = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend2 = __webpack_require__(3);\n\nvar _extend3 = _interopRequireDefault(_extend2);\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _align = __webpack_require__(36);\n\nvar _background = __webpack_require__(37);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _color = __webpack_require__(26);\n\nvar _direction = __webpack_require__(38);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:clipboard');\n\nvar DOM_KEY = '__ql-matcher';\n\nvar CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchSpacing], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['b', matchAlias.bind(matchAlias, 'bold')], ['i', matchAlias.bind(matchAlias, 'italic')], ['style', matchIgnore]];\n\nvar ATTRIBUTE_ATTRIBUTORS = [_align.AlignAttribute, _direction.DirectionAttribute].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar STYLE_ATTRIBUTORS = [_align.AlignStyle, _background.BackgroundStyle, _color.ColorStyle, _direction.DirectionStyle, _font.FontStyle, _size.SizeStyle].reduce(function (memo, attr) {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\n\nvar Clipboard = function (_Module) {\n _inherits(Clipboard, _Module);\n\n function Clipboard(quill, options) {\n _classCallCheck(this, Clipboard);\n\n var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this, quill, options));\n\n _this.quill.root.addEventListener('paste', _this.onPaste.bind(_this));\n _this.container = _this.quill.addContainer('ql-clipboard');\n _this.container.setAttribute('contenteditable', true);\n _this.container.setAttribute('tabindex', -1);\n _this.matchers = [];\n CLIPBOARD_CONFIG.concat(_this.options.matchers).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n selector = _ref2[0],\n matcher = _ref2[1];\n\n if (!options.matchVisual && matcher === matchSpacing) return;\n _this.addMatcher(selector, matcher);\n });\n return _this;\n }\n\n _createClass(Clipboard, [{\n key: 'addMatcher',\n value: function addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n }, {\n key: 'convert',\n value: function convert(html) {\n if (typeof html === 'string') {\n this.container.innerHTML = html.replace(/\\>\\r?\\n +\\</g, '><'); // Remove spaces between tags\n return this.convert();\n }\n var formats = this.quill.getFormat(this.quill.selection.savedRange.index);\n if (formats[_code2.default.blotName]) {\n var text = this.container.innerText;\n this.container.innerHTML = '';\n return new _quillDelta2.default().insert(text, _defineProperty({}, _code2.default.blotName, formats[_code2.default.blotName]));\n }\n\n var _prepareMatching = this.prepareMatching(),\n _prepareMatching2 = _slicedToArray(_prepareMatching, 2),\n elementMatchers = _prepareMatching2[0],\n textMatchers = _prepareMatching2[1];\n\n var delta = traverse(this.container, elementMatchers, textMatchers);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && delta.ops[delta.ops.length - 1].attributes == null) {\n delta = delta.compose(new _quillDelta2.default().retain(delta.length() - 1).delete(1));\n }\n debug.log('convert', this.container.innerHTML, delta);\n this.container.innerHTML = '';\n return delta;\n }\n }, {\n key: 'dangerouslyPasteHTML',\n value: function dangerouslyPasteHTML(index, html) {\n var source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _quill2.default.sources.API;\n\n if (typeof index === 'string') {\n this.quill.setContents(this.convert(index), html);\n this.quill.setSelection(0, _quill2.default.sources.SILENT);\n } else {\n var paste = this.convert(html);\n this.quill.updateContents(new _quillDelta2.default().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), _quill2.default.sources.SILENT);\n }\n }\n }, {\n key: 'onPaste',\n value: function onPaste(e) {\n var _this2 = this;\n\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n var range = this.quill.getSelection();\n var delta = new _quillDelta2.default().retain(range.index);\n var scrollTop = this.quill.scrollingContainer.scrollTop;\n this.container.focus();\n this.quill.selection.update(_quill2.default.sources.SILENT);\n setTimeout(function () {\n delta = delta.concat(_this2.convert()).delete(range.length);\n _this2.quill.updateContents(delta, _quill2.default.sources.USER);\n // range.length contributes to delta.length()\n _this2.quill.setSelection(delta.length() - range.length, _quill2.default.sources.SILENT);\n _this2.quill.scrollingContainer.scrollTop = scrollTop;\n _this2.quill.focus();\n }, 1);\n }\n }, {\n key: 'prepareMatching',\n value: function prepareMatching() {\n var _this3 = this;\n\n var elementMatchers = [],\n textMatchers = [];\n this.matchers.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n selector = _pair[0],\n matcher = _pair[1];\n\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n [].forEach.call(_this3.container.querySelectorAll(selector), function (node) {\n // TODO use weakmap\n node[DOM_KEY] = node[DOM_KEY] || [];\n node[DOM_KEY].push(matcher);\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n }]);\n\n return Clipboard;\n}(_module2.default);\n\nClipboard.DEFAULTS = {\n matchers: [],\n matchVisual: true\n};\n\nfunction applyFormat(delta, format, value) {\n if ((typeof format === 'undefined' ? 'undefined' : _typeof(format)) === 'object') {\n return Object.keys(format).reduce(function (delta, key) {\n return applyFormat(delta, key, format[key]);\n }, delta);\n } else {\n return delta.reduce(function (delta, op) {\n if (op.attributes && op.attributes[format]) {\n return delta.push(op);\n } else {\n return delta.insert(op.insert, (0, _extend3.default)({}, _defineProperty({}, format, value), op.attributes));\n }\n }, new _quillDelta2.default());\n }\n}\n\nfunction computeStyle(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) return {};\n var DOM_KEY = '__ql-computed-style';\n return node[DOM_KEY] || (node[DOM_KEY] = window.getComputedStyle(node));\n}\n\nfunction deltaEndsWith(delta, text) {\n var endText = \"\";\n for (var i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i) {\n var op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\n\nfunction isLine(node) {\n if (node.childNodes.length === 0) return false; // Exclude embed blocks\n var style = computeStyle(node);\n return ['block', 'list-item'].indexOf(style.display) > -1;\n}\n\nfunction traverse(node, elementMatchers, textMatchers) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce(function (delta, matcher) {\n return matcher(node, delta);\n }, new _quillDelta2.default());\n } else if (node.nodeType === node.ELEMENT_NODE) {\n return [].reduce.call(node.childNodes || [], function (delta, childNode) {\n var childrenDelta = traverse(childNode, elementMatchers, textMatchers);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n childrenDelta = (childNode[DOM_KEY] || []).reduce(function (childrenDelta, matcher) {\n return matcher(childNode, childrenDelta);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new _quillDelta2.default());\n } else {\n return new _quillDelta2.default();\n }\n}\n\nfunction matchAlias(format, node, delta) {\n return applyFormat(delta, format, true);\n}\n\nfunction matchAttributor(node, delta) {\n var attributes = _parchment2.default.Attributor.Attribute.keys(node);\n var classes = _parchment2.default.Attributor.Class.keys(node);\n var styles = _parchment2.default.Attributor.Style.keys(node);\n var formats = {};\n attributes.concat(classes).concat(styles).forEach(function (name) {\n var attr = _parchment2.default.query(name, _parchment2.default.Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n return delta;\n}\n\nfunction matchBlot(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null) return delta;\n if (match.prototype instanceof _parchment2.default.Embed) {\n var embed = {};\n var value = match.value(node);\n if (value != null) {\n embed[match.blotName] = value;\n delta = new _quillDelta2.default().insert(embed, match.formats(node));\n }\n } else if (typeof match.formats === 'function') {\n delta = applyFormat(delta, match.blotName, match.formats(node));\n }\n return delta;\n}\n\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\n\nfunction matchIgnore() {\n return new _quillDelta2.default();\n}\n\nfunction matchIndent(node, delta) {\n var match = _parchment2.default.query(node);\n if (match == null || match.blotName !== 'list-item' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n var indent = -1,\n parent = node.parentNode;\n while (!parent.classList.contains('ql-clipboard')) {\n if ((_parchment2.default.query(parent) || {}).blotName === 'list') {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.compose(new _quillDelta2.default().retain(delta.length() - 1).retain(1, { indent: indent }));\n}\n\nfunction matchNewline(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node) || delta.length() > 0 && node.nextSibling && isLine(node.nextSibling)) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchSpacing(node, delta) {\n if (isLine(node) && node.nextElementSibling != null && !deltaEndsWith(delta, '\\n\\n')) {\n var nodeHeight = node.offsetHeight + parseFloat(computeStyle(node).marginTop) + parseFloat(computeStyle(node).marginBottom);\n if (node.nextElementSibling.offsetTop > node.offsetTop + nodeHeight * 1.5) {\n delta.insert('\\n');\n }\n }\n return delta;\n}\n\nfunction matchStyles(node, delta) {\n var formats = {};\n var style = node.style || {};\n if (style.fontStyle && computeStyle(node).fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.fontWeight && (computeStyle(node).fontWeight.startsWith('bold') || parseInt(computeStyle(node).fontWeight) >= 700)) {\n formats.bold = true;\n }\n if (Object.keys(formats).length > 0) {\n delta = applyFormat(delta, formats);\n }\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n delta = new _quillDelta2.default().insert('\\t').concat(delta);\n }\n return delta;\n}\n\nfunction matchText(node, delta) {\n var text = node.data;\n // Word represents empty line with <o:p> </o:p>\n if (node.parentNode.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (text.trim().length === 0 && node.parentNode.classList.contains('ql-clipboard')) {\n return delta;\n }\n if (!computeStyle(node.parentNode).whiteSpace.startsWith('pre')) {\n // eslint-disable-next-line func-style\n var replacer = function replacer(collapse, match) {\n match = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return match.length < 1 && collapse ? ' ' : match;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && isLine(node.parentNode) || node.previousSibling != null && isLine(node.previousSibling)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && isLine(node.parentNode) || node.nextSibling != null && isLine(node.nextSibling)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\n\nexports.default = Clipboard;\nexports.matchAttributor = matchAttributor;\nexports.matchBlot = matchBlot;\nexports.matchNewline = matchNewline;\nexports.matchSpacing = matchSpacing;\nexports.matchText = matchText;\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Bold = function (_Inline) {\n _inherits(Bold, _Inline);\n\n function Bold() {\n _classCallCheck(this, Bold);\n\n return _possibleConstructorReturn(this, (Bold.__proto__ || Object.getPrototypeOf(Bold)).apply(this, arguments));\n }\n\n _createClass(Bold, [{\n key: 'optimize',\n value: function optimize(context) {\n _get(Bold.prototype.__proto__ || Object.getPrototypeOf(Bold.prototype), 'optimize', this).call(this, context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n }], [{\n key: 'create',\n value: function create() {\n return _get(Bold.__proto__ || Object.getPrototypeOf(Bold), 'create', this).call(this);\n }\n }, {\n key: 'formats',\n value: function formats() {\n return true;\n }\n }]);\n\n return Bold;\n}(_inline2.default);\n\nBold.blotName = 'bold';\nBold.tagName = ['STRONG', 'B'];\n\nexports.default = Bold;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addControls = exports.default = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _quillDelta = __webpack_require__(2);\n\nvar _quillDelta2 = _interopRequireDefault(_quillDelta);\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _logger = __webpack_require__(10);\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar debug = (0, _logger2.default)('quill:toolbar');\n\nvar Toolbar = function (_Module) {\n _inherits(Toolbar, _Module);\n\n function Toolbar(quill, options) {\n _classCallCheck(this, Toolbar);\n\n var _this = _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).call(this, quill, options));\n\n if (Array.isArray(_this.options.container)) {\n var container = document.createElement('div');\n addControls(container, _this.options.container);\n quill.container.parentNode.insertBefore(container, quill.container);\n _this.container = container;\n } else if (typeof _this.options.container === 'string') {\n _this.container = document.querySelector(_this.options.container);\n } else {\n _this.container = _this.options.container;\n }\n if (!(_this.container instanceof HTMLElement)) {\n var _ret;\n\n return _ret = debug.error('Container required for toolbar', _this.options), _possibleConstructorReturn(_this, _ret);\n }\n _this.container.classList.add('ql-toolbar');\n _this.controls = [];\n _this.handlers = {};\n Object.keys(_this.options.handlers).forEach(function (format) {\n _this.addHandler(format, _this.options.handlers[format]);\n });\n [].forEach.call(_this.container.querySelectorAll('button, select'), function (input) {\n _this.attach(input);\n });\n _this.quill.on(_quill2.default.events.EDITOR_CHANGE, function (type, range) {\n if (type === _quill2.default.events.SELECTION_CHANGE) {\n _this.update(range);\n }\n });\n _this.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n var _this$quill$selection = _this.quill.selection.getRange(),\n _this$quill$selection2 = _slicedToArray(_this$quill$selection, 1),\n range = _this$quill$selection2[0]; // quill.getSelection triggers update\n\n\n _this.update(range);\n });\n return _this;\n }\n\n _createClass(Toolbar, [{\n key: 'addHandler',\n value: function addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n }, {\n key: 'attach',\n value: function attach(input) {\n var _this2 = this;\n\n var format = [].find.call(input.classList, function (className) {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null) {\n if (this.quill.scroll.whitelist != null && this.quill.scroll.whitelist[format] == null) {\n debug.warn('ignoring attaching to disabled format', format, input);\n return;\n }\n if (_parchment2.default.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n }\n var eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, function (e) {\n var value = void 0;\n if (input.tagName === 'SELECT') {\n if (input.selectedIndex < 0) return;\n var selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n _this2.quill.focus();\n\n var _quill$selection$getR = _this2.quill.selection.getRange(),\n _quill$selection$getR2 = _slicedToArray(_quill$selection$getR, 1),\n range = _quill$selection$getR2[0];\n\n if (_this2.handlers[format] != null) {\n _this2.handlers[format].call(_this2, value);\n } else if (_parchment2.default.query(format).prototype instanceof _parchment2.default.Embed) {\n value = prompt('Enter ' + format);\n if (!value) return;\n _this2.quill.updateContents(new _quillDelta2.default().retain(range.index).delete(range.length).insert(_defineProperty({}, format, value)), _quill2.default.sources.USER);\n } else {\n _this2.quill.format(format, value, _quill2.default.sources.USER);\n }\n _this2.update(range);\n });\n // TODO use weakmap\n this.controls.push([format, input]);\n }\n }, {\n key: 'update',\n value: function update(range) {\n var formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(function (pair) {\n var _pair = _slicedToArray(pair, 2),\n format = _pair[0],\n input = _pair[1];\n\n if (input.tagName === 'SELECT') {\n var option = void 0;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n var value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\\\"/g, '\\\\\"');\n }\n option = input.querySelector('option[value=\"' + value + '\"]');\n }\n if (option == null) {\n input.value = ''; // TODO make configurable?\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else {\n if (range == null) {\n input.classList.remove('ql-active');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n var isActive = formats[format] === input.getAttribute('value') || formats[format] != null && formats[format].toString() === input.getAttribute('value') || formats[format] == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n } else {\n input.classList.toggle('ql-active', formats[format] != null);\n }\n }\n });\n }\n }]);\n\n return Toolbar;\n}(_module2.default);\n\nToolbar.DEFAULTS = {};\n\nfunction addButton(container, format, value) {\n var input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add('ql-' + format);\n if (value != null) {\n input.value = value;\n }\n container.appendChild(input);\n}\n\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n groups = [groups];\n }\n groups.forEach(function (controls) {\n var group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(function (control) {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n var format = Object.keys(control)[0];\n var value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\n\nfunction addSelect(container, format, values) {\n var input = document.createElement('select');\n input.classList.add('ql-' + format);\n values.forEach(function (value) {\n var option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', value);\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\n\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean: function clean() {\n var _this3 = this;\n\n var range = this.quill.getSelection();\n if (range == null) return;\n if (range.length == 0) {\n var formats = this.quill.getFormat();\n Object.keys(formats).forEach(function (name) {\n // Clean functionality in existing apps only clean inline formats\n if (_parchment2.default.query(name, _parchment2.default.Scope.INLINE) != null) {\n _this3.quill.format(name, false);\n }\n });\n } else {\n this.quill.removeFormat(range, _quill2.default.sources.USER);\n }\n },\n direction: function direction(value) {\n var align = this.quill.getFormat()['align'];\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', _quill2.default.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, _quill2.default.sources.USER);\n }\n this.quill.format('direction', value, _quill2.default.sources.USER);\n },\n indent: function indent(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n var indent = parseInt(formats.indent || 0);\n if (value === '+1' || value === '-1') {\n var modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, _quill2.default.sources.USER);\n }\n },\n link: function link(value) {\n if (value === true) {\n value = prompt('Enter link URL:');\n }\n this.quill.format('link', value, _quill2.default.sources.USER);\n },\n list: function list(value) {\n var range = this.quill.getSelection();\n var formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats['list'] === 'checked' || formats['list'] === 'unchecked') {\n this.quill.format('list', false, _quill2.default.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', _quill2.default.sources.USER);\n }\n } else {\n this.quill.format('list', value, _quill2.default.sources.USER);\n }\n }\n }\n};\n\nexports.default = Toolbar;\nexports.addControls = addControls;\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"></polyline> <polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"></polyline> <line class=ql-stroke x1=10 x2=8 y1=5 y2=13></line> </svg>\";\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ColorPicker = function (_Picker) {\n _inherits(ColorPicker, _Picker);\n\n function ColorPicker(select, label) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this, select));\n\n _this.label.innerHTML = label;\n _this.container.classList.add('ql-color-picker');\n [].slice.call(_this.container.querySelectorAll('.ql-picker-item'), 0, 7).forEach(function (item) {\n item.classList.add('ql-primary');\n });\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'buildItem',\n value: function buildItem(option) {\n var item = _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'buildItem', this).call(this, option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n }, {\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(ColorPicker.prototype.__proto__ || Object.getPrototypeOf(ColorPicker.prototype), 'selectItem', this).call(this, item, trigger);\n var colorLabel = this.label.querySelector('.ql-color-label');\n var value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n }]);\n\n return ColorPicker;\n}(_picker2.default);\n\nexports.default = ColorPicker;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IconPicker = function (_Picker) {\n _inherits(IconPicker, _Picker);\n\n function IconPicker(select, icons) {\n _classCallCheck(this, IconPicker);\n\n var _this = _possibleConstructorReturn(this, (IconPicker.__proto__ || Object.getPrototypeOf(IconPicker)).call(this, select));\n\n _this.container.classList.add('ql-icon-picker');\n [].forEach.call(_this.container.querySelectorAll('.ql-picker-item'), function (item) {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n _this.defaultItem = _this.container.querySelector('.ql-selected');\n _this.selectItem(_this.defaultItem);\n return _this;\n }\n\n _createClass(IconPicker, [{\n key: 'selectItem',\n value: function selectItem(item, trigger) {\n _get(IconPicker.prototype.__proto__ || Object.getPrototypeOf(IconPicker.prototype), 'selectItem', this).call(this, item, trigger);\n item = item || this.defaultItem;\n this.label.innerHTML = item.innerHTML;\n }\n }]);\n\n return IconPicker;\n}(_picker2.default);\n\nexports.default = IconPicker;\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Tooltip = function () {\n function Tooltip(quill, boundsContainer) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (this.quill.root === this.quill.scrollingContainer) {\n this.quill.root.addEventListener('scroll', function () {\n _this.root.style.marginTop = -1 * _this.quill.root.scrollTop + 'px';\n });\n }\n this.hide();\n }\n\n _createClass(Tooltip, [{\n key: 'hide',\n value: function hide() {\n this.root.classList.add('ql-hidden');\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n var top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = left + 'px';\n this.root.style.top = top + 'px';\n this.root.classList.remove('ql-flip');\n var containerBounds = this.boundsContainer.getBoundingClientRect();\n var rootBounds = this.root.getBoundingClientRect();\n var shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = left + shift + 'px';\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n var height = rootBounds.bottom - rootBounds.top;\n var verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = top - verticalShift + 'px';\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n }, {\n key: 'show',\n value: function show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n }]);\n\n return Tooltip;\n}();\n\nexports.default = Tooltip;\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [[{ header: ['1', '2', '3', false] }], ['bold', 'italic', 'underline', 'link'], [{ list: 'ordered' }, { list: 'bullet' }], ['clean']];\n\nvar SnowTheme = function (_BaseTheme) {\n _inherits(SnowTheme, _BaseTheme);\n\n function SnowTheme(quill, options) {\n _classCallCheck(this, SnowTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (SnowTheme.__proto__ || Object.getPrototypeOf(SnowTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-snow');\n return _this;\n }\n\n _createClass(SnowTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({ key: 'K', shortKey: true }, function (range, context) {\n toolbar.handlers['link'].call(toolbar, !context.format.link);\n });\n }\n }\n }]);\n\n return SnowTheme;\n}(_base2.default);\n\nSnowTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (value) {\n var range = this.quill.getSelection();\n if (range == null || range.length == 0) return;\n var preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = 'mailto:' + preview;\n }\n var tooltip = this.quill.theme.tooltip;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false);\n }\n }\n }\n }\n }\n});\n\nvar SnowTooltip = function (_BaseTooltip) {\n _inherits(SnowTooltip, _BaseTooltip);\n\n function SnowTooltip(quill, bounds) {\n _classCallCheck(this, SnowTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (SnowTooltip.__proto__ || Object.getPrototypeOf(SnowTooltip)).call(this, quill, bounds));\n\n _this2.preview = _this2.root.querySelector('a.ql-preview');\n return _this2;\n }\n\n _createClass(SnowTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('a.ql-action').addEventListener('click', function (event) {\n if (_this3.root.classList.contains('ql-editing')) {\n _this3.save();\n } else {\n _this3.edit('link', _this3.preview.textContent);\n }\n event.preventDefault();\n });\n this.root.querySelector('a.ql-remove').addEventListener('click', function (event) {\n if (_this3.linkRange != null) {\n var range = _this3.linkRange;\n _this3.restoreFocus();\n _this3.quill.formatText(range, 'link', false, _emitter2.default.sources.USER);\n delete _this3.linkRange;\n }\n event.preventDefault();\n _this3.hide();\n });\n this.quill.on(_emitter2.default.events.SELECTION_CHANGE, function (range, oldRange, source) {\n if (range == null) return;\n if (range.length === 0 && source === _emitter2.default.sources.USER) {\n var _quill$scroll$descend = _this3.quill.scroll.descendant(_link2.default, range.index),\n _quill$scroll$descend2 = _slicedToArray(_quill$scroll$descend, 2),\n link = _quill$scroll$descend2[0],\n offset = _quill$scroll$descend2[1];\n\n if (link != null) {\n _this3.linkRange = new _selection.Range(range.index - offset, link.length());\n var preview = _link2.default.formats(link.domNode);\n _this3.preview.textContent = preview;\n _this3.preview.setAttribute('href', preview);\n _this3.show();\n _this3.position(_this3.quill.getBounds(_this3.linkRange));\n return;\n }\n } else {\n delete _this3.linkRange;\n }\n _this3.hide();\n });\n }\n }, {\n key: 'show',\n value: function show() {\n _get(SnowTooltip.prototype.__proto__ || Object.getPrototypeOf(SnowTooltip.prototype), 'show', this).call(this);\n this.root.removeAttribute('data-mode');\n }\n }]);\n\n return SnowTooltip;\n}(_base.BaseTooltip);\n\nSnowTooltip.TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n\nexports.default = SnowTheme;\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _core = __webpack_require__(29);\n\nvar _core2 = _interopRequireDefault(_core);\n\nvar _align = __webpack_require__(36);\n\nvar _direction = __webpack_require__(38);\n\nvar _indent = __webpack_require__(64);\n\nvar _blockquote = __webpack_require__(65);\n\nvar _blockquote2 = _interopRequireDefault(_blockquote);\n\nvar _header = __webpack_require__(66);\n\nvar _header2 = _interopRequireDefault(_header);\n\nvar _list = __webpack_require__(67);\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _background = __webpack_require__(37);\n\nvar _color = __webpack_require__(26);\n\nvar _font = __webpack_require__(39);\n\nvar _size = __webpack_require__(40);\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nvar _italic = __webpack_require__(68);\n\nvar _italic2 = _interopRequireDefault(_italic);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nvar _script = __webpack_require__(69);\n\nvar _script2 = _interopRequireDefault(_script);\n\nvar _strike = __webpack_require__(70);\n\nvar _strike2 = _interopRequireDefault(_strike);\n\nvar _underline = __webpack_require__(71);\n\nvar _underline2 = _interopRequireDefault(_underline);\n\nvar _image = __webpack_require__(72);\n\nvar _image2 = _interopRequireDefault(_image);\n\nvar _video = __webpack_require__(73);\n\nvar _video2 = _interopRequireDefault(_video);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nvar _formula = __webpack_require__(74);\n\nvar _formula2 = _interopRequireDefault(_formula);\n\nvar _syntax = __webpack_require__(75);\n\nvar _syntax2 = _interopRequireDefault(_syntax);\n\nvar _toolbar = __webpack_require__(57);\n\nvar _toolbar2 = _interopRequireDefault(_toolbar);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nvar _picker = __webpack_require__(28);\n\nvar _picker2 = _interopRequireDefault(_picker);\n\nvar _colorPicker = __webpack_require__(59);\n\nvar _colorPicker2 = _interopRequireDefault(_colorPicker);\n\nvar _iconPicker = __webpack_require__(60);\n\nvar _iconPicker2 = _interopRequireDefault(_iconPicker);\n\nvar _tooltip = __webpack_require__(61);\n\nvar _tooltip2 = _interopRequireDefault(_tooltip);\n\nvar _bubble = __webpack_require__(108);\n\nvar _bubble2 = _interopRequireDefault(_bubble);\n\nvar _snow = __webpack_require__(62);\n\nvar _snow2 = _interopRequireDefault(_snow);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_core2.default.register({\n 'attributors/attribute/direction': _direction.DirectionAttribute,\n\n 'attributors/class/align': _align.AlignClass,\n 'attributors/class/background': _background.BackgroundClass,\n 'attributors/class/color': _color.ColorClass,\n 'attributors/class/direction': _direction.DirectionClass,\n 'attributors/class/font': _font.FontClass,\n 'attributors/class/size': _size.SizeClass,\n\n 'attributors/style/align': _align.AlignStyle,\n 'attributors/style/background': _background.BackgroundStyle,\n 'attributors/style/color': _color.ColorStyle,\n 'attributors/style/direction': _direction.DirectionStyle,\n 'attributors/style/font': _font.FontStyle,\n 'attributors/style/size': _size.SizeStyle\n}, true);\n\n_core2.default.register({\n 'formats/align': _align.AlignClass,\n 'formats/direction': _direction.DirectionClass,\n 'formats/indent': _indent.IndentClass,\n\n 'formats/background': _background.BackgroundStyle,\n 'formats/color': _color.ColorStyle,\n 'formats/font': _font.FontClass,\n 'formats/size': _size.SizeClass,\n\n 'formats/blockquote': _blockquote2.default,\n 'formats/code-block': _code2.default,\n 'formats/header': _header2.default,\n 'formats/list': _list2.default,\n\n 'formats/bold': _bold2.default,\n 'formats/code': _code.Code,\n 'formats/italic': _italic2.default,\n 'formats/link': _link2.default,\n 'formats/script': _script2.default,\n 'formats/strike': _strike2.default,\n 'formats/underline': _underline2.default,\n\n 'formats/image': _image2.default,\n 'formats/video': _video2.default,\n\n 'formats/list/item': _list.ListItem,\n\n 'modules/formula': _formula2.default,\n 'modules/syntax': _syntax2.default,\n 'modules/toolbar': _toolbar2.default,\n\n 'themes/bubble': _bubble2.default,\n 'themes/snow': _snow2.default,\n\n 'ui/icons': _icons2.default,\n 'ui/picker': _picker2.default,\n 'ui/icon-picker': _iconPicker2.default,\n 'ui/color-picker': _colorPicker2.default,\n 'ui/tooltip': _tooltip2.default\n}, true);\n\nexports.default = _core2.default;\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.IndentClass = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar IdentAttributor = function (_Parchment$Attributor) {\n _inherits(IdentAttributor, _Parchment$Attributor);\n\n function IdentAttributor() {\n _classCallCheck(this, IdentAttributor);\n\n return _possibleConstructorReturn(this, (IdentAttributor.__proto__ || Object.getPrototypeOf(IdentAttributor)).apply(this, arguments));\n }\n\n _createClass(IdentAttributor, [{\n key: 'add',\n value: function add(node, value) {\n if (value === '+1' || value === '-1') {\n var indent = this.value(node) || 0;\n value = value === '+1' ? indent + 1 : indent - 1;\n }\n if (value === 0) {\n this.remove(node);\n return true;\n } else {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'add', this).call(this, node, value);\n }\n }\n }, {\n key: 'canAdd',\n value: function canAdd(node, value) {\n return _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, value) || _get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'canAdd', this).call(this, node, parseInt(value));\n }\n }, {\n key: 'value',\n value: function value(node) {\n return parseInt(_get(IdentAttributor.prototype.__proto__ || Object.getPrototypeOf(IdentAttributor.prototype), 'value', this).call(this, node)) || undefined; // Don't return NaN\n }\n }]);\n\n return IdentAttributor;\n}(_parchment2.default.Attributor.Class);\n\nvar IndentClass = new IdentAttributor('indent', 'ql-indent', {\n scope: _parchment2.default.Scope.BLOCK,\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n\nexports.IndentClass = IndentClass;\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Blockquote = function (_Block) {\n _inherits(Blockquote, _Block);\n\n function Blockquote() {\n _classCallCheck(this, Blockquote);\n\n return _possibleConstructorReturn(this, (Blockquote.__proto__ || Object.getPrototypeOf(Blockquote)).apply(this, arguments));\n }\n\n return Blockquote;\n}(_block2.default);\n\nBlockquote.blotName = 'blockquote';\nBlockquote.tagName = 'blockquote';\n\nexports.default = Blockquote;\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Header = function (_Block) {\n _inherits(Header, _Block);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, null, [{\n key: 'formats',\n value: function formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n }]);\n\n return Header;\n}(_block2.default);\n\nHeader.blotName = 'header';\nHeader.tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n\nexports.default = Header;\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.ListItem = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _block = __webpack_require__(4);\n\nvar _block2 = _interopRequireDefault(_block);\n\nvar _container = __webpack_require__(25);\n\nvar _container2 = _interopRequireDefault(_container);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ListItem = function (_Block) {\n _inherits(ListItem, _Block);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'format',\n value: function format(name, value) {\n if (name === List.blotName && !value) {\n this.replaceWith(_parchment2.default.create(this.statics.scope));\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'format', this).call(this, name, value);\n }\n }\n }, {\n key: 'remove',\n value: function remove() {\n if (this.prev == null && this.next == null) {\n this.parent.remove();\n } else {\n _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'remove', this).call(this);\n }\n }\n }, {\n key: 'replaceWith',\n value: function replaceWith(name, value) {\n this.parent.isolate(this.offset(this.parent), this.length());\n if (name === this.parent.statics.blotName) {\n this.parent.replaceWith(name, value);\n return this;\n } else {\n this.parent.unwrap();\n return _get(ListItem.prototype.__proto__ || Object.getPrototypeOf(ListItem.prototype), 'replaceWith', this).call(this, name, value);\n }\n }\n }], [{\n key: 'formats',\n value: function formats(domNode) {\n return domNode.tagName === this.tagName ? undefined : _get(ListItem.__proto__ || Object.getPrototypeOf(ListItem), 'formats', this).call(this, domNode);\n }\n }]);\n\n return ListItem;\n}(_block2.default);\n\nListItem.blotName = 'list-item';\nListItem.tagName = 'LI';\n\nvar List = function (_Container) {\n _inherits(List, _Container);\n\n _createClass(List, null, [{\n key: 'create',\n value: function create(value) {\n var tagName = value === 'ordered' ? 'OL' : 'UL';\n var node = _get(List.__proto__ || Object.getPrototypeOf(List), 'create', this).call(this, tagName);\n if (value === 'checked' || value === 'unchecked') {\n node.setAttribute('data-checked', value === 'checked');\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'OL') return 'ordered';\n if (domNode.tagName === 'UL') {\n if (domNode.hasAttribute('data-checked')) {\n return domNode.getAttribute('data-checked') === 'true' ? 'checked' : 'unchecked';\n } else {\n return 'bullet';\n }\n }\n return undefined;\n }\n }]);\n\n function List(domNode) {\n _classCallCheck(this, List);\n\n var _this2 = _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).call(this, domNode));\n\n var listEventHandler = function listEventHandler(e) {\n if (e.target.parentNode !== domNode) return;\n var format = _this2.statics.formats(domNode);\n var blot = _parchment2.default.find(e.target);\n if (format === 'checked') {\n blot.format('list', 'unchecked');\n } else if (format === 'unchecked') {\n blot.format('list', 'checked');\n }\n };\n\n domNode.addEventListener('touchstart', listEventHandler);\n domNode.addEventListener('mousedown', listEventHandler);\n return _this2;\n }\n\n _createClass(List, [{\n key: 'format',\n value: function format(name, value) {\n if (this.children.length > 0) {\n this.children.tail.format(name, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats() {\n // We don't inherit from FormatBlot\n return _defineProperty({}, this.statics.blotName, this.statics.formats(this.domNode));\n }\n }, {\n key: 'insertBefore',\n value: function insertBefore(blot, ref) {\n if (blot instanceof ListItem) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'insertBefore', this).call(this, blot, ref);\n } else {\n var index = ref == null ? this.length() : ref.offset(this);\n var after = this.split(index);\n after.parent.insertBefore(blot, after);\n }\n }\n }, {\n key: 'optimize',\n value: function optimize(context) {\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'optimize', this).call(this, context);\n var next = this.next;\n if (next != null && next.prev === this && next.statics.blotName === this.statics.blotName && next.domNode.tagName === this.domNode.tagName && next.domNode.getAttribute('data-checked') === this.domNode.getAttribute('data-checked')) {\n next.moveChildren(this);\n next.remove();\n }\n }\n }, {\n key: 'replace',\n value: function replace(target) {\n if (target.statics.blotName !== this.statics.blotName) {\n var item = _parchment2.default.create(this.statics.defaultChild);\n target.moveChildren(item);\n this.appendChild(item);\n }\n _get(List.prototype.__proto__ || Object.getPrototypeOf(List.prototype), 'replace', this).call(this, target);\n }\n }]);\n\n return List;\n}(_container2.default);\n\nList.blotName = 'list';\nList.scope = _parchment2.default.Scope.BLOCK_BLOT;\nList.tagName = ['OL', 'UL'];\nList.defaultChild = 'list-item';\nList.allowedChildren = [ListItem];\n\nexports.ListItem = ListItem;\nexports.default = List;\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _bold = __webpack_require__(56);\n\nvar _bold2 = _interopRequireDefault(_bold);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Italic = function (_Bold) {\n _inherits(Italic, _Bold);\n\n function Italic() {\n _classCallCheck(this, Italic);\n\n return _possibleConstructorReturn(this, (Italic.__proto__ || Object.getPrototypeOf(Italic)).apply(this, arguments));\n }\n\n return Italic;\n}(_bold2.default);\n\nItalic.blotName = 'italic';\nItalic.tagName = ['EM', 'I'];\n\nexports.default = Italic;\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Script = function (_Inline) {\n _inherits(Script, _Inline);\n\n function Script() {\n _classCallCheck(this, Script);\n\n return _possibleConstructorReturn(this, (Script.__proto__ || Object.getPrototypeOf(Script)).apply(this, arguments));\n }\n\n _createClass(Script, null, [{\n key: 'create',\n value: function create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n } else if (value === 'sub') {\n return document.createElement('sub');\n } else {\n return _get(Script.__proto__ || Object.getPrototypeOf(Script), 'create', this).call(this, value);\n }\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n }]);\n\n return Script;\n}(_inline2.default);\n\nScript.blotName = 'script';\nScript.tagName = ['SUB', 'SUP'];\n\nexports.default = Script;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Strike = function (_Inline) {\n _inherits(Strike, _Inline);\n\n function Strike() {\n _classCallCheck(this, Strike);\n\n return _possibleConstructorReturn(this, (Strike.__proto__ || Object.getPrototypeOf(Strike)).apply(this, arguments));\n }\n\n return Strike;\n}(_inline2.default);\n\nStrike.blotName = 'strike';\nStrike.tagName = 'S';\n\nexports.default = Strike;\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _inline = __webpack_require__(6);\n\nvar _inline2 = _interopRequireDefault(_inline);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Underline = function (_Inline) {\n _inherits(Underline, _Inline);\n\n function Underline() {\n _classCallCheck(this, Underline);\n\n return _possibleConstructorReturn(this, (Underline.__proto__ || Object.getPrototypeOf(Underline)).apply(this, arguments));\n }\n\n return Underline;\n}(_inline2.default);\n\nUnderline.blotName = 'underline';\nUnderline.tagName = 'U';\n\nexports.default = Underline;\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _link = __webpack_require__(27);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['alt', 'height', 'width'];\n\nvar Image = function (_Parchment$Embed) {\n _inherits(Image, _Parchment$Embed);\n\n function Image() {\n _classCallCheck(this, Image);\n\n return _possibleConstructorReturn(this, (Image.__proto__ || Object.getPrototypeOf(Image)).apply(this, arguments));\n }\n\n _createClass(Image, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Image.prototype.__proto__ || Object.getPrototypeOf(Image.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Image.__proto__ || Object.getPrototypeOf(Image), 'create', this).call(this, value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'match',\n value: function match(url) {\n return (/\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url)\n );\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return (0, _link.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Image;\n}(_parchment2.default.Embed);\n\nImage.blotName = 'image';\nImage.tagName = 'IMG';\n\nexports.default = Image;\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _block = __webpack_require__(4);\n\nvar _link = __webpack_require__(27);\n\nvar _link2 = _interopRequireDefault(_link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ATTRIBUTES = ['height', 'width'];\n\nvar Video = function (_BlockEmbed) {\n _inherits(Video, _BlockEmbed);\n\n function Video() {\n _classCallCheck(this, Video);\n\n return _possibleConstructorReturn(this, (Video.__proto__ || Object.getPrototypeOf(Video)).apply(this, arguments));\n }\n\n _createClass(Video, [{\n key: 'format',\n value: function format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n _get(Video.prototype.__proto__ || Object.getPrototypeOf(Video.prototype), 'format', this).call(this, name, value);\n }\n }\n }], [{\n key: 'create',\n value: function create(value) {\n var node = _get(Video.__proto__ || Object.getPrototypeOf(Video), 'create', this).call(this, value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', true);\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n }, {\n key: 'formats',\n value: function formats(domNode) {\n return ATTRIBUTES.reduce(function (formats, attribute) {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n }, {\n key: 'sanitize',\n value: function sanitize(url) {\n return _link2.default.sanitize(url);\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('src');\n }\n }]);\n\n return Video;\n}(_block.BlockEmbed);\n\nVideo.blotName = 'video';\nVideo.className = 'ql-video';\nVideo.tagName = 'IFRAME';\n\nexports.default = Video;\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.FormulaBlot = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _embed = __webpack_require__(35);\n\nvar _embed2 = _interopRequireDefault(_embed);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar FormulaBlot = function (_Embed) {\n _inherits(FormulaBlot, _Embed);\n\n function FormulaBlot() {\n _classCallCheck(this, FormulaBlot);\n\n return _possibleConstructorReturn(this, (FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot)).apply(this, arguments));\n }\n\n _createClass(FormulaBlot, null, [{\n key: 'create',\n value: function create(value) {\n var node = _get(FormulaBlot.__proto__ || Object.getPrototypeOf(FormulaBlot), 'create', this).call(this, value);\n if (typeof value === 'string') {\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n }, {\n key: 'value',\n value: function value(domNode) {\n return domNode.getAttribute('data-value');\n }\n }]);\n\n return FormulaBlot;\n}(_embed2.default);\n\nFormulaBlot.blotName = 'formula';\nFormulaBlot.className = 'ql-formula';\nFormulaBlot.tagName = 'SPAN';\n\nvar Formula = function (_Module) {\n _inherits(Formula, _Module);\n\n _createClass(Formula, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(FormulaBlot, true);\n }\n }]);\n\n function Formula() {\n _classCallCheck(this, Formula);\n\n var _this2 = _possibleConstructorReturn(this, (Formula.__proto__ || Object.getPrototypeOf(Formula)).call(this));\n\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n return _this2;\n }\n\n return Formula;\n}(_module2.default);\n\nexports.FormulaBlot = FormulaBlot;\nexports.default = Formula;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.CodeToken = exports.CodeBlock = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _parchment = __webpack_require__(0);\n\nvar _parchment2 = _interopRequireDefault(_parchment);\n\nvar _quill = __webpack_require__(5);\n\nvar _quill2 = _interopRequireDefault(_quill);\n\nvar _module = __webpack_require__(9);\n\nvar _module2 = _interopRequireDefault(_module);\n\nvar _code = __webpack_require__(13);\n\nvar _code2 = _interopRequireDefault(_code);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SyntaxCodeBlock = function (_CodeBlock) {\n _inherits(SyntaxCodeBlock, _CodeBlock);\n\n function SyntaxCodeBlock() {\n _classCallCheck(this, SyntaxCodeBlock);\n\n return _possibleConstructorReturn(this, (SyntaxCodeBlock.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock)).apply(this, arguments));\n }\n\n _createClass(SyntaxCodeBlock, [{\n key: 'replaceWith',\n value: function replaceWith(block) {\n this.domNode.textContent = this.domNode.textContent;\n this.attach();\n _get(SyntaxCodeBlock.prototype.__proto__ || Object.getPrototypeOf(SyntaxCodeBlock.prototype), 'replaceWith', this).call(this, block);\n }\n }, {\n key: 'highlight',\n value: function highlight(_highlight) {\n var text = this.domNode.textContent;\n if (this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n this.domNode.innerHTML = _highlight(text);\n this.domNode.normalize();\n this.attach();\n }\n this.cachedText = text;\n }\n }\n }]);\n\n return SyntaxCodeBlock;\n}(_code2.default);\n\nSyntaxCodeBlock.className = 'ql-syntax';\n\nvar CodeToken = new _parchment2.default.Attributor.Class('token', 'hljs', {\n scope: _parchment2.default.Scope.INLINE\n});\n\nvar Syntax = function (_Module) {\n _inherits(Syntax, _Module);\n\n _createClass(Syntax, null, [{\n key: 'register',\n value: function register() {\n _quill2.default.register(CodeToken, true);\n _quill2.default.register(SyntaxCodeBlock, true);\n }\n }]);\n\n function Syntax(quill, options) {\n _classCallCheck(this, Syntax);\n\n var _this2 = _possibleConstructorReturn(this, (Syntax.__proto__ || Object.getPrototypeOf(Syntax)).call(this, quill, options));\n\n if (typeof _this2.options.highlight !== 'function') {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n var timer = null;\n _this2.quill.on(_quill2.default.events.SCROLL_OPTIMIZE, function () {\n clearTimeout(timer);\n timer = setTimeout(function () {\n _this2.highlight();\n timer = null;\n }, _this2.options.interval);\n });\n _this2.highlight();\n return _this2;\n }\n\n _createClass(Syntax, [{\n key: 'highlight',\n value: function highlight() {\n var _this3 = this;\n\n if (this.quill.selection.composing) return;\n this.quill.update(_quill2.default.sources.USER);\n var range = this.quill.getSelection();\n this.quill.scroll.descendants(SyntaxCodeBlock).forEach(function (code) {\n code.highlight(_this3.options.highlight);\n });\n this.quill.update(_quill2.default.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, _quill2.default.sources.SILENT);\n }\n }\n }]);\n\n return Syntax;\n}(_module2.default);\n\nSyntax.DEFAULTS = {\n highlight: function () {\n if (window.hljs == null) return null;\n return function (text) {\n var result = window.hljs.highlightAuto(text);\n return result.value;\n };\n }(),\n interval: 1000\n};\n\nexports.CodeBlock = SyntaxCodeBlock;\nexports.CodeToken = CodeToken;\nexports.default = Syntax;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=13 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=14 x2=4 y1=14 y2=14></line> <line class=ql-stroke x1=12 x2=6 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=5 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=9 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=15 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=15 x2=3 y1=14 y2=14></line> <line class=ql-stroke x1=15 x2=3 y1=4 y2=4></line> </svg>\";\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <g class=\\\"ql-fill ql-color-label\\\"> <polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"></polygon> <rect height=1 width=1 x=4 y=4></rect> <polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"></polygon> <rect height=1 width=1 x=2 y=6></rect> <rect height=1 width=1 x=3 y=5></rect> <rect height=1 width=1 x=4 y=7></rect> <polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"></polygon> <rect height=1 width=1 x=2 y=12></rect> <rect height=1 width=1 x=2 y=9></rect> <rect height=1 width=1 x=2 y=15></rect> <polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"></polygon> <rect height=1 width=1 x=3 y=8></rect> <path d=M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z></path> <path d=M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z></path> <path d=M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z></path> <rect height=1 width=1 x=12 y=2></rect> <rect height=1 width=1 x=11 y=3></rect> <path d=M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z></path> <rect height=1 width=1 x=2 y=3></rect> <rect height=1 width=1 x=6 y=2></rect> <rect height=1 width=1 x=3 y=2></rect> <rect height=1 width=1 x=5 y=3></rect> <rect height=1 width=1 x=9 y=2></rect> <rect height=1 width=1 x=15 y=14></rect> <polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"></polygon> <rect height=1 width=1 x=13 y=7></rect> <rect height=1 width=1 x=15 y=5></rect> <rect height=1 width=1 x=14 y=6></rect> <rect height=1 width=1 x=15 y=8></rect> <rect height=1 width=1 x=14 y=9></rect> <path d=M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z></path> <rect height=1 width=1 x=14 y=3></rect> <polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"></polygon> <rect height=1 width=1 x=15 y=2></rect> <rect height=1 width=1 x=12 y=5></rect> <rect height=1 width=1 x=13 y=4></rect> <polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"></polygon> <rect height=1 width=1 x=9 y=14></rect> <rect height=1 width=1 x=8 y=15></rect> <path d=M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z></path> <rect height=1 width=1 x=5 y=15></rect> <path d=M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z></path> <rect height=1 width=1 x=11 y=15></rect> <path d=M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z></path> <rect height=1 width=1 x=14 y=15></rect> <rect height=1 width=1 x=15 y=11></rect> </g> <polyline class=ql-stroke points=\\\"5.5 13 9 5 12.5 13\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=11 y2=11></line> </svg>\";\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=4 y=5></rect> <rect class=\\\"ql-fill ql-stroke\\\" height=3 width=3 x=11 y=5></rect> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M7,8c0,4.031-3,5-3,5></path> <path class=\\\"ql-even ql-fill ql-stroke\\\" d=M14,8c0,4.031-3,5-3,5></path> </svg>\";\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z></path> <path class=ql-stroke d=M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z></path> </svg>\";\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=5 x2=13 y1=3 y2=3></line> <line class=ql-stroke x1=6 x2=9.35 y1=12 y2=3></line> <line class=ql-stroke x1=11 x2=15 y1=11 y2=15></line> <line class=ql-stroke x1=15 x2=11 y1=11 y2=15></line> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=7 x=2 y=14></rect> </svg>\";\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=3 x2=15 y1=15 y2=15></line> <polyline class=ql-stroke points=\\\"5.5 11 9 3 12.5 11\\\"></polyline> <line class=ql-stroke x1=11.63 x2=6.38 y1=9 y2=9></line> </svg>\";\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=15 x2=11 y1=4 y2=4></line> <path class=ql-fill d=M11,3a3,3,0,0,0,0,6h1V3H11Z></path> <rect class=ql-fill height=11 width=1 x=11 y=4></rect> <rect class=ql-fill height=11 width=1 x=13 y=4></rect> </svg>\";\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"></polygon> <line class=\\\"ql-stroke ql-fill\\\" x1=9 x2=5 y1=4 y2=4></line> <path class=ql-fill d=M5,3A3,3,0,0,0,5,9H6V3H5Z></path> <rect class=ql-fill height=11 width=1 x=5 y=4></rect> <rect class=ql-fill height=11 width=1 x=7 y=4></rect> </svg>\";\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M14,16H4a1,1,0,0,1,0-2H14A1,1,0,0,1,14,16Z /> <path class=ql-fill d=M14,4H4A1,1,0,0,1,4,2H14A1,1,0,0,1,14,4Z /> <rect class=ql-fill x=3 y=6 width=12 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M13,16H5a1,1,0,0,1,0-2h8A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H5A1,1,0,0,1,5,2h8A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=2 y=6 width=14 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15,8H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,8Z /> <path class=ql-fill d=M15,12H13a1,1,0,0,1,0-2h2A1,1,0,0,1,15,12Z /> <path class=ql-fill d=M15,16H5a1,1,0,0,1,0-2H15A1,1,0,0,1,15,16Z /> <path class=ql-fill d=M15,4H5A1,1,0,0,1,5,2H15A1,1,0,0,1,15,4Z /> <rect class=ql-fill x=2 y=6 width=8 height=6 rx=1 ry=1 /> </svg>\";\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M5,8H3A1,1,0,0,1,3,6H5A1,1,0,0,1,5,8Z /> <path class=ql-fill d=M5,12H3a1,1,0,0,1,0-2H5A1,1,0,0,1,5,12Z /> <path class=ql-fill d=M13,16H3a1,1,0,0,1,0-2H13A1,1,0,0,1,13,16Z /> <path class=ql-fill d=M13,4H3A1,1,0,0,1,3,2H13A1,1,0,0,1,13,4Z /> <rect class=ql-fill x=8 y=6 width=8 height=6 rx=1 ry=1 transform=\\\"translate(24 18) rotate(-180)\\\"/> </svg>\";\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z></path> <rect class=ql-fill height=1.6 rx=0.8 ry=0.8 width=5 x=5.15 y=6.2></rect> <path class=ql-fill d=M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z></path> </svg>\";\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z /> </svg>\";\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewBox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z /> </svg>\";\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=13 y1=4 y2=4></line> <line class=ql-stroke x1=5 x2=11 y1=14 y2=14></line> <line class=ql-stroke x1=8 x2=10 y1=14 y2=4></line> </svg>\";\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=10 width=12 x=3 y=4></rect> <circle class=ql-fill cx=6 cy=7 r=1></circle> <polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=3 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"5 7 5 11 3 9 5 7\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=11 y1=7 y2=11></line> <path class=\\\"ql-even ql-stroke\\\" d=M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z></path> <path class=\\\"ql-even ql-stroke\\\" d=M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z></path> </svg>\";\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=7 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=7 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=7 x2=15 y1=14 y2=14></line> <line class=\\\"ql-stroke ql-thin\\\" x1=2.5 x2=4.5 y1=5.5 y2=5.5></line> <path class=ql-fill d=M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z></path> <path class=\\\"ql-stroke ql-thin\\\" d=M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156></path> <path class=\\\"ql-stroke ql-thin\\\" d=M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109></path> </svg>\";\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=6 x2=15 y1=4 y2=4></line> <line class=ql-stroke x1=6 x2=15 y1=9 y2=9></line> <line class=ql-stroke x1=6 x2=15 y1=14 y2=14></line> <line class=ql-stroke x1=3 x2=3 y1=4 y2=4></line> <line class=ql-stroke x1=3 x2=3 y1=9 y2=9></line> <line class=ql-stroke x1=3 x2=3 y1=14 y2=14></line> </svg>\";\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"> <line class=ql-stroke x1=9 x2=15 y1=4 y2=4></line> <polyline class=ql-stroke points=\\\"3 4 4 5 6 3\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=14 y2=14></line> <polyline class=ql-stroke points=\\\"3 14 4 15 6 13\\\"></polyline> <line class=ql-stroke x1=9 x2=15 y1=9 y2=9></line> <polyline class=ql-stroke points=\\\"3 9 4 10 6 8\\\"></polyline> </svg>\";\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z /> <path class=ql-fill d=M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z /> </svg>\";\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-fill d=M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z /> <path class=ql-fill d=M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z /> </svg>\";\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <line class=\\\"ql-stroke ql-thin\\\" x1=15.5 x2=2.5 y1=8.5 y2=9.5></line> <path class=ql-fill d=M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z></path> <path class=ql-fill d=M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z></path> </svg>\";\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <path class=ql-stroke d=M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3></path> <rect class=ql-fill height=1 rx=0.5 ry=0.5 width=12 x=3 y=15></rect> </svg>\";\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <rect class=ql-stroke height=12 width=12 x=3 y=3></rect> <rect class=ql-fill height=12 width=1 x=5 y=3></rect> <rect class=ql-fill height=12 width=1 x=12 y=3></rect> <rect class=ql-fill height=2 width=8 x=5 y=8></rect> <rect class=ql-fill height=1 width=3 x=3 y=5></rect> <rect class=ql-fill height=1 width=3 x=3 y=7></rect> <rect class=ql-fill height=1 width=3 x=3 y=10></rect> <rect class=ql-fill height=1 width=3 x=3 y=12></rect> <rect class=ql-fill height=1 width=3 x=12 y=5></rect> <rect class=ql-fill height=1 width=3 x=12 y=7></rect> <rect class=ql-fill height=1 width=3 x=12 y=10></rect> <rect class=ql-fill height=1 width=3 x=12 y=12></rect> </svg>\";\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"<svg viewbox=\\\"0 0 18 18\\\"> <polygon class=ql-stroke points=\\\"7 11 9 13 11 11 7 11\\\"></polygon> <polygon class=ql-stroke points=\\\"7 7 9 5 11 7 7 7\\\"></polygon> </svg>\";\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.BubbleTooltip = undefined;\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _extend = __webpack_require__(3);\n\nvar _extend2 = _interopRequireDefault(_extend);\n\nvar _emitter = __webpack_require__(8);\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _base = __webpack_require__(43);\n\nvar _base2 = _interopRequireDefault(_base);\n\nvar _selection = __webpack_require__(15);\n\nvar _icons = __webpack_require__(41);\n\nvar _icons2 = _interopRequireDefault(_icons);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{ header: 1 }, { header: 2 }, 'blockquote']];\n\nvar BubbleTheme = function (_BaseTheme) {\n _inherits(BubbleTheme, _BaseTheme);\n\n function BubbleTheme(quill, options) {\n _classCallCheck(this, BubbleTheme);\n\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n\n var _this = _possibleConstructorReturn(this, (BubbleTheme.__proto__ || Object.getPrototypeOf(BubbleTheme)).call(this, quill, options));\n\n _this.quill.container.classList.add('ql-bubble');\n return _this;\n }\n\n _createClass(BubbleTheme, [{\n key: 'extendToolbar',\n value: function extendToolbar(toolbar) {\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons([].slice.call(toolbar.container.querySelectorAll('button')), _icons2.default);\n this.buildPickers([].slice.call(toolbar.container.querySelectorAll('select')), _icons2.default);\n }\n }]);\n\n return BubbleTheme;\n}(_base2.default);\n\nBubbleTheme.DEFAULTS = (0, _extend2.default)(true, {}, _base2.default.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link: function link(value) {\n if (!value) {\n this.quill.format('link', false);\n } else {\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\n\nvar BubbleTooltip = function (_BaseTooltip) {\n _inherits(BubbleTooltip, _BaseTooltip);\n\n function BubbleTooltip(quill, bounds) {\n _classCallCheck(this, BubbleTooltip);\n\n var _this2 = _possibleConstructorReturn(this, (BubbleTooltip.__proto__ || Object.getPrototypeOf(BubbleTooltip)).call(this, quill, bounds));\n\n _this2.quill.on(_emitter2.default.events.EDITOR_CHANGE, function (type, range, oldRange, source) {\n if (type !== _emitter2.default.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === _emitter2.default.sources.USER) {\n _this2.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n _this2.root.style.left = '0px';\n _this2.root.style.width = '';\n _this2.root.style.width = _this2.root.offsetWidth + 'px';\n var lines = _this2.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n _this2.position(_this2.quill.getBounds(range));\n } else {\n var lastLine = lines[lines.length - 1];\n var index = _this2.quill.getIndex(lastLine);\n var length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n var _bounds = _this2.quill.getBounds(new _selection.Range(index, length));\n _this2.position(_bounds);\n }\n } else if (document.activeElement !== _this2.textbox && _this2.quill.hasFocus()) {\n _this2.hide();\n }\n });\n return _this2;\n }\n\n _createClass(BubbleTooltip, [{\n key: 'listen',\n value: function listen() {\n var _this3 = this;\n\n _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'listen', this).call(this);\n this.root.querySelector('.ql-close').addEventListener('click', function () {\n _this3.root.classList.remove('ql-editing');\n });\n this.quill.on(_emitter2.default.events.SCROLL_OPTIMIZE, function () {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(function () {\n if (_this3.root.classList.contains('ql-hidden')) return;\n var range = _this3.quill.getSelection();\n if (range != null) {\n _this3.position(_this3.quill.getBounds(range));\n }\n }, 1);\n });\n }\n }, {\n key: 'cancel',\n value: function cancel() {\n this.show();\n }\n }, {\n key: 'position',\n value: function position(reference) {\n var shift = _get(BubbleTooltip.prototype.__proto__ || Object.getPrototypeOf(BubbleTooltip.prototype), 'position', this).call(this, reference);\n var arrow = this.root.querySelector('.ql-tooltip-arrow');\n arrow.style.marginLeft = '';\n if (shift === 0) return shift;\n arrow.style.marginLeft = -1 * shift - arrow.offsetWidth / 2 + 'px';\n }\n }]);\n\n return BubbleTooltip;\n}(_base.BaseTooltip);\n\nBubbleTooltip.TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n\nexports.BubbleTooltip = BubbleTooltip;\nexports.default = BubbleTheme;\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(63);\n\n\n/***/ })\n/******/ ])[\"default\"];\n});","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.<string>} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lodash_clonedeep_1 = __importDefault(require(\"lodash.clonedeep\"));\nvar lodash_isequal_1 = __importDefault(require(\"lodash.isequal\"));\nvar AttributeMap;\n(function (AttributeMap) {\n function compose(a, b, keepNull) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = lodash_clonedeep_1.default(b);\n if (!keepNull) {\n attributes = Object.keys(attributes).reduce(function (copy, key) {\n if (attributes[key] != null) {\n copy[key] = attributes[key];\n }\n return copy;\n }, {});\n }\n for (var key in a) {\n if (a[key] !== undefined && b[key] === undefined) {\n attributes[key] = a[key];\n }\n }\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.compose = compose;\n function diff(a, b) {\n if (a === void 0) { a = {}; }\n if (b === void 0) { b = {}; }\n if (typeof a !== 'object') {\n a = {};\n }\n if (typeof b !== 'object') {\n b = {};\n }\n var attributes = Object.keys(a)\n .concat(Object.keys(b))\n .reduce(function (attrs, key) {\n if (!lodash_isequal_1.default(a[key], b[key])) {\n attrs[key] = b[key] === undefined ? null : b[key];\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.diff = diff;\n function invert(attr, base) {\n if (attr === void 0) { attr = {}; }\n if (base === void 0) { base = {}; }\n attr = attr || {};\n var baseInverted = Object.keys(base).reduce(function (memo, key) {\n if (base[key] !== attr[key] && attr[key] !== undefined) {\n memo[key] = base[key];\n }\n return memo;\n }, {});\n return Object.keys(attr).reduce(function (memo, key) {\n if (attr[key] !== base[key] && base[key] === undefined) {\n memo[key] = null;\n }\n return memo;\n }, baseInverted);\n }\n AttributeMap.invert = invert;\n function transform(a, b, priority) {\n if (priority === void 0) { priority = false; }\n if (typeof a !== 'object') {\n return b;\n }\n if (typeof b !== 'object') {\n return undefined;\n }\n if (!priority) {\n return b; // b simply overwrites us without priority\n }\n var attributes = Object.keys(b).reduce(function (attrs, key) {\n if (a[key] === undefined) {\n attrs[key] = b[key]; // null is a valid value\n }\n return attrs;\n }, {});\n return Object.keys(attributes).length > 0 ? attributes : undefined;\n }\n AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports.default = AttributeMap;\n//# sourceMappingURL=AttributeMap.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Op_1 = __importDefault(require(\"./Op\"));\nvar Iterator = /** @class */ (function () {\n function Iterator(ops) {\n this.ops = ops;\n this.index = 0;\n this.offset = 0;\n }\n Iterator.prototype.hasNext = function () {\n return this.peekLength() < Infinity;\n };\n Iterator.prototype.next = function (length) {\n if (!length) {\n length = Infinity;\n }\n var nextOp = this.ops[this.index];\n if (nextOp) {\n var offset = this.offset;\n var opLength = Op_1.default.length(nextOp);\n if (length >= opLength - offset) {\n length = opLength - offset;\n this.index += 1;\n this.offset = 0;\n }\n else {\n this.offset += length;\n }\n if (typeof nextOp.delete === 'number') {\n return { delete: length };\n }\n else {\n var retOp = {};\n if (nextOp.attributes) {\n retOp.attributes = nextOp.attributes;\n }\n if (typeof nextOp.retain === 'number') {\n retOp.retain = length;\n }\n else if (typeof nextOp.insert === 'string') {\n retOp.insert = nextOp.insert.substr(offset, length);\n }\n else {\n // offset should === 0, length should === 1\n retOp.insert = nextOp.insert;\n }\n return retOp;\n }\n }\n else {\n return { retain: Infinity };\n }\n };\n Iterator.prototype.peek = function () {\n return this.ops[this.index];\n };\n Iterator.prototype.peekLength = function () {\n if (this.ops[this.index]) {\n // Should never return 0 if our index is being managed correctly\n return Op_1.default.length(this.ops[this.index]) - this.offset;\n }\n else {\n return Infinity;\n }\n };\n Iterator.prototype.peekType = function () {\n if (this.ops[this.index]) {\n if (typeof this.ops[this.index].delete === 'number') {\n return 'delete';\n }\n else if (typeof this.ops[this.index].retain === 'number') {\n return 'retain';\n }\n else {\n return 'insert';\n }\n }\n return 'retain';\n };\n Iterator.prototype.rest = function () {\n if (!this.hasNext()) {\n return [];\n }\n else if (this.offset === 0) {\n return this.ops.slice(this.index);\n }\n else {\n var offset = this.offset;\n var index = this.index;\n var next = this.next();\n var rest = this.ops.slice(this.index);\n this.offset = offset;\n this.index = index;\n return [next].concat(rest);\n }\n };\n return Iterator;\n}());\nexports.default = Iterator;\n//# sourceMappingURL=Iterator.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Iterator_1 = __importDefault(require(\"./Iterator\"));\nvar Op;\n(function (Op) {\n function iterator(ops) {\n return new Iterator_1.default(ops);\n }\n Op.iterator = iterator;\n function length(op) {\n if (typeof op.delete === 'number') {\n return op.delete;\n }\n else if (typeof op.retain === 'number') {\n return op.retain;\n }\n else {\n return typeof op.insert === 'string' ? op.insert.length : 1;\n }\n }\n Op.length = length;\n})(Op || (Op = {}));\nexports.default = Op;\n//# sourceMappingURL=Op.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar fast_diff_1 = __importDefault(require(\"fast-diff\"));\nvar lodash_clonedeep_1 = __importDefault(require(\"lodash.clonedeep\"));\nvar lodash_isequal_1 = __importDefault(require(\"lodash.isequal\"));\nvar AttributeMap_1 = __importDefault(require(\"./AttributeMap\"));\nvar Op_1 = __importDefault(require(\"./Op\"));\nvar NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nvar Delta = /** @class */ (function () {\n function Delta(ops) {\n // Assume we are given a well formed ops\n if (Array.isArray(ops)) {\n this.ops = ops;\n }\n else if (ops != null && Array.isArray(ops.ops)) {\n this.ops = ops.ops;\n }\n else {\n this.ops = [];\n }\n }\n Delta.prototype.insert = function (arg, attributes) {\n var newOp = {};\n if (typeof arg === 'string' && arg.length === 0) {\n return this;\n }\n newOp.insert = arg;\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.delete = function (length) {\n if (length <= 0) {\n return this;\n }\n return this.push({ delete: length });\n };\n Delta.prototype.retain = function (length, attributes) {\n if (length <= 0) {\n return this;\n }\n var newOp = { retain: length };\n if (attributes != null &&\n typeof attributes === 'object' &&\n Object.keys(attributes).length > 0) {\n newOp.attributes = attributes;\n }\n return this.push(newOp);\n };\n Delta.prototype.push = function (newOp) {\n var index = this.ops.length;\n var lastOp = this.ops[index - 1];\n newOp = lodash_clonedeep_1.default(newOp);\n if (typeof lastOp === 'object') {\n if (typeof newOp.delete === 'number' &&\n typeof lastOp.delete === 'number') {\n this.ops[index - 1] = { delete: lastOp.delete + newOp.delete };\n return this;\n }\n // Since it does not matter if we insert before or after deleting at the same index,\n // always prefer to insert first\n if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n index -= 1;\n lastOp = this.ops[index - 1];\n if (typeof lastOp !== 'object') {\n this.ops.unshift(newOp);\n return this;\n }\n }\n if (lodash_isequal_1.default(newOp.attributes, lastOp.attributes)) {\n if (typeof newOp.insert === 'string' &&\n typeof lastOp.insert === 'string') {\n this.ops[index - 1] = { insert: lastOp.insert + newOp.insert };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n else if (typeof newOp.retain === 'number' &&\n typeof lastOp.retain === 'number') {\n this.ops[index - 1] = { retain: lastOp.retain + newOp.retain };\n if (typeof newOp.attributes === 'object') {\n this.ops[index - 1].attributes = newOp.attributes;\n }\n return this;\n }\n }\n }\n if (index === this.ops.length) {\n this.ops.push(newOp);\n }\n else {\n this.ops.splice(index, 0, newOp);\n }\n return this;\n };\n Delta.prototype.chop = function () {\n var lastOp = this.ops[this.ops.length - 1];\n if (lastOp && lastOp.retain && !lastOp.attributes) {\n this.ops.pop();\n }\n return this;\n };\n Delta.prototype.filter = function (predicate) {\n return this.ops.filter(predicate);\n };\n Delta.prototype.forEach = function (predicate) {\n this.ops.forEach(predicate);\n };\n Delta.prototype.map = function (predicate) {\n return this.ops.map(predicate);\n };\n Delta.prototype.partition = function (predicate) {\n var passed = [];\n var failed = [];\n this.forEach(function (op) {\n var target = predicate(op) ? passed : failed;\n target.push(op);\n });\n return [passed, failed];\n };\n Delta.prototype.reduce = function (predicate, initialValue) {\n return this.ops.reduce(predicate, initialValue);\n };\n Delta.prototype.changeLength = function () {\n return this.reduce(function (length, elem) {\n if (elem.insert) {\n return length + Op_1.default.length(elem);\n }\n else if (elem.delete) {\n return length - elem.delete;\n }\n return length;\n }, 0);\n };\n Delta.prototype.length = function () {\n return this.reduce(function (length, elem) {\n return length + Op_1.default.length(elem);\n }, 0);\n };\n Delta.prototype.slice = function (start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = Infinity; }\n var ops = [];\n var iter = Op_1.default.iterator(this.ops);\n var index = 0;\n while (index < end && iter.hasNext()) {\n var nextOp = void 0;\n if (index < start) {\n nextOp = iter.next(start - index);\n }\n else {\n nextOp = iter.next(end - index);\n ops.push(nextOp);\n }\n index += Op_1.default.length(nextOp);\n }\n return new Delta(ops);\n };\n Delta.prototype.compose = function (other) {\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var ops = [];\n var firstOther = otherIter.peek();\n if (firstOther != null &&\n typeof firstOther.retain === 'number' &&\n firstOther.attributes == null) {\n var firstLeft = firstOther.retain;\n while (thisIter.peekType() === 'insert' &&\n thisIter.peekLength() <= firstLeft) {\n firstLeft -= thisIter.peekLength();\n ops.push(thisIter.next());\n }\n if (firstOther.retain - firstLeft > 0) {\n otherIter.next(firstOther.retain - firstLeft);\n }\n }\n var delta = new Delta(ops);\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else if (thisIter.peekType() === 'delete') {\n delta.push(thisIter.next());\n }\n else {\n var length_1 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_1);\n var otherOp = otherIter.next(length_1);\n if (typeof otherOp.retain === 'number') {\n var newOp = {};\n if (typeof thisOp.retain === 'number') {\n newOp.retain = length_1;\n }\n else {\n newOp.insert = thisOp.insert;\n }\n // Preserve null when composing with a retain, otherwise remove it for inserts\n var attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n if (attributes) {\n newOp.attributes = attributes;\n }\n delta.push(newOp);\n // Optimization if rest of other is just retain\n if (!otherIter.hasNext() &&\n lodash_isequal_1.default(delta.ops[delta.ops.length - 1], newOp)) {\n var rest = new Delta(thisIter.rest());\n return delta.concat(rest).chop();\n }\n // Other op should be delete, we could be an insert or retain\n // Insert + delete cancels out\n }\n else if (typeof otherOp.delete === 'number' &&\n typeof thisOp.retain === 'number') {\n delta.push(otherOp);\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.concat = function (other) {\n var delta = new Delta(this.ops.slice());\n if (other.ops.length > 0) {\n delta.push(other.ops[0]);\n delta.ops = delta.ops.concat(other.ops.slice(1));\n }\n return delta;\n };\n Delta.prototype.diff = function (other, cursor) {\n if (this.ops === other.ops) {\n return new Delta();\n }\n var strings = [this, other].map(function (delta) {\n return delta\n .map(function (op) {\n if (op.insert != null) {\n return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n }\n var prep = delta === other ? 'on' : 'with';\n throw new Error('diff() called ' + prep + ' non-document');\n })\n .join('');\n });\n var retDelta = new Delta();\n var diffResult = fast_diff_1.default(strings[0], strings[1], cursor);\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n diffResult.forEach(function (component) {\n var length = component[1].length;\n while (length > 0) {\n var opLength = 0;\n switch (component[0]) {\n case fast_diff_1.default.INSERT:\n opLength = Math.min(otherIter.peekLength(), length);\n retDelta.push(otherIter.next(opLength));\n break;\n case fast_diff_1.default.DELETE:\n opLength = Math.min(length, thisIter.peekLength());\n thisIter.next(opLength);\n retDelta.delete(opLength);\n break;\n case fast_diff_1.default.EQUAL:\n opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n var thisOp = thisIter.next(opLength);\n var otherOp = otherIter.next(opLength);\n if (lodash_isequal_1.default(thisOp.insert, otherOp.insert)) {\n retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n }\n else {\n retDelta.push(otherOp).delete(opLength);\n }\n break;\n }\n length -= opLength;\n }\n });\n return retDelta.chop();\n };\n Delta.prototype.eachLine = function (predicate, newline) {\n if (newline === void 0) { newline = '\\n'; }\n var iter = Op_1.default.iterator(this.ops);\n var line = new Delta();\n var i = 0;\n while (iter.hasNext()) {\n if (iter.peekType() !== 'insert') {\n return;\n }\n var thisOp = iter.peek();\n var start = Op_1.default.length(thisOp) - iter.peekLength();\n var index = typeof thisOp.insert === 'string'\n ? thisOp.insert.indexOf(newline, start) - start\n : -1;\n if (index < 0) {\n line.push(iter.next());\n }\n else if (index > 0) {\n line.push(iter.next(index));\n }\n else {\n if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n return;\n }\n i += 1;\n line = new Delta();\n }\n }\n if (line.length() > 0) {\n predicate(line, {}, i);\n }\n };\n Delta.prototype.invert = function (base) {\n var inverted = new Delta();\n this.reduce(function (baseIndex, op) {\n if (op.insert) {\n inverted.delete(Op_1.default.length(op));\n }\n else if (op.retain && op.attributes == null) {\n inverted.retain(op.retain);\n return baseIndex + op.retain;\n }\n else if (op.delete || (op.retain && op.attributes)) {\n var length_2 = (op.delete || op.retain);\n var slice = base.slice(baseIndex, baseIndex + length_2);\n slice.forEach(function (baseOp) {\n if (op.delete) {\n inverted.push(baseOp);\n }\n else if (op.retain && op.attributes) {\n inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n }\n });\n return baseIndex + length_2;\n }\n return baseIndex;\n }, 0);\n return inverted.chop();\n };\n Delta.prototype.transform = function (arg, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n if (typeof arg === 'number') {\n return this.transformPosition(arg, priority);\n }\n var other = arg;\n var thisIter = Op_1.default.iterator(this.ops);\n var otherIter = Op_1.default.iterator(other.ops);\n var delta = new Delta();\n while (thisIter.hasNext() || otherIter.hasNext()) {\n if (thisIter.peekType() === 'insert' &&\n (priority || otherIter.peekType() !== 'insert')) {\n delta.retain(Op_1.default.length(thisIter.next()));\n }\n else if (otherIter.peekType() === 'insert') {\n delta.push(otherIter.next());\n }\n else {\n var length_3 = Math.min(thisIter.peekLength(), otherIter.peekLength());\n var thisOp = thisIter.next(length_3);\n var otherOp = otherIter.next(length_3);\n if (thisOp.delete) {\n // Our delete either makes their delete redundant or removes their retain\n continue;\n }\n else if (otherOp.delete) {\n delta.push(otherOp);\n }\n else {\n // We retain either their retain or insert\n delta.retain(length_3, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n }\n }\n }\n return delta.chop();\n };\n Delta.prototype.transformPosition = function (index, priority) {\n if (priority === void 0) { priority = false; }\n priority = !!priority;\n var thisIter = Op_1.default.iterator(this.ops);\n var offset = 0;\n while (thisIter.hasNext() && offset <= index) {\n var length_4 = thisIter.peekLength();\n var nextType = thisIter.peekType();\n thisIter.next();\n if (nextType === 'delete') {\n index -= Math.min(length_4, index - offset);\n continue;\n }\n else if (nextType === 'insert' && (offset < index || !priority)) {\n index += length_4;\n }\n offset += length_4;\n }\n return index;\n };\n Delta.Op = Op_1.default;\n Delta.AttributeMap = AttributeMap_1.default;\n return Delta;\n}());\nmodule.exports = Delta;\n//# sourceMappingURL=Delta.js.map","/*!\n * VueQuill @vueup/vue-quill v1.2.0\n * https://vueup.github.io/vue-quill/\n * \n * Includes quill v1.3.7\n * https://quilljs.com/\n * \n * Copyright (c) 2023 Ahmad Luthfi Masruri\n * Released under the MIT license\n * Date: 2023-05-12T08:44:03.742Z\n */\nimport Quill from 'quill';\nexport { default as Quill } from 'quill';\nimport Delta from 'quill-delta';\nexport { default as Delta } from 'quill-delta';\nimport { defineComponent, onMounted, onBeforeUnmount, ref, watch, nextTick, h } from 'vue';\n\nconst toolbarOptions = {\r\n essential: [\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n ['bold', 'italic', 'underline'],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { align: [] }],\r\n ['blockquote', 'code-block', 'link'],\r\n [{ color: [] }, 'clean'],\r\n ],\r\n minimal: [\r\n [{ header: 1 }, { header: 2 }],\r\n ['bold', 'italic', 'underline'],\r\n [{ list: 'ordered' }, { list: 'bullet' }, { align: [] }],\r\n ],\r\n full: [\r\n ['bold', 'italic', 'underline', 'strike'],\r\n ['blockquote', 'code-block'],\r\n [{ header: 1 }, { header: 2 }],\r\n [{ list: 'ordered' }, { list: 'bullet' }],\r\n [{ script: 'sub' }, { script: 'super' }],\r\n [{ indent: '-1' }, { indent: '+1' }],\r\n [{ direction: 'rtl' }],\r\n [{ size: ['small', false, 'large', 'huge'] }],\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n [{ color: [] }, { background: [] }],\r\n [{ font: [] }],\r\n [{ align: [] }],\r\n ['link', 'video', 'image'],\r\n ['clean'], // remove formatting button\r\n ],\r\n};\n\nconst QuillEditor = defineComponent({\r\n name: 'QuillEditor',\r\n inheritAttrs: false,\r\n props: {\r\n content: {\r\n type: [String, Object],\r\n },\r\n contentType: {\r\n type: String,\r\n default: 'delta',\r\n validator: (value) => {\r\n return ['delta', 'html', 'text'].includes(value);\r\n },\r\n },\r\n enable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n readOnly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n placeholder: {\r\n type: String,\r\n required: false,\r\n },\r\n theme: {\r\n type: String,\r\n default: 'snow',\r\n validator: (value) => {\r\n return ['snow', 'bubble', ''].includes(value);\r\n },\r\n },\r\n toolbar: {\r\n type: [String, Array, Object],\r\n required: false,\r\n validator: (value) => {\r\n if (typeof value === 'string' && value !== '') {\r\n return value.charAt(0) === '#'\r\n ? true\r\n : Object.keys(toolbarOptions).indexOf(value) !== -1;\r\n }\r\n return true;\r\n },\r\n },\r\n modules: {\r\n type: Object,\r\n required: false,\r\n },\r\n options: {\r\n type: Object,\r\n required: false,\r\n },\r\n globalOptions: {\r\n type: Object,\r\n required: false,\r\n },\r\n },\r\n emits: [\r\n 'textChange',\r\n 'selectionChange',\r\n 'editorChange',\r\n 'update:content',\r\n 'focus',\r\n 'blur',\r\n 'ready',\r\n ],\r\n setup: (props, ctx) => {\r\n onMounted(() => {\r\n initialize();\r\n });\r\n onBeforeUnmount(() => {\r\n quill = null;\r\n });\r\n let quill;\r\n let options;\r\n const editor = ref();\r\n // Initialize Quill\r\n const initialize = () => {\r\n var _a;\r\n if (!editor.value)\r\n return;\r\n options = composeOptions();\r\n // Register modules\r\n if (props.modules) {\r\n if (Array.isArray(props.modules)) {\r\n for (const module of props.modules) {\r\n Quill.register(`modules/${module.name}`, module.module);\r\n }\r\n }\r\n else {\r\n Quill.register(`modules/${props.modules.name}`, props.modules.module);\r\n }\r\n }\r\n // Create new Quill instance\r\n quill = new Quill(editor.value, options);\r\n // Set editor content\r\n setContents(props.content);\r\n // Set event handlers\r\n quill.on('text-change', handleTextChange);\r\n quill.on('selection-change', handleSelectionChange);\r\n quill.on('editor-change', handleEditorChange);\r\n // Remove editor class when theme changes\r\n if (props.theme !== 'bubble')\r\n editor.value.classList.remove('ql-bubble');\r\n if (props.theme !== 'snow')\r\n editor.value.classList.remove('ql-snow');\r\n // Fix clicking the quill toolbar is detected as blur event\r\n (_a = quill\r\n .getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container.addEventListener('mousedown', (e) => {\r\n e.preventDefault();\r\n });\r\n // Emit ready event\r\n ctx.emit('ready', quill);\r\n };\r\n // Compose Options\r\n const composeOptions = () => {\r\n const clientOptions = {};\r\n if (props.theme !== '')\r\n clientOptions.theme = props.theme;\r\n if (props.readOnly)\r\n clientOptions.readOnly = props.readOnly;\r\n if (props.placeholder)\r\n clientOptions.placeholder = props.placeholder;\r\n if (props.toolbar && props.toolbar !== '') {\r\n clientOptions.modules = {\r\n toolbar: (() => {\r\n if (typeof props.toolbar === 'object') {\r\n return props.toolbar;\r\n }\r\n else if (typeof props.toolbar === 'string') {\r\n const str = props.toolbar;\r\n return str.charAt(0) === '#'\r\n ? props.toolbar\r\n : toolbarOptions[props.toolbar];\r\n }\r\n return;\r\n })(),\r\n };\r\n }\r\n if (props.modules) {\r\n const modules = (() => {\r\n var _a, _b;\r\n const modulesOption = {};\r\n if (Array.isArray(props.modules)) {\r\n for (const module of props.modules) {\r\n modulesOption[module.name] = (_a = module.options) !== null && _a !== void 0 ? _a : {};\r\n }\r\n }\r\n else {\r\n modulesOption[props.modules.name] = (_b = props.modules.options) !== null && _b !== void 0 ? _b : {};\r\n }\r\n return modulesOption;\r\n })();\r\n clientOptions.modules = Object.assign({}, clientOptions.modules, modules);\r\n }\r\n return Object.assign({}, props.globalOptions, props.options, clientOptions);\r\n };\r\n const maybeClone = (delta) => {\r\n return typeof delta === 'object' && delta ? delta.slice() : delta;\r\n };\r\n const deltaHasValuesOtherThanRetain = (delta) => {\r\n return Object.values(delta.ops).some((v) => !v.retain || Object.keys(v).length !== 1);\r\n };\r\n // Doesn't need reactivity, but does need to be cloned to avoid deep mutations always registering as equal\r\n let internalModel;\r\n const internalModelEquals = (against) => {\r\n if (typeof internalModel === typeof against) {\r\n if (against === internalModel) {\r\n return true;\r\n }\r\n // Ref/Proxy does not support instanceof, so do a loose check\r\n if (typeof against === 'object' &&\r\n against &&\r\n typeof internalModel === 'object' &&\r\n internalModel) {\r\n return !deltaHasValuesOtherThanRetain(internalModel.diff(against));\r\n }\r\n }\r\n return false;\r\n };\r\n const handleTextChange = (delta, oldContents, source) => {\r\n internalModel = maybeClone(getContents());\r\n // Update v-model:content when text changes\r\n if (!internalModelEquals(props.content)) {\r\n ctx.emit('update:content', internalModel);\r\n }\r\n ctx.emit('textChange', { delta, oldContents, source });\r\n };\r\n const isEditorFocus = ref();\r\n const handleSelectionChange = (range, oldRange, source) => {\r\n // Set isEditorFocus if quill.hasFocus()\r\n isEditorFocus.value = !!(quill === null || quill === void 0 ? void 0 : quill.hasFocus());\r\n ctx.emit('selectionChange', { range, oldRange, source });\r\n };\r\n watch(isEditorFocus, (focus) => {\r\n if (focus)\r\n ctx.emit('focus', editor);\r\n else\r\n ctx.emit('blur', editor);\r\n });\r\n const handleEditorChange = (...args) => {\r\n if (args[0] === 'text-change')\r\n ctx.emit('editorChange', {\r\n name: args[0],\r\n delta: args[1],\r\n oldContents: args[2],\r\n source: args[3],\r\n });\r\n if (args[0] === 'selection-change')\r\n ctx.emit('editorChange', {\r\n name: args[0],\r\n range: args[1],\r\n oldRange: args[2],\r\n source: args[3],\r\n });\r\n };\r\n const getEditor = () => {\r\n return editor.value;\r\n };\r\n const getToolbar = () => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container;\r\n };\r\n const getQuill = () => {\r\n if (quill)\r\n return quill;\r\n else\r\n throw `The quill editor hasn't been instantiated yet,\n make sure to call this method when the editor ready\n or use v-on:ready=\"onReady(quill)\" event instead.`;\r\n };\r\n const getContents = (index, length) => {\r\n if (props.contentType === 'html') {\r\n return getHTML();\r\n }\r\n else if (props.contentType === 'text') {\r\n return getText(index, length);\r\n }\r\n return quill === null || quill === void 0 ? void 0 : quill.getContents(index, length);\r\n };\r\n const setContents = (content, source = 'api') => {\r\n const normalizedContent = !content\r\n ? props.contentType === 'delta'\r\n ? new Delta()\r\n : ''\r\n : content;\r\n if (props.contentType === 'html') {\r\n setHTML(normalizedContent);\r\n }\r\n else if (props.contentType === 'text') {\r\n setText(normalizedContent, source);\r\n }\r\n else {\r\n quill === null || quill === void 0 ? void 0 : quill.setContents(normalizedContent, source);\r\n }\r\n internalModel = maybeClone(normalizedContent);\r\n };\r\n const getText = (index, length) => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.getText(index, length)) !== null && _a !== void 0 ? _a : '';\r\n };\r\n const setText = (text, source = 'api') => {\r\n quill === null || quill === void 0 ? void 0 : quill.setText(text, source);\r\n };\r\n const getHTML = () => {\r\n var _a;\r\n return (_a = quill === null || quill === void 0 ? void 0 : quill.root.innerHTML) !== null && _a !== void 0 ? _a : '';\r\n };\r\n const setHTML = (html) => {\r\n if (quill)\r\n quill.root.innerHTML = html;\r\n };\r\n const pasteHTML = (html, source = 'api') => {\r\n const delta = quill === null || quill === void 0 ? void 0 : quill.clipboard.convert(html);\r\n if (delta)\r\n quill === null || quill === void 0 ? void 0 : quill.setContents(delta, source);\r\n };\r\n const focus = () => {\r\n quill === null || quill === void 0 ? void 0 : quill.focus();\r\n };\r\n const reinit = () => {\r\n nextTick(() => {\r\n var _a;\r\n if (!ctx.slots.toolbar && quill)\r\n (_a = quill.getModule('toolbar')) === null || _a === void 0 ? void 0 : _a.container.remove();\r\n initialize();\r\n });\r\n };\r\n watch(() => props.content, (newContent) => {\r\n if (!quill || !newContent || internalModelEquals(newContent))\r\n return;\r\n // Restore the selection and cursor position after updating the content\r\n const selection = quill.getSelection();\r\n if (selection) {\r\n nextTick(() => quill === null || quill === void 0 ? void 0 : quill.setSelection(selection));\r\n }\r\n setContents(newContent);\r\n }, { deep: true });\r\n watch(() => props.enable, (newValue) => {\r\n if (quill)\r\n quill.enable(newValue);\r\n });\r\n return {\r\n editor,\r\n getEditor,\r\n getToolbar,\r\n getQuill,\r\n getContents,\r\n setContents,\r\n getHTML,\r\n setHTML,\r\n pasteHTML,\r\n focus,\r\n getText,\r\n setText,\r\n reinit,\r\n };\r\n },\r\n render() {\r\n var _a, _b;\r\n return [\r\n (_b = (_a = this.$slots).toolbar) === null || _b === void 0 ? void 0 : _b.call(_a),\r\n h('div', { ref: 'editor', ...this.$attrs }),\r\n ];\r\n },\r\n});\n\nexport { QuillEditor };\n","/*! https://github.com/nevware21/ts-utils v0.11.5 */\n/*\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureRef(value, name) {\n return value[name];\n}\n\nvar UNDEF_VALUE = undefined;\nvar NULL_VALUE = null;\nvar EMPTY = \"\";\nvar FUNCTION = \"function\";\nvar OBJECT = \"object\";\nvar PROTOTYPE = \"prototype\";\nvar __PROTO__ = \"__proto__\";\nvar UNDEFINED = \"undefined\";\nvar CONSTRUCTOR = \"constructor\";\nvar SYMBOL = \"Symbol\";\nvar POLYFILL_TAG = \"_polyfill\";\nvar LENGTH = \"length\";\nvar NAME = \"name\";\nvar CALL = \"call\";\nvar TO_STRING = \"toString\";\nvar ObjClass = ( /*#__PURE__*/_pureAssign(Object));\nvar ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\nvar StrCls = ( /*#__PURE__*/_pureAssign(String));\nvar StrProto = ( /*#__PURE__*/_pureRef(StrCls, PROTOTYPE));\nvar MathCls = ( /*#__PURE__*/_pureAssign(Math));\nvar ArrCls = ( /*#__PURE__*/_pureAssign(Array));\nvar ArrProto = ( /*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\nvar ArrSlice = ( /*#__PURE__*/_pureRef(ArrProto, \"slice\"));\n\nfunction safe(func, argArray) {\n try {\n return {\n v: func.apply(this, argArray)\n };\n }\n catch (e) {\n return { e: e };\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGet(cb, defValue) {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n}\n\nvar _primitiveTypes;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createIs(theType) {\n return function (value) {\n return typeof value === theType;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createObjIs(theName) {\n var theType = \"[object \" + theName + \"]\";\n return function (value) {\n return !!(value && objToString(value) === theType);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objToString(value) {\n return ObjProto[TO_STRING].call(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTypeof(value, theType) {\n return typeof value === theType;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isUndefined(value) {\n return typeof value === UNDEFINED || value === UNDEFINED;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictUndefined(arg) {\n return !isDefined(arg);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNullOrUndefined(value) {\n return value === NULL_VALUE || isUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictNullOrUndefined(value) {\n return value === NULL_VALUE || !isDefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isDefined(arg) {\n return !!arg || arg !== UNDEF_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitive(value) {\n return value === NULL_VALUE || isPrimitiveType(typeof value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitiveType(theType) {\n !_primitiveTypes && (_primitiveTypes = [\"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\"]);\n return !!(theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1);\n}\nvar isString = ( /*#__PURE__*/_createIs(\"string\"));\nvar isFunction = ( /*#__PURE__*/_createIs(FUNCTION));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isObject(value) {\n if (!value && isNullOrUndefined(value)) {\n return false;\n }\n return !!value && typeof value === OBJECT;\n}\nvar isArray = ( /* #__PURE__*/_pureRef(ArrCls, \"isArray\"));\nvar isDate = ( /*#__PURE__*/_createObjIs(\"Date\"));\nvar isNumber = ( /*#__PURE__*/_createIs(\"number\"));\nvar isBoolean = ( /*#__PURE__*/_createIs(\"boolean\"));\nvar isRegExp = ( /*#__PURE__*/_createObjIs(\"RegExp\"));\nvar isFile = ( /*#__PURE__*/_createObjIs(\"File\"));\nvar isFormData = ( /*#__PURE__*/_createObjIs(\"FormData\"));\nvar isBlob = ( /*#__PURE__*/_createObjIs(\"Blob\"));\nvar isArrayBuffer = ( /*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\nvar isError = ( /*#__PURE__*/_createObjIs(\"Error\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromiseLike(value) {\n return !!(value && value.then && isFunction(value.then));\n}\nvar isThenable = isPromiseLike;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromise(value) {\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction(value.catch));\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNotTruthy(value) {\n return !value || !isTruthy(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTruthy(value) {\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\n}\n\nvar objGetOwnPropertyDescriptor = ( /* #__PURE__ */_pureRef(ObjClass, \"getOwnPropertyDescriptor\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction objHasOwnProperty(obj, prop) {\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\n}\n\nvar objHasOwn = ( /*#__PURE__*/_pureAssign(( /* #__PURE__ */_pureRef(ObjClass, \"hasOwn\")), polyObjHasOwn));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjHasOwn(obj, prop) {\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\n}\n\nfunction objForEachKey(theObject, callbackfn, thisArg) {\n if (theObject && isObject(theObject)) {\n for (var prop in theObject) {\n if (objHasOwn(theObject, prop)) {\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar propMap = {\n e: \"enumerable\",\n c: \"configurable\",\n v: \"value\",\n w: \"writable\",\n g: \"get\",\n s: \"set\"\n};\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createProp(value) {\n var prop = {};\n prop[propMap[\"c\"]] = true;\n prop[propMap[\"e\"]] = true;\n if (value.l) {\n prop.get = function () { return value.l.v; };\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\n if (desc && desc.set) {\n prop.set = function (newValue) {\n value.l.v = newValue;\n };\n }\n }\n objForEachKey(value, function (key, value) {\n prop[propMap[key]] = isStrictUndefined(value) ? prop[propMap[key]] : value;\n });\n return prop;\n}\nvar objDefineProp = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperty\"));\nvar objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperties\"));\nfunction objDefineGet(target, key, value, configurable, enumerable) {\n var _a;\n return objDefineProp(target, key, _createProp((_a = {\n e: enumerable,\n c: configurable\n },\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\n _a)));\n}\nfunction objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\n var desc = {\n e: enumerable,\n c: configurable\n };\n if (getProp) {\n desc.g = getProp;\n }\n if (setProp) {\n desc.s = setProp;\n }\n return objDefineProp(target, prop, _createProp(desc));\n}\nfunction objDefine(target, key, propDesc) {\n return objDefineProp(target, key, _createProp(propDesc));\n}\nfunction objDefineProps(target, propDescMap) {\n var props = {};\n objForEachKey(propDescMap, function (key, value) {\n props[key] = _createProp(value);\n });\n return objDefineProperties(target, props);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createKeyValueMap(values, keyType, valueType, completeFn, writable) {\n var theMap = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(theMap, key, keyType ? value : key, writable);\n _assignMapValue(theMap, value, valueType ? value : key, writable);\n });\n return completeFn ? completeFn(theMap) : theMap;\n}\nfunction _assignMapValue(theMap, key, value, writable) {\n objDefineProp(theMap, key, {\n value: value,\n enumerable: true,\n writable: !!writable\n });\n}\n\nvar asString = ( /* #__PURE__ */_pureAssign(StrCls));\n\nvar ERROR_TYPE = \"[object Error]\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction dumpObj(object, format) {\n var propertyValueDump = EMPTY;\n var objType = ObjProto[TO_STRING][CALL](object);\n if (objType === ERROR_TYPE) {\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\n }\n try {\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === \"number\") ? format : 4) : UNDEF_VALUE);\n propertyValueDump = (propertyValueDump ? propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \") : NULL_VALUE) || asString(object);\n }\n catch (e) {\n propertyValueDump = \" - \" + dumpObj(e, format);\n }\n return objType + \": \" + propertyValueDump;\n}\n\nfunction throwError(message) {\n throw new Error(message);\n}\nfunction throwTypeError(message) {\n throw new TypeError(message);\n}\nfunction throwRangeError(message) {\n throw new RangeError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjKeys(obj) {\n if (!isObject(obj) || obj === NULL_VALUE) {\n throwTypeError(\"non-object \" + dumpObj(obj));\n }\n var result = [];\n for (var prop in obj) {\n if (objHasOwn(obj, prop)) {\n result.push(prop);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjEntries(value) {\n var result = [];\n objForEachKey(value, function (key, value) {\n result.push([key, value]);\n });\n return result;\n}\n\nvar _objFreeze = ( /* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\nfunction _doNothing(value) {\n return value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getProto(value) {\n return value[__PROTO__] || NULL_VALUE;\n}\nvar objAssign = ( /*#__PURE__*/_pureRef(ObjClass, \"assign\"));\nvar objKeys = ( /*#__PURE__*/_pureRef(ObjClass, \"keys\"));\nfunction objDeepFreeze(value) {\n if (_objFreeze) {\n objForEachKey(value, function (key, value) {\n if (isArray(value) || isObject(value)) {\n objDeepFreeze(value);\n }\n });\n }\n return objFreeze(value);\n}\nvar objFreeze = ( /* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\nvar objSeal = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\nvar objGetPrototypeOf = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\nvar objEntries = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnum(values) {\n return _createKeyValueMap(values, 1 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumKeyMap(values) {\n return _createKeyValueMap(values, 0 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumValueMap(values) {\n return _createKeyValueMap(values, 1 , 1 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createSimpleMap(values) {\n var mapClass = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(mapClass, key, value[1]);\n _assignMapValue(mapClass, value[0], value[1]);\n });\n return objFreeze(mapClass);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createTypeMap(values) {\n return createSimpleMap(values);\n}\n\nvar _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({\n asyncIterator: 0 ,\n hasInstance: 1 ,\n isConcatSpreadable: 2 ,\n iterator: 3 ,\n match: 4 ,\n matchAll: 5 ,\n replace: 6 ,\n search: 7 ,\n species: 8 ,\n split: 9 ,\n toPrimitive: 10 ,\n toStringTag: 11 ,\n unscopables: 12\n});\n\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\nvar _globalCfg;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalValue() {\n var result;\n if (typeof globalThis !== UNDEFINED) {\n result = globalThis;\n }\n if (!result && typeof self !== UNDEFINED) {\n result = self;\n }\n if (!result && typeof window !== UNDEFINED) {\n result = window;\n }\n if (!result && typeof global !== UNDEFINED) {\n result = global;\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalConfig() {\n if (!_globalCfg) {\n var gbl = safe(_getGlobalValue).v || {};\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\n }\n return _globalCfg;\n}\n\nvar _unwrapFunction = ( _unwrapFunctionWithPoly);\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {\n var clsFn = clsProto ? clsProto[funcName] : NULL_VALUE;\n return function (thisArg) {\n var theFunc = (thisArg ? thisArg[funcName] : NULL_VALUE) || clsFn;\n if (theFunc || polyFunc) {\n var theArgs = arguments;\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\n }\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapProp(propName) {\n return function (thisArg) {\n return thisArg[propName];\n };\n}\n\nvar mathMin = ( /*#__PURE__*/_pureRef(MathCls, \"min\"));\nvar mathMax = ( /*#__PURE__*/_pureRef(MathCls, \"max\"));\n\nvar strSlice = ( /*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\n\nvar strSubstring = ( /*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\nvar strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSubstr(value, start, length) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"Invalid \" + dumpObj(value));\n }\n if (length < 0) {\n return EMPTY;\n }\n start = start || 0;\n if (start < 0) {\n start = mathMax(start + value[LENGTH], 0);\n }\n if (isUndefined(length)) {\n return strSlice(value, start);\n }\n return strSlice(value, start, start + length);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLeft(value, count) {\n return strSubstring(value, 0, count);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strRight(value, count) {\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\n}\n\nvar UNIQUE_REGISTRY_ID = \"_urid\";\nvar _polySymbols;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _globalSymbolRegistry() {\n if (!_polySymbols) {\n var gblCfg = _getGlobalConfig();\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\n }\n return _polySymbols;\n}\nvar _wellKnownSymbolCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyNewSymbol(description) {\n var theSymbol = {\n description: asString(description),\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\n };\n theSymbol[POLYFILL_TAG] = true;\n return theSymbol;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolFor(key) {\n var registry = _globalSymbolRegistry();\n if (!objHasOwn(registry.k, key)) {\n var newSymbol_1 = polyNewSymbol(key);\n var regId_1 = objKeys(registry.s).length;\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1[TO_STRING](); };\n registry.k[key] = newSymbol_1;\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\n }\n return registry.k[key];\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolKeyFor(sym) {\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\n throwTypeError(sym + \" is not a symbol\");\n }\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyGetKnownSymbol(name) {\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});\n var result;\n var knownName = _wellKnownSymbolMap[name];\n if (knownName) {\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\n }\n return result;\n}\n\nvar _globalLazyTestHooks;\nfunction _initTestHooks() {\n _globalLazyTestHooks = _getGlobalConfig();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n objDefineProp(lazyValue, \"v\", {\n value: result\n });\n }\n lazyValue.b = _globalLazyTestHooks.lzy;\n return result;\n }\n });\n return lazyValue;\n}\nfunction setBypassLazyCache(newValue) {\n !_globalLazyTestHooks && _initTestHooks();\n _globalLazyTestHooks.lzy = newValue;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCachedValue(value) {\n return objDefineProp({\n toJSON: function () { return value; }\n }, \"v\", { value: value });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createDeferredCachedValue(cb) {\n var theValue = {\n toJSON: function () { return theValue.v; }\n };\n return objDefineProp(theValue, \"v\", {\n get: function () {\n var result = cb();\n cb = NULL_VALUE;\n objDefineProp(theValue, \"v\", { value: result });\n return result;\n },\n configurable: true\n });\n}\n\nvar WINDOW = \"window\";\nvar _cachedGlobal;\nfunction _getGlobalInstFn(getFn, theArgs) {\n var cachedValue;\n return function () {\n !_globalLazyTestHooks && _initTestHooks();\n if (!cachedValue || _globalLazyTestHooks.lzy) {\n cachedValue = createCachedValue(safe(getFn, theArgs).v);\n }\n return cachedValue.v;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction lazySafeGetInst(name) {\n return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });\n}\nfunction getGlobal(useCached) {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) {\n _cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE);\n }\n return _cachedGlobal.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getInst(name, useCached) {\n var gbl;\n if (!_cachedGlobal || useCached === false) {\n gbl = getGlobal(useCached);\n }\n else {\n gbl = _cachedGlobal.v;\n }\n if (gbl && gbl[name]) {\n return gbl[name];\n }\n if (name === WINDOW) {\n try {\n return window;\n }\n catch (e) {\n }\n }\n return NULL_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasDocument() {\n return !!( /*#__PURE__*/getDocument());\n}\nvar getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasWindow() {\n return !!( /*#__PURE__*/getWindow());\n}\nvar getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasNavigator() {\n return !!( /*#__PURE__*/getNavigator());\n}\nvar getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasHistory() {\n return !!( /*#__PURE__*/getHistory());\n}\nvar getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\nvar isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return (process && (process.versions || {}).node); }).v);\n}));\nvar isWebWorker = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return self && self instanceof WorkerGlobalScope; }).v);\n}));\n\nvar _symbol;\nvar _symbolFor;\nvar _symbolKeyFor;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _initSymbol() {\n _symbol = ( /*#__PURE__*/createCachedValue(safe((getInst), [SYMBOL]).v));\n return _symbol;\n}\nfunction _getSymbolKey(key) {\n var gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE);\n}\nvar isSymbol = ( /*#__PURE__*/_createIs(\"symbol\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasSymbol() {\n return !!( /*#__PURE__*/getSymbol());\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getSymbol() {\n !_globalLazyTestHooks && _initTestHooks();\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getKnownSymbol(name, noPoly) {\n var knownName = _wellKnownSymbolMap[name];\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction newSymbol(description, noPoly) {\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolFor(key) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"for\"]).v)));\n return (_symbolFor.v || polySymbolFor)(key);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolKeyFor(sym) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"keyFor\"]).v)));\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterator(value) {\n return !!value && isFunction(value.next);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterable(value) {\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);\n}\n\nvar _iterSymbol$1;\nfunction iterForOf(iter, callbackfn, thisArg) {\n if (iter) {\n if (!isIterator(iter)) {\n !_iterSymbol$1 && (_iterSymbol$1 = createCachedValue(getKnownSymbol(3 )));\n iter = iter[_iterSymbol$1.v] ? iter[_iterSymbol$1.v]() : NULL_VALUE;\n }\n if (isIterator(iter)) {\n var err = UNDEF_VALUE;\n var iterResult = UNDEF_VALUE;\n try {\n var count = 0;\n while (!(iterResult = iter.next()).done) {\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\n break;\n }\n count++;\n }\n }\n catch (failed) {\n err = { e: failed };\n if (iter.throw) {\n iterResult = NULL_VALUE;\n iter.throw(err);\n }\n }\n finally {\n try {\n if (iterResult && !iterResult.done) {\n iter.return && iter.return(iterResult);\n }\n }\n finally {\n if (err) {\n // eslint-disable-next-line no-unsafe-finally\n throw err.e;\n }\n }\n }\n }\n }\n}\n\nfunction fnApply(fn, thisArg, argArray) {\n return fn.apply(thisArg, argArray);\n}\nfunction fnCall(fn, thisArg) {\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\n}\nfunction fnBind(fn, thisArg) {\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\n}\n\nfunction arrAppend(target, elms) {\n if (!isUndefined(elms) && target) {\n if (isArray(elms)) {\n fnApply(target.push, target, elms);\n }\n else if (isIterator(elms) || isIterable(elms)) {\n iterForOf(elms, function (elm) {\n target.push(elm);\n });\n }\n else {\n target.push(elms);\n }\n }\n return target;\n}\n\nvar arrEvery = /*#__PURE__*/ _unwrapFunction(\"every\", ArrProto);\nvar arrFilter = /*#__PURE__*/ _unwrapFunction(\"filter\", ArrProto);\n\nfunction arrForEach(theArray, callbackfn, thisArg) {\n if (theArray) {\n var len = theArray[LENGTH] >>> 0;\n for (var idx = 0; idx < len; idx++) {\n if (idx in theArray) {\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar arrIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\nvar arrLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));\n\nvar arrMap = ( /*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\n\nfunction arrSlice(theArray, start, end) {\n return ((theArray ? theArray[\"slice\"] : NULL_VALUE) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyIsArray(value) {\n if (isNullOrUndefined(value)) {\n return false;\n }\n return objToString(value) === \"[object Array]\";\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyArrIncludes(theArray, searchElement, fromIndex) {\n return arrIndexOf(theArray, searchElement, fromIndex) !== -1;\n}\nfunction polyArrFind(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n arrForEach(theArray, function (value, index) {\n if (callbackFn[CALL](thisArg | theArray, value, index, theArray)) {\n result = index;\n return -1;\n }\n });\n return result;\n}\nfunction polyArrFindLast(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindLastIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindLastIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n var len = theArray[LENGTH] >>> 0;\n for (var idx = len - 1; idx >= 0; idx--) {\n if (idx in theArray && callbackFn[CALL](thisArg | theArray, theArray[idx], idx, theArray)) {\n result = idx;\n break;\n }\n }\n return result;\n}\nfunction polyArrFrom(theValue, mapFn, thisArg) {\n if (isArray(theValue)) {\n var result_1 = arrSlice(theValue);\n return mapFn ? arrMap(result_1, mapFn, thisArg) : result_1;\n }\n var result = [];\n iterForOf(theValue, function (value, cnt) {\n return result.push(mapFn ? mapFn[CALL](thisArg, value, cnt) : value);\n });\n return result;\n}\n\nvar arrFind = /*#__PURE__*/ _unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind);\nvar arrFindIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex);\nvar arrFindLast = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLast\", ArrProto, polyArrFindLast);\nvar arrFindLastIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLastIndex\", ArrProto, polyArrFindLastIndex);\n\nvar arrFrom = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ArrCls, \"from\")), polyArrFrom));\n\nvar arrIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", ArrProto, polyArrIncludes));\nvar arrContains = arrIncludes;\n\nvar arrReduce = ( /*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\n\nvar arrSome = ( /*#__PURE__*/_unwrapFunction(\"some\", ArrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFnDeferredProxy(hostFn, funcName) {\n return function () {\n var theArgs = ArrSlice[CALL](arguments);\n var theHost = hostFn();\n return fnApply(theHost[funcName], theHost, theArgs);\n };\n}\nfunction createProxyFuncs(target, host, funcDefs) {\n if (target && host && isArray(funcDefs)) {\n var isDeferred_1 = isFunction(host);\n arrForEach(funcDefs, function (funcDef) {\n var targetName = (funcDef.as || funcDef.n);\n if (funcDef.rp === false && target[targetName]) {\n return;\n }\n target[targetName] = isDeferred_1 ?\n createFnDeferredProxy(host, funcDef.n) :\n fnBind(host[funcDef.n], host);\n });\n }\n return target;\n}\n\nvar _iterSymbol;\n/*#__NO_SIDE_EFFECTS__*/\nfunction readArgs(theArgs, start, end) {\n if (!objHasOwn(theArgs, LENGTH)) {\n !_iterSymbol && (_iterSymbol = createCachedValue(hasSymbol() && getKnownSymbol(3 )));\n var iterFn = void 0;\n if (_iterSymbol.v) {\n iterFn = theArgs[_iterSymbol.v];\n }\n if (iterFn) {\n var values_1 = [];\n var from_1 = (start === UNDEF_VALUE || start < 0) ? 0 : start;\n var to_1 = end < 0 || start < 0 ? UNDEF_VALUE : end;\n iterForOf(iterFn[CALL](theArgs), function (value, cnt) {\n if (to_1 !== UNDEF_VALUE && cnt >= to_1) {\n return -1;\n }\n if (cnt >= from_1) {\n values_1.push(value);\n }\n });\n if ((start === UNDEF_VALUE || start >= 0) && (end === UNDEF_VALUE || end >= 0)) {\n return values_1;\n }\n theArgs = values_1;\n }\n }\n return arrSlice(theArgs, start, end);\n}\n\nvar objCreate = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"create\")), polyObjCreate));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjCreate(obj) {\n if (!obj) {\n return {};\n }\n var type = typeof obj;\n if (type !== OBJECT && type !== FUNCTION) {\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\n }\n function tempFunc() { }\n tempFunc[PROTOTYPE] = obj;\n return new tempFunc();\n}\n\nvar _isProtoArray;\nfunction objSetPrototypeOf(obj, proto) {\n var fn = ObjClass[\"setPrototypeOf\"] ||\n function (d, b) {\n var _a;\n !_isProtoArray && (_isProtoArray = createCachedValue((_a = {}, _a[__PROTO__] = [], _a) instanceof Array));\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\n };\n return fn(obj, proto);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createCustomError(name, d, b) {\n safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);\n d = objSetPrototypeOf(d, b);\n function __() {\n this[CONSTRUCTOR] = d;\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\n }\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\n return d;\n}\nfunction _setName(baseClass, name) {\n name && (baseClass[NAME] = name);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCustomError(name, constructCb, errorBase) {\n var theBaseClass = errorBase || Error;\n var orgName = theBaseClass[PROTOTYPE][NAME];\n var captureFn = Error.captureStackTrace;\n return _createCustomError(name, function () {\n var _this = this;\n var theArgs = arguments;\n try {\n safe(_setName, [theBaseClass, name]);\n var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\n if (_self !== _this) {\n var orgProto = objGetPrototypeOf(_this);\n if (orgProto !== objGetPrototypeOf(_self)) {\n objSetPrototypeOf(_self, orgProto);\n }\n }\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\n constructCb && constructCb(_self, theArgs);\n return _self;\n }\n finally {\n safe(_setName, [theBaseClass, orgName]);\n }\n }, theBaseClass);\n}\nvar _unsupportedError;\nfunction throwUnsupported(message) {\n if (!_unsupportedError) {\n _unsupportedError = createCustomError(\"UnsupportedError\");\n }\n throw new _unsupportedError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction utcNow() {\n return (Date.now || polyUtcNow)();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyUtcNow() {\n return new Date().getTime();\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTrimFn(exp) {\n return function _doTrim(value) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\n }\n if (value && value.replace) {\n value = value.replace(exp, EMPTY);\n }\n return value;\n };\n}\nvar polyStrTrim = ( /*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\nvar polyStrTrimStart = ( /*#__PURE__*/_createTrimFn(/^\\s+/g));\nvar polyStrTrimEnd = ( /*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\n\nvar strTrim = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\nvar strTrimStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\nvar strTrimLeft = ( /*#__PURE__*/_pureAssign(strTrimStart));\nvar strTrimEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\nvar strTrimRight = ( /*#__PURE__*/_pureAssign(strTrimEnd));\n\nvar strUpper = ( /*#__PURE__*/_unwrapFunction(\"toUpperCase\", StrProto));\nvar strLower = ( /*#__PURE__*/_unwrapFunction(\"toLowerCase\", StrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _convertCase(value, newPrefix, upperWord) {\n return strTrim(asString(value)).replace(/((_|\\W)+(\\w){0,1}|([a-z])([A-Z]))/g, function (_match, _g1, _g2, wordStart, upperPrefix, upperLetter) {\n var convertMatch = wordStart || upperLetter || EMPTY;\n if (upperWord) {\n convertMatch = strUpper(convertMatch);\n }\n return (upperPrefix || EMPTY) + newPrefix + convertMatch;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLetterCase(value) {\n return asString(value).replace(/(_|\\b)\\w/g, strUpper);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strCamelCase(value, upperFirst) {\n var result = _convertCase(value, \"\", true);\n return result.replace(/^\\w/, upperFirst ? strUpper : strLower);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strKebabCase(value, scream) {\n var result = _convertCase(value, \"-\");\n return (scream ? strUpper : strLower)(result);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strSnakeCase(value, scream) {\n var result = _convertCase(value, \"_\");\n return (scream ? strUpper : strLower)(result);\n}\n\nvar mathFloor = ( /*#__PURE__*/_pureRef(MathCls, \"floor\"));\nvar mathCeil = ( /*#__PURE__*/_pureRef(MathCls, \"ceil\"));\n\nvar mathTrunc = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(MathCls, \"trunc\")), polyMathTrunc));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyMathTrunc(value) {\n var theValue = +value;\n return (theValue > 0 ? mathFloor : mathCeil)(theValue);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction mathToInt(value, throwInfinity) {\n var result = +value;\n if (result == Infinity && throwInfinity) {\n throwRangeError(\"invalid value [\" + dumpObj(value) + \"]\");\n }\n return result !== result || result === 0 ? 0 : mathTrunc(result);\n}\n\nvar strRepeat = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"repeat\", StrProto, polyStrRepeat));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrRepeat(value, count) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"can't convert [\" + dumpObj(value) + \"]\");\n }\n count = mathToInt(count, true);\n if (count < 0) {\n throwRangeError(\"invalid count must be >= 0 && < Infinity\");\n }\n var pad = isString(value) ? value : asString(value);\n var result = EMPTY;\n for (; count > 0; (count >>>= 1) && (pad += pad)) {\n if (count & 1) {\n result += pad;\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _padValue(value, targetLength, padString) {\n var result = EMPTY;\n targetLength = mathToInt(targetLength, true);\n targetLength >>= 0;\n var len = value[LENGTH];\n if (len < targetLength) {\n result = isNullOrUndefined(padString) ? \" \" : asString(padString);\n targetLength = targetLength - len;\n if (targetLength > result[LENGTH]) {\n result = strRepeat(result, mathCeil(targetLength / result[LENGTH]));\n }\n if (result[LENGTH] > targetLength) {\n result = strSubstring(result, 0, targetLength);\n }\n }\n return result;\n}\nvar strPadStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padStart\", StrProto, polyStrPadStart));\nvar strPadEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padEnd\", StrProto, polyStrPadEnd));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadStart(value, targetLength, padString) {\n return _padValue(value, targetLength, padString) + value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadEnd(value, targetLength, padString) {\n return value + _padValue(value, targetLength, padString);\n}\n\nvar DBL_QUOTE = \"\\\"\";\nvar INVALID_JS_NAME = /([^\\w\\d_$])/g;\nvar _htmlEntityCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction normalizeJsName(jsName, camelCase) {\n var result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsJson(value, format) {\n var result;\n if (isString(value)) {\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, function (match) {\n if (match === DBL_QUOTE || match === \"\\\\\") {\n return \"\\\\\" + match;\n }\n var hex = match.charCodeAt(0)[TO_STRING](16);\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\n }) + DBL_QUOTE;\n }\n else {\n try {\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\n }\n catch (e) {\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsHtml(value) {\n !_htmlEntityCache && (_htmlEntityCache = {\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"\\\"\": \"quot\",\n \"'\": \"#39\"\n });\n return asString(value).replace(/[&<>\"']/g, function (match) { return \"&\" + _htmlEntityCache[match] + \";\"; });\n}\n\nvar _fnToString;\nvar _objCtrFnString;\nvar _gblWindow;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPlainObject(value) {\n if (!value || typeof value !== OBJECT) {\n return false;\n }\n if (!_gblWindow) {\n _gblWindow = hasWindow() ? getWindow() : true;\n }\n var result = false;\n if (value !== _gblWindow) {\n if (!_objCtrFnString) {\n _fnToString = Function[PROTOTYPE][TO_STRING];\n _objCtrFnString = _fnToString[CALL](ObjClass);\n }\n try {\n var proto = objGetPrototypeOf(value);\n result = !proto;\n if (!result) {\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\n proto = proto[CONSTRUCTOR];\n }\n result = !!(proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString);\n }\n }\n catch (ex) {\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _defaultDeepCopyHandler(details) {\n details.value && plainObjDeepCopyHandler(details);\n return true;\n}\nvar defaultDeepCopyHandlers = [\n arrayDeepCopyHandler,\n plainObjDeepCopyHandler,\n functionDeepCopyHandler,\n dateDeepCopyHandler\n];\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getSetVisited(visitMap, source, newPath, cb) {\n var theEntry;\n arrForEach(visitMap, function (entry) {\n if (entry.k === source) {\n theEntry = entry;\n return -1;\n }\n });\n if (!theEntry) {\n theEntry = { k: source, v: source };\n visitMap.push(theEntry);\n cb(theEntry);\n }\n return theEntry.v;\n}\nfunction _deepCopy(visitMap, value, ctx, key) {\n var userHandler = ctx.handler;\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\n var newCtx = {\n handler: ctx.handler,\n src: ctx.src,\n path: newPath\n };\n var theType = typeof value;\n var isPlain = false;\n var isPrim = value === NULL_VALUE;\n if (!isPrim) {\n if (value && theType === OBJECT) {\n isPlain = isPlainObject(value);\n }\n else {\n isPrim = isPrimitiveType(theType);\n }\n }\n var details = {\n type: theType,\n isPrim: isPrim,\n isPlain: isPlain,\n value: value,\n result: value,\n path: newPath,\n origin: ctx.src,\n copy: function (source, newKey) {\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\n },\n copyTo: function (target, source) {\n return _copyProps(visitMap, target, source, newCtx);\n }\n };\n if (!details.isPrim) {\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\n objDefine(details, \"result\", {\n g: function () {\n return newEntry.v;\n },\n s: function (newValue) {\n newEntry.v = newValue;\n }\n });\n var idx = 0;\n var handler = userHandler;\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\n handler = NULL_VALUE;\n }\n });\n }\n if (userHandler && userHandler[CALL](ctx, details)) {\n return details.result;\n }\n return value;\n}\nfunction _copyProps(visitMap, target, source, ctx) {\n if (!isNullOrUndefined(source)) {\n for (var key in source) {\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\n }\n }\n return target;\n}\nfunction objCopyProps(target, source, handler) {\n var ctx = {\n handler: handler,\n src: source,\n path: []\n };\n return _copyProps([], target, source, ctx);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objDeepCopy(source, handler) {\n var ctx = {\n handler: handler,\n src: source\n };\n return _deepCopy([], source, ctx);\n}\nfunction arrayDeepCopyHandler(details) {\n var value = details.value;\n if (isArray(value)) {\n var target = details.result = [];\n target.length = value.length;\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\nfunction dateDeepCopyHandler(details) {\n var value = details.value;\n if (isDate(value)) {\n details.result = new Date(value.getTime());\n return true;\n }\n return false;\n}\nfunction functionDeepCopyHandler(details) {\n if (details.type === FUNCTION) {\n return true;\n }\n return false;\n}\nfunction plainObjDeepCopyHandler(details) {\n var value = details.value;\n if (value && details.isPlain) {\n var target = details.result = {};\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\n\nfunction _doExtend(target, theArgs) {\n arrForEach(theArgs, function (theArg) {\n objCopyProps(target, theArg);\n });\n return target;\n}\nfunction deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\n}\nfunction objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\n}\n\nvar getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getIntValue(value, defValue) {\n if (!isNullOrUndefined(value)) {\n if (isNumber(value)) {\n return value;\n }\n var theValue = parseInt(value, 10);\n return isNaN(theValue) ? defValue : theValue;\n }\n return defValue;\n}\n\nvar _perf;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasPerformance() {\n return !!getPerformance();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getPerformance() {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_perf || _globalLazyTestHooks.lzy) {\n _perf = createCachedValue(safe((getInst), [\"performance\"]).v);\n }\n return _perf.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction perfNow() {\n var perf = getPerformance();\n if (perf && perf.now) {\n return perf.now();\n }\n return utcNow();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction elapsedTime(startTime) {\n return perfNow() - startTime;\n}\n\nvar MATCH_ANY = \"(.*)\";\nvar MATCH_SINGLE = \"(.)\";\nfunction _createRegExp(value, escapeRgx, replaceFn, ignoreCase, fullMatch) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp((fullMatch ? \"^\" : EMPTY) + replaceFn(value.replace(escapeRgx, \"\\\\$1\")) + (fullMatch ? \"$\" : EMPTY), ignoreCase ? \"i\" : \"\");\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createWildcardRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.\\?{}()\\[\\]\\\\/\\\"\\'])/g, function (value) {\n return value.replace(/\\*/g, MATCH_ANY);\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFilenameRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\\\\\\\|\\\\\\/|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n return g1 == \"*\" ? MATCH_ANY : MATCH_SINGLE;\n });\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction makeGlobRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\*\\*\\\\[\\\\\\/]|\\\\\\\\|\\\\\\/|\\*\\*|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"**\\\\/\" || g1 == \"**\\\\\\\\\") {\n return \"(.*[\\\\\\\\\\\\/])*\";\n }\n if (g1 === \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n if (g1 === \"**\") {\n return MATCH_ANY;\n }\n return g1 === \"*\" ? \"([^\\\\\\\\\\\\/]*)\" : \"([^\\\\\\\\\\\\/]{1})\";\n });\n }, !!ignoreCase, fullMatch);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetLazy(cb, defValue) {\n return getLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _checkLength(value, props) {\n var result;\n arrForEach(props, function (prop) {\n if (prop in value) {\n var propValue = value[prop];\n result = (isFunction(propValue) ? propValue() : propValue) > 0;\n return -1;\n }\n });\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _hasValue(value, depth) {\n var result = value === false || value === 0;\n if (!result && !isNullOrUndefined(value)) {\n if (isArray(value)) {\n result = value[LENGTH] > 0;\n }\n else if (isDate(value)) {\n result = !isNaN(value.getTime());\n }\n else if (isBoolean(value)) {\n return true;\n }\n else if (isObject(value)) {\n try {\n var chkValue = _checkLength(value, [LENGTH, \"byteLength\", \"size\", \"count\"]);\n if (isBoolean(chkValue)) {\n return chkValue;\n }\n if (isFunction(value.valueOf) && depth < 5) {\n return _hasValue(value.valueOf(), ++depth);\n }\n }\n catch (e) {\n }\n return !!objKeys(value)[LENGTH];\n }\n else {\n result = isTruthy(value);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasValue(value) {\n return _hasValue(value, 0);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterable(ctx) {\n return makeIterable({}, ctx);\n}\nfunction makeIterable(target, ctx) {\n var itSymbol = getKnownSymbol(3 );\n function _createIterator() {\n return createIterator(ctx);\n }\n target[itSymbol] = _createIterator;\n return target;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterator(ctx) {\n var isDone = false;\n function _value() {\n return ctx.v;\n }\n function _next() {\n if (!isDone) {\n isDone = (ctx.n ? ctx.n(arguments) : true);\n }\n var result = {\n done: isDone\n };\n if (!isDone) {\n objDefine(result, \"value\", { g: _value });\n }\n return result;\n }\n function _return(value) {\n isDone = true;\n return {\n done: true,\n value: ctx.r && ctx.r(value)\n };\n }\n function _throw(e) {\n isDone = true;\n return {\n done: true,\n value: ctx.t && ctx.t(e)\n };\n }\n var theIterator = {\n next: _next\n };\n if (ctx.r) {\n theIterator.return = _return;\n }\n if (ctx.t) {\n theIterator.throw = _throw;\n }\n return theIterator;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createArrayIterator(values) {\n var idx = -1;\n var theValues = values ? values.slice() : [];\n var len = theValues[LENGTH];\n function _value() {\n if (idx >= 0 && idx < len) {\n return theValues[idx];\n }\n }\n function _getNext() {\n idx++;\n return idx >= len;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createRangeIterator(start, end, step) {\n var nextValue = start;\n var theValue = UNDEF_VALUE;\n if (isNullOrUndefined(end)) {\n end = start;\n }\n var theStep = step;\n if (!theStep) {\n theStep = (start <= end) ? 1 : -1;\n }\n function _value() {\n return theValue;\n }\n function _getNext() {\n var isDone = (theStep > 0) ? (nextValue > end) : (nextValue < end);\n if (!isDone) {\n theValue = nextValue;\n nextValue += theStep;\n }\n return isDone;\n }\n return createIterator(objDefine({\n n: _getNext\n }, \"v\", { g: _value }));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSymSplit(value, splitter, limit) {\n var splitFn = splitter ? splitter[getKnownSymbol(9 )] : UNDEF_VALUE;\n return splitFn ? splitFn(value, limit) : [value];\n}\n\nvar strSplit = ( /*#__PURE__*/_unwrapFunction(\"split\", StrProto));\nvar strSymSplit = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : NULL_VALUE));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByKey(target, path, defValue) {\n if (!path || !target) {\n return defValue;\n }\n var parts = strSplit(path, \".\");\n var cnt = parts.length;\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\n target = target[parts[lp]];\n }\n return (!isNullOrUndefined(target) ? target : defValue);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByIter(target, iter, defValue) {\n if (!iter || !target) {\n return defValue;\n }\n iterForOf(iter, function (value) {\n if (isNullOrUndefined(target)) {\n return -1;\n }\n target = target[value];\n });\n return (!isNullOrUndefined(target) ? target : defValue);\n}\nfunction setValueByKey(target, path, value) {\n if (target && path) {\n var parts = strSplit(path, \".\");\n var lastKey = parts.pop();\n arrForEach(parts, function (key) {\n if (isNullOrUndefined(target[key])) {\n target[key] = {};\n }\n target = target[key];\n });\n target[lastKey] = value;\n }\n}\nfunction setValueByIter(target, iter, value) {\n if (target && iter) {\n var lastKey_1;\n iterForOf(iter, function (key) {\n if (lastKey_1) {\n if (isNullOrUndefined(target[lastKey_1])) {\n target[lastKey_1] = {};\n }\n target = target[lastKey_1];\n }\n lastKey_1 = key;\n });\n target[lastKey_1] = value;\n }\n}\n\nvar strEndsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrEndsWith(value, searchString, length) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var end = (!isUndefined(length) && length < value[LENGTH]) ? length : value[LENGTH];\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\n}\n\nvar strIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\nvar strLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\n\nvar strIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", StrProto, polyStrIncludes));\nvar strContains = ( /*#__PURE__*/_pureAssign(strIncludes));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrIncludes(value, searchString, position) {\n if (isRegExp(searchString)) {\n throwTypeError(\"'searchString' must not be a regular expression\" + dumpObj(searchString));\n }\n return strIndexOf(value, asString(searchString), position) !== -1;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrWhiteSpace(value) {\n if (isString(value)) {\n return value.replace(/[\\s\\t\\r\\n\\f]+/g, EMPTY) === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrEmpty(value) {\n if (isString(value)) {\n return value === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n\nvar strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"startsWith\", StrProto, polyStrStartsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrStartsWith(value, searchString, position) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var pos = position > 0 ? position : 0;\n return strSubstring(value, pos, pos + searchValue[LENGTH]) === searchValue;\n}\n\nvar REF = \"ref\";\nvar UNREF = \"unref\";\nvar HAS_REF = \"hasRef\";\nvar ENABLED = \"enabled\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTimerHandler(startTimer, refreshFn, cancelFn) {\n var ref = true;\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\n var theTimerHandler;\n function _unref() {\n ref = false;\n timerId && timerId[UNREF] && timerId[UNREF]();\n return theTimerHandler;\n }\n function _cancel() {\n timerId && cancelFn(timerId);\n timerId = NULL_VALUE;\n }\n function _refresh() {\n timerId = refreshFn(timerId);\n if (!ref) {\n _unref();\n }\n return theTimerHandler;\n }\n function _setEnabled(value) {\n !value && timerId && _cancel();\n value && !timerId && _refresh();\n }\n theTimerHandler = {\n cancel: _cancel,\n refresh: _refresh\n };\n theTimerHandler[HAS_REF] = function () {\n if (timerId && timerId[HAS_REF]) {\n return timerId[HAS_REF]();\n }\n return ref;\n };\n theTimerHandler[REF] = function () {\n ref = true;\n timerId && timerId[REF] && timerId[REF]();\n return theTimerHandler;\n };\n theTimerHandler[UNREF] = _unref;\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\n get: function () { return !!timerId; },\n set: _setEnabled\n });\n return {\n h: theTimerHandler,\n dn: function () {\n timerId = NULL_VALUE;\n }\n };\n}\n\nfunction _createTimeoutWith(startTimer, overrideFn, theArgs) {\n var isArr = isArray(overrideFn);\n var len = isArr ? overrideFn.length : 0;\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\n var timerFn = theArgs[0];\n theArgs[0] = function () {\n handler.dn();\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\n };\n var handler = _createTimerHandler(startTimer, function (timerId) {\n if (timerId) {\n if (timerId.refresh) {\n timerId.refresh();\n return timerId;\n }\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n }\n return fnApply(setFn, UNDEF_VALUE, theArgs);\n }, function (timerId) {\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n });\n return handler.h;\n}\nfunction scheduleTimeout(callback, timeout) {\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction scheduleTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\n}\nfunction createTimeout(callback, timeout) {\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction createTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\n}\n\nvar _defaultIdleTimeout = 100;\nvar _maxExecutionTime = 50;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasIdleCallback() {\n return !!( /*#__PURE__*/getIdleCallback());\n}\nvar getIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\nvar getCancelIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\nfunction setDefaultIdleTimeout(timeout) {\n _defaultIdleTimeout = timeout;\n}\nfunction setDefaultMaxExecutionTime(maxTime) {\n _maxExecutionTime = maxTime;\n}\nfunction scheduleIdleCallback(callback, options) {\n function _createDeadline(timedOut) {\n var startTime = perfNow();\n return {\n didTimeout: timedOut,\n timeRemaining: function () {\n return _maxExecutionTime - elapsedTime(startTime);\n }\n };\n }\n if (hasIdleCallback()) {\n var handler_1 = _createTimerHandler(true, function (idleId) {\n idleId && getCancelIdleCallback()(idleId);\n return getIdleCallback()(function (deadline) {\n handler_1.dn();\n callback(deadline || _createDeadline(false));\n }, options);\n }, function (idleId) {\n getCancelIdleCallback()(idleId);\n });\n return handler_1.h;\n }\n var timeout = (options || {}).timeout;\n if (isUndefined(timeout)) {\n timeout = _defaultIdleTimeout;\n }\n return scheduleTimeout(function () {\n callback(_createDeadline(true));\n }, timeout);\n}\n\nfunction scheduleInterval(callback, timeout) {\n var theArguments = ArrSlice[CALL](arguments);\n var handler = _createTimerHandler(true, function (intervalId) {\n intervalId && clearInterval(intervalId);\n return fnApply(setInterval, UNDEF_VALUE, theArguments);\n }, function (intervalId) {\n fnApply(clearInterval, UNDEF_VALUE, [intervalId]);\n });\n return handler.h;\n}\n\nexport { arrAppend, arrContains, arrEvery, arrFilter, arrFind, arrFindIndex, arrFindLast, arrFindLastIndex, arrForEach, arrFrom, arrIncludes, arrIndexOf, arrLastIndexOf, arrMap, arrReduce, arrSlice, arrSome, arrayDeepCopyHandler, asString, createArrayIterator, createCachedValue, createCustomError, createDeferredCachedValue, createEnum, createEnumKeyMap, createEnumValueMap, createFilenameRegex, createFnDeferredProxy, createIterable, createIterator, createProxyFuncs, createRangeIterator, createSimpleMap, createTimeout, createTimeoutWith, createTypeMap, createWildcardRegex, dateDeepCopyHandler, deepExtend, dumpObj, elapsedTime, encodeAsHtml, encodeAsJson, fnApply, fnBind, fnCall, functionDeepCopyHandler, getCancelIdleCallback, getDocument, getGlobal, getHistory, getIdleCallback, getInst, getIntValue, getKnownSymbol, getLazy, getLength, getNavigator, getPerformance, getSymbol, getValueByIter, getValueByKey, getWindow, hasDocument, hasHistory, hasIdleCallback, hasNavigator, hasPerformance, hasSymbol, hasValue, hasWindow, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isDefined, isError, isFile, isFormData, isFunction, isIterable, isIterator, isNode, isNotTruthy, isNullOrUndefined, isNumber, isObject, isPlainObject, isPrimitive, isPrimitiveType, isPromise, isPromiseLike, isRegExp, isStrictNullOrUndefined, isStrictUndefined, isString, isSymbol, isThenable, isTruthy, isTypeof, isUndefined, isWebWorker, iterForOf, lazySafeGetInst, makeGlobRegex, makeIterable, mathCeil, mathFloor, mathMax, mathMin, mathToInt, mathTrunc, newSymbol, normalizeJsName, objAssign, objCopyProps, objCreate, objDeepCopy, objDeepFreeze, objDefine, objDefineAccessors, objDefineGet, objDefineProp, objDefineProperties, objDefineProps, objEntries, objExtend, objForEachKey, objFreeze, objGetOwnPropertyDescriptor, objGetPrototypeOf, objHasOwn, objHasOwnProperty, objKeys, objSeal, objSetPrototypeOf, objToString, perfNow, plainObjDeepCopyHandler, polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex, polyArrFrom, polyArrIncludes, polyGetKnownSymbol, polyIsArray, polyNewSymbol, polyObjEntries, polyObjHasOwn, polyObjKeys, polyStrIncludes, polyStrSubstr, polyStrSymSplit, polyStrTrim, polyStrTrimEnd, polyStrTrimStart, polySymbolFor, polySymbolKeyFor, polyUtcNow, readArgs, safe, safeGet, safeGetLazy, scheduleIdleCallback, scheduleInterval, scheduleTimeout, scheduleTimeoutWith, setBypassLazyCache, setDefaultIdleTimeout, setDefaultMaxExecutionTime, setValueByIter, setValueByKey, strCamelCase, strContains, strEndsWith, strIncludes, strIndexOf, strIsNullOrEmpty, strIsNullOrWhiteSpace, strKebabCase, strLastIndexOf, strLeft, strLetterCase, strLower, strPadEnd, strPadStart, strRepeat, strRight, strSlice, strSnakeCase, strSplit, strStartsWith, strSubstr, strSubstring, strSymSplit, strTrim, strTrimEnd, strTrimLeft, strTrimRight, strTrimStart, strUpper, symbolFor, symbolKeyFor, throwError, throwRangeError, throwTypeError, throwUnsupported, utcNow };\n//# sourceMappingURL=ts-utils.js.map\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n//# sourceMappingURL=DynamicProto.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n//# sourceMappingURL=Constants.js.map","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n//# sourceMappingURL=TsLibShims.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n//# sourceMappingURL=EnumHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = createEnumStyle({\r\n NONE: 0 /* eActiveStatus.NONE */,\r\n PENDING: 3 /* eActiveStatus.PENDING */,\r\n INACTIVE: 1 /* eActiveStatus.INACTIVE */,\r\n ACTIVE: 2 /* eActiveStatus.ACTIVE */\r\n});\r\n//# sourceMappingURL=InitActiveStatusEnum.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 55\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 35\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN__INACTIVE = \"INACTIVE\"; // Count: 3\r\nexport var _DYN_VALUE = \"value\"; // Count: 5\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_NAME = \"name\"; // Count: 12\r\nexport var _DYN_I_KEY = \"iKey\"; // Count: 5\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 5\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_PROTOCOL = \"protocol\"; // Count: 3\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 7\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_STATUS = \"status\"; // Count: 5\r\nexport var _DYN_GET_RESPONSE_HEADER = \"getResponseHeader\"; // Count: 2\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 7\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_SEND_POST = \"sendPOST\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 2\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_GET_ATTRIBUTE = \"getAttribute\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n//# sourceMappingURL=AggregationError.js.map","/*!\n * NevWare21 Solutions LLC - ts-async, 0.5.3\n * https://github.com/nevware21/ts-async\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\nimport { isPromiseLike, objDefineProperties, getDocument, createCachedValue, safe, getInst, dumpObj, arrSlice, objDefineProp, hasSymbol, getKnownSymbol, isFunction, throwTypeError, iterForOf, scheduleTimeout, isNode, getWindow, getGlobal, objDefine, objToString, isUndefined, isArray, arrForEach, isIterable, createCustomError, isNumber, scheduleIdleCallback, utcNow, getLength, isIterator, fnCall, arrIndexOf } from '@nevware21/ts-utils';\n\nvar STR_PROMISE = \"Promise\";\nvar DONE = \"done\";\nvar VALUE = \"value\";\nvar RETURN = \"return\";\nvar REJECTED = \"rejected\";\n\nfunction doAwaitResponse(value, cb) {\n return doAwait(value, function (value) {\n return cb ? cb({\n status: \"fulfilled\",\n rejected: false,\n value: value\n }) : value;\n }, function (reason) {\n return cb ? cb({\n status: REJECTED,\n rejected: true,\n reason: reason\n }) : reason;\n });\n}\nfunction doAwait(value, resolveFn, rejectFn, finallyFn) {\n var result = value;\n try {\n if (isPromiseLike(value)) {\n if (resolveFn || rejectFn) {\n result = value.then(resolveFn, rejectFn);\n }\n }\n else {\n try {\n if (resolveFn) {\n result = resolveFn(value);\n }\n }\n catch (err) {\n if (rejectFn) {\n result = rejectFn(err);\n }\n else {\n throw err;\n }\n }\n }\n }\n finally {\n if (finallyFn) {\n doFinally(result, finallyFn);\n }\n }\n return result;\n}\nfunction doFinally(value, finallyFn) {\n var result = value;\n if (finallyFn) {\n if (isPromiseLike(value)) {\n if (value.finally) {\n result = value.finally(finallyFn);\n }\n else {\n result = value.then(function (value) {\n finallyFn();\n return value;\n }, function (reason) {\n finallyFn();\n throw reason;\n });\n }\n }\n else {\n finallyFn();\n }\n }\n return result;\n}\n\nvar _debugState;\nvar _debugResult;\nvar _debugHandled;\nvar _promiseDebugEnabled = false;\nfunction _addDebugState$1(thePromise, stateFn, resultFn, handledFn) {\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\n var props = {};\n props[_debugState] = { get: stateFn };\n props[_debugResult] = { get: resultFn };\n props[_debugHandled] = { get: handledFn };\n objDefineProperties(thePromise, props);\n}\nfunction setPromiseDebugState(enabled, logger) {\n _promiseDebugEnabled = enabled;\n}\n\nvar STRING_STATES = [\n \"pending\", \"resolving\", \"resolved\", REJECTED\n];\n\nvar DISPATCH_EVENT = \"dispatchEvent\";\nvar _hasInitEvent;\nfunction _hasInitEventFn(doc) {\n var evt;\n if (doc && doc.createEvent) {\n evt = doc.createEvent(\"Event\");\n }\n return (!!evt && evt.initEvent);\n}\nfunction emitEvent(target, evtName, populateEvent, useNewEvent) {\n var doc = getDocument();\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\n populateEvent && populateEvent(theEvt);\n if (_hasInitEvent.v) {\n theEvt.initEvent(evtName, false, true);\n }\n if (theEvt && target[DISPATCH_EVENT]) {\n target[DISPATCH_EVENT](theEvt);\n }\n else {\n var handler = target[\"on\" + evtName];\n if (handler) {\n handler(theEvt);\n }\n else {\n var theConsole = getInst(\"console\");\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\n }\n }\n}\n\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\nvar _currentPromiseId = [];\nvar _uniquePromiseId = 0;\nvar _unhandledRejectionTimeout = 10;\nvar _aggregationError;\nvar _hasPromiseRejectionEvent;\nfunction dumpFnObj(value) {\n if (isFunction(value)) {\n return value.toString();\n }\n return dumpObj(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAggregationError(values) {\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", function (self, args) {\n self.errors = args[0];\n })));\n return new _aggregationError.v(values);\n}\nfunction _createPromise(newPromise, processor, executor) {\n var additionalArgs = arrSlice(arguments, 3);\n var _state = 0 ;\n var _hasResolved = false;\n var _settledValue;\n var _queue = [];\n var _id = _uniquePromiseId++;\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\n var _handled = false;\n var _unHandledRejectionHandler = null;\n var _thePromise;\n function _then(onResolved, onRejected) {\n try {\n _currentPromiseId.push(_id);\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n var thenPromise = newPromise(function (resolve, reject) {\n _queue.push(function () {\n try {\n var handler = _state === 2 ? onResolved : onRejected;\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\n if (isPromiseLike(value)) {\n value.then(resolve, reject);\n }\n else if (handler) {\n resolve(value);\n }\n else if (_state === 3 ) {\n reject(value);\n }\n else {\n resolve(value);\n }\n }\n catch (e) {\n reject(e);\n }\n });\n if (_hasResolved) {\n _processQueue();\n }\n }, additionalArgs);\n return thenPromise;\n }\n finally {\n _currentPromiseId.pop();\n }\n }\n function _catch(onRejected) {\n return _then(undefined, onRejected);\n }\n function _finally(onFinally) {\n var thenFinally = onFinally;\n var catchFinally = onFinally;\n if (isFunction(onFinally)) {\n thenFinally = function (value) {\n onFinally && onFinally();\n return value;\n };\n catchFinally = function (reason) {\n onFinally && onFinally();\n throw reason;\n };\n }\n return _then(thenFinally, catchFinally);\n }\n function _strState() {\n return STRING_STATES[_state];\n }\n function _processQueue() {\n if (_queue.length > 0) {\n var pending = _queue.slice();\n _queue = [];\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n processor(pending);\n }\n }\n function _createSettleIfFn(newState, allowState) {\n return function (theValue) {\n if (_state === allowState) {\n if (newState === 2 && isPromiseLike(theValue)) {\n _state = 1 ;\n theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));\n return;\n }\n _state = newState;\n _hasResolved = true;\n _settledValue = theValue;\n _processQueue();\n if (!_handled && newState === 3 && !_unHandledRejectionHandler) {\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\n }\n }\n };\n }\n function _notifyUnhandledRejection() {\n if (!_handled) {\n _handled = true;\n if (isNode()) {\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\n }\n else {\n var gbl = getWindow() || getGlobal();\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe((getInst), [STR_PROMISE + \"RejectionEvent\"]).v));\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\n theEvt.reason = _settledValue;\n return theEvt;\n }, !!_hasPromiseRejectionEvent.v);\n }\n }\n }\n _thePromise = {\n then: _then,\n \"catch\": _catch,\n finally: _finally\n };\n objDefineProp(_thePromise, \"state\", {\n get: _strState\n });\n if (_promiseDebugEnabled) {\n _addDebugState$1(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\n }\n if (hasSymbol()) {\n _thePromise[getKnownSymbol(11 )] = \"IPromise\";\n }\n function _toString() {\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (\"\");\n }\n _thePromise.toString = _toString;\n (function _initialize() {\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\n }\n var _rejectFn = _createSettleIfFn(3 , 0 );\n try {\n executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);\n }\n catch (e) {\n _rejectFn(e);\n }\n })();\n return _thePromise;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllPromise(newPromise) {\n return function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n try {\n var values_1 = [];\n var pending_1 = 1;\n iterForOf(input, function (item, idx) {\n if (item) {\n pending_1++;\n doAwait(item, function (value) {\n values_1[idx] = value;\n if (--pending_1 === 0) {\n resolve(values_1);\n }\n }, reject);\n }\n });\n pending_1--;\n if (pending_1 === 0) {\n resolve(values_1);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createResolvedPromise(newPromise) {\n return function (value) {\n var additionalArgs = arrSlice(arguments, 1);\n if (isPromiseLike(value)) {\n return value;\n }\n return newPromise(function (resolve) {\n resolve(value);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRejectedPromise(newPromise) {\n return function (reason) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (_resolve, reject) {\n reject(reason);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllSettledPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var values = [];\n var pending = 1;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (value.rejected) {\n values[idx] = {\n status: REJECTED,\n reason: value.reason\n };\n }\n else {\n values[idx] = {\n status: \"fulfilled\",\n value: value.value\n };\n }\n if (--pending === 0) {\n resolve(values);\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0) {\n resolve(values);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRacePromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var isDone = false;\n function processItem(item) {\n doAwaitResponse(item, function (value) {\n if (!isDone) {\n isDone = true;\n if (value.rejected) {\n reject(value.reason);\n }\n else {\n resolve(value.value);\n }\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAnyPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var theErros = [];\n var pending = 1;\n var isDone = false;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (!value.rejected) {\n isDone = true;\n resolve(value.value);\n return;\n }\n else {\n theErros[idx] = value.reason;\n }\n if (--pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n\nfunction syncItemProcessor(pending) {\n arrForEach(pending, function (fn) {\n try {\n fn();\n }\n catch (e) {\n }\n });\n}\nfunction timeoutItemProcessor(timeout) {\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\n return function (pending) {\n scheduleTimeout(function () {\n syncItemProcessor(pending);\n }, callbackTimeout);\n };\n}\nfunction idleItemProcessor(timeout) {\n var options;\n if (timeout >= 0) {\n options = {\n timeout: +timeout\n };\n }\n return function (pending) {\n scheduleIdleCallback(function (deadline) {\n syncItemProcessor(pending);\n }, options);\n };\n}\n\nvar _allAsyncSettledCreator;\nvar _raceAsyncCreator;\nvar _anyAsyncCreator;\nfunction createAsyncPromise(executor, timeout) {\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\n}\nvar createAsyncAllPromise = /*#__PURE__*/ _createAllPromise(createAsyncPromise);\nvar createAsyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createAsyncPromise);\nvar createAsyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createAsyncPromise);\nfunction createAsyncAllSettledPromise(input, timeout) {\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\n return _allAsyncSettledCreator.v(input, timeout);\n}\nfunction createAsyncRacePromise(values, timeout) {\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\n return _raceAsyncCreator.v(values, timeout);\n}\nfunction createAsyncAnyPromise(values, timeout) {\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\n return _anyAsyncCreator.v(values, timeout);\n}\n\nvar _promiseCls;\nvar _allCreator;\nvar _allNativeSettledCreator;\nvar _raceNativeCreator;\nvar _anyNativeCreator;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createNativePromiseHelper(name, func) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n if (_promiseCls.v && _promiseCls.v[name]) {\n return createCachedValue(function (input, timeout) {\n return createNativePromise(function (resolve, reject) {\n _promiseCls.v[name](input).then(resolve, reject);\n });\n });\n }\n return func();\n}\nfunction createNativePromise(executor, timeout) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n var PrmCls = _promiseCls.v;\n if (!PrmCls) {\n return createAsyncPromise(executor);\n }\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\n }\n var _state = 0 ;\n function _strState() {\n return STRING_STATES[_state];\n }\n var thePromise = new PrmCls(function (resolve, reject) {\n function _resolve(value) {\n _state = 2 ;\n resolve(value);\n }\n function _reject(reason) {\n _state = 3 ;\n reject(reason);\n }\n executor(_resolve, _reject);\n });\n objDefineProp(thePromise, \"state\", {\n get: _strState\n });\n return thePromise;\n}\nfunction createNativeAllPromise(input, timeout) {\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", function () { return createCachedValue(_createAllPromise(createNativePromise)); }));\n return _allCreator.v(input, timeout);\n}\nvar createNativeResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createNativePromise);\nvar createNativeRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createNativePromise);\nfunction createNativeAllSettledPromise(input, timeout) {\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", function () { return _createAllSettledPromise(createNativePromise); }));\n return _allNativeSettledCreator.v(input, timeout);\n}\nfunction createNativeRacePromise(values, timeout) {\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", function () { return _createRacePromise(createNativePromise); }));\n return _raceNativeCreator.v(values, timeout);\n}\nfunction createNativeAnyPromise(values, timeout) {\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", function () { return _createAnyPromise(createNativePromise); }));\n return _anyNativeCreator.v(values, timeout);\n}\n\nvar _allSyncSettledCreator;\nvar _raceSyncCreator;\nvar _anySyncCreator;\nfunction createSyncPromise(executor) {\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\n}\nvar createSyncAllPromise = /*#__PURE__*/ _createAllPromise(createSyncPromise);\nvar createSyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createSyncPromise);\nvar createSyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createSyncPromise);\nfunction createSyncAllSettledPromise(input, timeout) {\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\n return _allSyncSettledCreator.v(input, timeout);\n}\nfunction createSyncRacePromise(values, timeout) {\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\n return _raceSyncCreator.v(values, timeout);\n}\nfunction createSyncAnyPromise(values, timeout) {\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\n return _anySyncCreator.v(values, timeout);\n}\n\nvar _defaultIdleTimeout;\nvar _allIdleSettledCreator;\nvar _raceIdleCreator;\nvar _anyIdleCreator;\nfunction setDefaultIdlePromiseTimeout(idleDeadline) {\n _defaultIdleTimeout = idleDeadline;\n}\nvar setDefaultIdleTimeout = ( setDefaultIdlePromiseTimeout);\nfunction createIdlePromise(executor, timeout) {\n var theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\n}\nvar createIdleAllPromise = /*#__PURE__*/ _createAllPromise(createIdlePromise);\nvar createIdleResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createIdlePromise);\nvar createIdleRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createIdlePromise);\nfunction createIdleAllSettledPromise(input, timeout) {\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\n return _allIdleSettledCreator.v(input, timeout);\n}\nfunction createIdleRacePromise(values, timeout) {\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\n return _raceIdleCreator.v(values, timeout);\n}\nfunction createIdleAnyPromise(values, timeout) {\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\n return _anyIdleCreator.v(values, timeout);\n}\n\nvar _promiseCreator;\nvar _allSettledCreator;\nvar _raceCreator;\nvar _anyCreator;\nfunction setCreatePromiseImpl(creator) {\n _promiseCreator = creator ? createCachedValue(creator) : null;\n}\nfunction createPromise(executor, timeout) {\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\n return _promiseCreator.v.call(this, executor, timeout);\n}\nvar createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);\nvar createResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createPromise);\nvar createRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createPromise);\nfunction createAllSettledPromise(input, timeout) {\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\n return _allSettledCreator.v(input, timeout);\n}\nfunction createRacePromise(values, timeout) {\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\n return _raceCreator.v(values, timeout);\n}\nfunction createAnyPromise(values, timeout) {\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\n return _anyCreator.v(values, timeout);\n}\n\nfunction createTimeoutPromise(timeout, resolveReject, message) {\n return createPromise(function (resolve, reject) {\n scheduleTimeout(function () {\n (resolveReject ? resolve : reject)(!isUndefined(message) ? message : \"Timeout of \" + timeout + \"ms exceeded\");\n }, timeout);\n });\n}\n\nfunction _doneChk(isDone, state, value, thisArg) {\n var result = isDone;\n state.res = value;\n if (!result) {\n if (state.isDone && isFunction(state.isDone)) {\n return doAwait(state.isDone.call(thisArg, state), function (done) {\n state.iter++;\n return !!done;\n });\n }\n else {\n result = !!state.isDone;\n }\n }\n state.iter++;\n return result;\n}\nfunction doWhileAsync(callbackFn, isDoneFn, thisArg) {\n var promise;\n var resolve;\n var reject = function (reason) {\n isDone = true;\n throw reason;\n };\n var isDone = false;\n var state = {\n st: utcNow(),\n iter: 0,\n isDone: isDoneFn || false\n };\n if (callbackFn) {\n var _createPromise_1 = function () {\n return createPromise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n };\n var _handleAsyncDone_1 = function (done) {\n isDone = !!done;\n if (!isDone) {\n _processNext_1();\n }\n else {\n resolve(state.res);\n }\n };\n var _processNext_1 = function () {\n while (!isDone) {\n try {\n var cbResult = callbackFn.call(thisArg, state);\n if (isPromiseLike(cbResult)) {\n promise = promise || _createPromise_1();\n doAwait(cbResult, function (res) {\n try {\n doAwait(_doneChk(isDone, state, res, thisArg), _handleAsyncDone_1, reject);\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n return promise;\n }\n else {\n var dnRes = _doneChk(isDone, state, cbResult, thisArg);\n if (isPromiseLike(dnRes)) {\n promise = promise || _createPromise_1();\n doAwait(dnRes, _handleAsyncDone_1, reject);\n return promise;\n }\n else {\n isDone = !!dnRes;\n }\n }\n }\n catch (e) {\n reject(e);\n return promise;\n }\n }\n if (isDone && resolve) {\n resolve(state.res);\n }\n return promise || state.res;\n };\n return _processNext_1();\n }\n}\n\nfunction arrForEachAsync(theArray, callbackFn, thisArg) {\n if (theArray) {\n var len_1 = getLength(theArray);\n if (len_1) {\n var isDone = function (state) {\n if (state.iter >= len_1 || state.res === -1) {\n return true;\n }\n };\n return doWhileAsync(function (state) {\n var idx = state.iter;\n if (idx in theArray) {\n return callbackFn.call(thisArg || theArray, theArray[idx], idx, theArray);\n }\n }, isDone);\n }\n }\n}\n\nvar _iterSymbol;\nvar _iterAsyncSymbol;\nfunction iterForOfAsync(iter, callbackFn, thisArg) {\n var err;\n var iterResult;\n var theIter = iter;\n function onFailed(failed) {\n err = { e: failed };\n if (theIter.throw) {\n iterResult = null;\n theIter.throw(err);\n }\n throw failed;\n }\n function onFinally() {\n try {\n if (iterResult && !iterResult[DONE]) {\n theIter[RETURN] && theIter[RETURN](iterResult);\n }\n }\n finally {\n if (err) {\n throw err.e;\n }\n }\n }\n if (iter) {\n if (!isIterator(iter)) {\n !_iterAsyncSymbol && (_iterAsyncSymbol = createCachedValue(getKnownSymbol(0 )));\n theIter = iter[_iterAsyncSymbol.v] ? iter[_iterAsyncSymbol.v]() : null;\n if (!theIter) {\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(3 )));\n theIter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\n }\n }\n if (theIter && isIterator(theIter)) {\n var result = void 0;\n try {\n result = doWhileAsync(function (state) {\n return doAwait(theIter.next(), function (res) {\n iterResult = res;\n if (!res[DONE]) {\n return fnCall(callbackFn, thisArg || theIter, iterResult[VALUE], state.iter, theIter);\n }\n }, function (reason) {\n state.isDone = true;\n onFailed(reason);\n });\n }, function (state) {\n if (!iterResult || iterResult[DONE] || state.res === -1) {\n onFinally();\n return true;\n }\n }, thisArg || theIter);\n if (isPromiseLike(result)) {\n result = doFinally(result.catch(onFailed), onFinally);\n }\n return result;\n }\n catch (failed) {\n onFailed(failed);\n }\n finally {\n if (result && !isPromiseLike(result)) {\n onFinally();\n }\n }\n }\n }\n}\n\nvar REJECT = \"reject\";\nvar REJECTED_ERROR = \"Rejected\";\nvar _schedulerId = 0;\nvar _debugName;\nvar _debugIntState;\nvar _customErrors = {};\nfunction _rejectDone() {\n}\nfunction _createError(type, evt, message) {\n !_customErrors[type] && (_customErrors[type] = createCustomError(type));\n var now = utcNow();\n return new (_customErrors[type])(\"Task [\".concat(evt.id, \"] \").concat(message || \"\", \"- \").concat((evt.st ? \"Running\" : \"Waiting\"), \": \").concat(_calcTime(now, evt.st || evt.cr)));\n}\nfunction _calcTime(now, start) {\n return ((now - start) || \"0\") + \" ms\";\n}\nfunction _abortStaleTasks(taskQueue, staleTimeoutPeriod) {\n var now = utcNow();\n var expired = now - staleTimeoutPeriod;\n arrForEach(taskQueue, function (evt) {\n if (evt && !evt.rj && (evt.st && evt.st < expired) || (!evt.st && evt.cr && evt.cr < expired)) {\n evt && evt[REJECT](evt.rj || _createError(\"Aborted\", evt, \"Stale \"));\n }\n });\n}\nfunction _removeTask(queue, taskDetail) {\n var idx = arrIndexOf(queue, taskDetail);\n if (idx !== -1) {\n queue.splice(idx, 1);\n }\n}\nfunction _addDebugState(theScheduler, nameFn, stateFn) {\n _debugName = _debugName || { toString: function () { return \"[[SchedulerName]]\"; } };\n _debugIntState = _debugIntState || { toString: function () { return \"[[SchedulerState]]\"; } };\n objDefineProp(theScheduler, _debugName, { get: nameFn });\n objDefineProp(theScheduler, _debugIntState, { get: stateFn });\n}\nfunction createTaskScheduler(newPromise, name) {\n var _theTask;\n var _running = [];\n var _waiting = [];\n var _staleTimeoutPeriod = 600000;\n var _staleTimeoutCheckPeriod = _staleTimeoutPeriod / 10;\n var _taskCount = 0;\n var _schedulerName = (name ? (name + \".\") : \"\") + _schedulerId++;\n var _blockedTimer;\n newPromise = newPromise || createPromise;\n var _startBlockedTimer = function () {\n var hasTasks = (getLength(_running) + getLength(_waiting)) > 0;\n if (_staleTimeoutPeriod > 0) {\n if (!_blockedTimer) {\n _blockedTimer = scheduleTimeout(function () {\n _abortStaleTasks(_running, _staleTimeoutPeriod);\n _abortStaleTasks(_waiting, _staleTimeoutPeriod);\n _blockedTimer && (_blockedTimer.enabled = ((getLength(_running) + getLength(_waiting)) > 0));\n }, _staleTimeoutCheckPeriod);\n _blockedTimer.unref();\n }\n _blockedTimer && (_blockedTimer.enabled = hasTasks);\n }\n };\n var _queueTask = function (startAction, taskName, timeout) {\n var _a;\n var taskId = _schedulerName + \".\" + _taskCount++;\n if (taskName) {\n taskId += \"-(\" + taskName + \")\";\n }\n var newTask = (_a = {\n id: taskId,\n cr: utcNow(),\n to: timeout\n },\n _a[REJECT] = function (reason) {\n newTask.rj = reason || _createError(REJECTED_ERROR, newTask);\n newTask[REJECT] = _rejectDone;\n },\n _a);\n if (!_theTask) {\n newTask.p = newPromise(_runTask(newTask, startAction));\n }\n else {\n newTask.p = _waitForPreviousTask(newTask, _theTask, startAction);\n }\n _theTask = newTask;\n return newTask.p;\n };\n var _runTask = function (taskDetail, startAction) {\n taskDetail.st = utcNow();\n _running.push(taskDetail);\n _startBlockedTimer();\n return function (onTaskResolve, onTaskReject) {\n var _promiseReject = function (reason) {\n taskDetail.rj = taskDetail.rj || reason || _createError(REJECTED_ERROR, taskDetail);\n taskDetail[REJECT] = _rejectDone;\n _doCleanup(taskDetail);\n onTaskResolve = null;\n onTaskReject && onTaskReject(reason);\n onTaskReject = null;\n };\n var taskId = taskDetail.id;\n if (taskDetail.rj) {\n _promiseReject(taskDetail.rj);\n }\n else {\n taskDetail[REJECT] = _promiseReject;\n try {\n var startResult = startAction(taskId);\n if (taskDetail.to && isPromiseLike(startResult)) {\n taskDetail.t = scheduleTimeout(function () {\n _promiseReject(_createError(\"Timeout\", taskDetail));\n }, taskDetail.to);\n }\n doAwait(startResult, function (theResult) {\n _doCleanup(taskDetail);\n try {\n onTaskResolve && onTaskResolve(theResult);\n }\n catch (e) {\n onTaskReject && onTaskReject(e);\n }\n onTaskReject = null;\n onTaskResolve = null;\n }, _promiseReject);\n }\n catch (e) {\n _promiseReject(e);\n }\n }\n };\n };\n var _waitForPreviousTask = function (taskDetail, prevTask, startAction) {\n _waiting.push(taskDetail);\n _startBlockedTimer();\n return newPromise(function (onWaitResolve, onWaitReject) {\n doAwaitResponse(prevTask.p, function () {\n _removeTask(_waiting, taskDetail);\n _runTask(taskDetail, startAction)(onWaitResolve, onWaitReject);\n });\n });\n };\n var _doCleanup = function (taskDetail) {\n _removeTask(_running, taskDetail);\n taskDetail.t && taskDetail.t.cancel();\n taskDetail.t = null;\n if (_theTask && _theTask === taskDetail) {\n _theTask = null;\n if (getLength(_running) + getLength(_waiting) === 0) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n }\n }\n };\n var theScheduler = {\n idle: true,\n queue: _queueTask,\n setStaleTimeout: function (staleTimeout, staleCheckPeriod) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n _staleTimeoutPeriod = staleTimeout;\n _staleTimeoutCheckPeriod = staleCheckPeriod || staleTimeout / 10;\n _startBlockedTimer();\n }\n };\n objDefine(theScheduler, \"idle\", {\n g: function () {\n return getLength(_running) + getLength(_waiting) === 0;\n }\n });\n _addDebugState(theScheduler, function () { return _schedulerName; }, function () {\n return {\n l: _theTask,\n r: _running,\n w: _waiting\n };\n });\n return theScheduler;\n}\n\nvar toStringTagSymbol = getKnownSymbol(11 );\nvar PolyPromise = /*#__PURE__*/ (function () {\n function PolyPromiseImpl(executor) {\n this._$ = createAsyncPromise(executor);\n if (toStringTagSymbol) {\n this[toStringTagSymbol] = \"Promise\";\n }\n objDefineProp(this, \"state\", {\n get: function () {\n return this._$.state;\n }\n });\n }\n PolyPromiseImpl.all = createAsyncAllPromise;\n PolyPromiseImpl.race = createAsyncRacePromise;\n PolyPromiseImpl.any = createAsyncAnyPromise;\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\n var theProto = PolyPromiseImpl.prototype;\n theProto.then = function (onResolved, onRejected) {\n return this._$.then(onResolved, onRejected);\n };\n theProto.catch = function (onRejected) {\n return this._$.catch(onRejected);\n };\n theProto.finally = function (onfinally) {\n return this._$.finally(onfinally);\n };\n return PolyPromiseImpl;\n}());\n\nexport { PolyPromise, arrForEachAsync, createAllPromise, createAllSettledPromise, createAnyPromise, createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise, createIdleAllPromise, createIdleAllSettledPromise, createIdleAnyPromise, createIdlePromise, createIdleRacePromise, createIdleRejectedPromise, createIdleResolvedPromise, createNativeAllPromise, createNativeAllSettledPromise, createNativeAnyPromise, createNativePromise, createNativeRacePromise, createNativeRejectedPromise, createNativeResolvedPromise, createPromise, createRacePromise, createRejectedPromise, createResolvedPromise, createSyncAllPromise, createSyncAllSettledPromise, createSyncAnyPromise, createSyncPromise, createSyncRacePromise, createSyncRejectedPromise, createSyncResolvedPromise, createTaskScheduler, createTimeoutPromise, doAwait, doAwaitResponse, doFinally, doWhileAsync, iterForOfAsync, setCreatePromiseImpl, setDefaultIdlePromiseTimeout, setDefaultIdleTimeout, setPromiseDebugState };\n//# sourceMappingURL=ts-async.js.map\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=EnvUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=RandomHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.3.4';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n//# sourceMappingURL=DataCacheHelper.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n//# sourceMappingURL=ConfigDefaults.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n//# sourceMappingURL=DynamicSupport.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n//# sourceMappingURL=DynamicProperty.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n//# sourceMappingURL=DynamicState.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n//# sourceMappingURL=DynamicConfig.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=AsyncUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n//# sourceMappingURL=ConfigDefaultHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n//# sourceMappingURL=DbgExtensionUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n//# sourceMappingURL=DiagnosticLogger.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=CookieMgr.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n//# sourceMappingURL=NotificationManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n//# sourceMappingURL=PerfManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n//# sourceMappingURL=CoreUtils.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_ATTRIBUTE, _DYN_LENGTH, _DYN_PUSH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n/**\r\n * Find all script tags in the provided document and return the information about them.\r\n * @param doc\r\n * @returns\r\n */\r\nexport function findAllScripts(doc) {\r\n var scripts = doc.getElementsByTagName(\"script\");\r\n var result = [];\r\n arrForEach(scripts, function (script) {\r\n var src = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"src\");\r\n if (src) {\r\n var crossOrigin = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"crossorigin\");\r\n var async = script.hasAttribute(\"async\") === true;\r\n var defer = script.hasAttribute(\"defer\") === true;\r\n var referrerPolicy = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"referrerpolicy\");\r\n var info = { url: src };\r\n if (crossOrigin) {\r\n info.crossOrigin = crossOrigin;\r\n }\r\n if (async) {\r\n info.async = async;\r\n }\r\n if (defer) {\r\n info.defer = defer;\r\n }\r\n if (referrerPolicy) {\r\n info.referrerPolicy = referrerPolicy;\r\n }\r\n result[_DYN_PUSH /* @min:%2epush */](info);\r\n }\r\n });\r\n return result;\r\n}\r\n//# sourceMappingURL=W3cTraceParent.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=TelemetryHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n//# sourceMappingURL=ProcessTelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHandlerContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n//# sourceMappingURL=UnloadHookContainer.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n//# sourceMappingURL=BaseTelemetryPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n//# sourceMappingURL=TelemetryInitializerPlugin.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, createSyncAllSettledPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, isPromiseLike, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { ActiveStatus } from \"../JavaScriptSDK.Enums/InitActiveStatusEnum\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_I_KEY, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VALUE, _DYN_VERSION, _DYN_WATCH, _DYN__INACTIVE } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, isNotNullOrUndefined, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\nvar maxInitQueueSize = 100;\r\nvar maxInitTimeout = 50000;\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n var _activeStatus; // to indicate if ikey or endpoint url promised is resolved or not\r\n var _endpoint;\r\n var _initInMemoMaxSize; // max event count limit during wait for init promises to be resolved\r\n var _isStatusSet; // track if active status is set in case of init timeout and init promises setting the status twice\r\n var _initTimer;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions, _eventQueue];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // since version 3.3.0\r\n _self.activeStatus = function () { return _activeStatus; };\r\n // since version 3.3.0\r\n // internal\r\n _self._setPendingStatus = function () {\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var rootCfg = details.cfg;\r\n var isPending = _activeStatus === 3 /* eActiveStatus.PENDING */;\r\n if (isPending) {\r\n // means waiting for previous promises to be resolved, won't apply new changes\r\n return;\r\n }\r\n _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n var ikey = rootCfg[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n var endpointUrl = rootCfg.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\r\n if (isNullOrUndefined(ikey)) {\r\n _instrumentationKey = null;\r\n // if new ikey is null, set status to be inactive, all new events will be saved in memory or dropped\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n var msg = \"Please provide instrumentation key\";\r\n if (!_isInitialized) {\r\n // only throw error during initialization\r\n throwError(msg);\r\n }\r\n else {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, msg);\r\n _releaseQueues();\r\n }\r\n return;\r\n }\r\n var promises = [];\r\n if (isPromiseLike(ikey)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](ikey);\r\n _instrumentationKey = null; // reset current local ikey variable (otherwise it will always be the previous ikeys if timeout is called before promise cb)\r\n }\r\n else {\r\n // string\r\n _instrumentationKey = ikey;\r\n }\r\n if (isPromiseLike(endpointUrl)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](endpointUrl);\r\n _endpoint = null; // reset current local endpoint variable (otherwise it will always be the previous urls if timeout is called before promise cb)\r\n }\r\n else {\r\n // string or null\r\n _endpoint = endpointUrl;\r\n }\r\n // at least have one promise\r\n if (promises[_DYN_LENGTH /* @min:%2elength */]) {\r\n // reset to false for new dynamic changes\r\n _isStatusSet = false;\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n var initTimeout = isNotNullOrUndefined(rootCfg.initTimeOut) ? rootCfg.initTimeOut : maxInitTimeout; // rootCfg.initTimeOut could be 0\r\n var allPromises = createSyncAllSettledPromise(promises);\r\n _initTimer = scheduleTimeout(function () {\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _initTimer = null;\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }, initTimeout);\r\n doAwaitResponse(allPromises, function (response) {\r\n try {\r\n if (_isStatusSet) {\r\n // promises take too long to resolve, ignore them\r\n // active status should be set by timeout already\r\n return;\r\n }\r\n if (!response.rejected) {\r\n var values = response[_DYN_VALUE /* @min:%2evalue */];\r\n if (values && values[_DYN_LENGTH /* @min:%2elength */]) {\r\n // ikey\r\n var ikeyRes = values[0];\r\n _instrumentationKey = ikeyRes && ikeyRes[_DYN_VALUE /* @min:%2evalue */];\r\n // endpoint\r\n if (values[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var endpointRes = values[1];\r\n _endpoint = endpointRes && endpointRes[_DYN_VALUE /* @min:%2evalue */];\r\n }\r\n }\r\n if (_instrumentationKey) {\r\n // if ikey is null, no need to trigger extra dynamic changes for extensions\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n config.endpointUrl = _endpoint; // set config.endpointUrl for extensions to consume\r\n }\r\n }\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _setStatus();\r\n }\r\n catch (e) {\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // means no promises\r\n _setStatus();\r\n }\r\n //_instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n if (_activeStatus === ActiveStatus.ACTIVE) {\r\n _releaseQueues();\r\n }\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] = telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]() && _activeStatus === ActiveStatus.ACTIVE) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else if (_activeStatus !== ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */]) {\r\n // Queue events until all extensions are initialized\r\n if (_eventQueue[_DYN_LENGTH /* @min:%2elength */] <= _initInMemoMaxSize) {\r\n // set limit, if full, stop adding new events\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n if (_activeStatus === 2 /* eActiveStatus.ACTIVE */) {\r\n arrForEach(eventQueue, function (event) {\r\n event[_DYN_I_KEY /* @min:%2eiKey */] = event[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n else {\r\n // new one for msg ikey\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"core init status is not active\");\r\n }\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _setStatus() {\r\n _isStatusSet = true;\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 112 /* _eInternalMessageId.InitPromiseException */, \"ikey can't be resolved from promises\");\r\n }\r\n else {\r\n _activeStatus = ActiveStatus.ACTIVE;\r\n }\r\n _releaseQueues();\r\n }\r\n function _releaseQueues() {\r\n if (_isInitialized) {\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n }\r\n }\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n _activeStatus = 0 /* eActiveStatus.NONE */; // default is None\r\n _endpoint = null;\r\n _initInMemoMaxSize = null;\r\n _isStatusSet = false;\r\n _initTimer = null;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a[_DYN_I_KEY /* @min:iKey */] = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n // for preCfgPerfMgr = createPerfMgr = null\r\n // initial createPerfMgr function should be _createPerfManager\r\n if ((prevCfgPerfMgr !== createPerfMgr) || !prevCfgPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.activeStatus.\r\n// Removed Stub for AppInsightsCore.prototype._setPendingStatus.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n//# sourceMappingURL=AppInsightsCore.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=ResponseHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN_VALUE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fetchCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _fetchCredentials = config.fetchCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_fetchCredentials) { // if user passed in this value via post channel (1ds), then use it\r\n init.credentials = _fetchCredentials;\r\n }\r\n else if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result[_DYN_VALUE /* @min:%2evalue */];\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp[_DYN_VALUE /* @min:%2evalue */]);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fetchCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n SenderPostManager.__ieDyn=1;\n\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n//# sourceMappingURL=SenderPostManager.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n//# sourceMappingURL=EventHelpers.js.map","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n//# sourceMappingURL=InstrumentHooks.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n//# sourceMappingURL=Constants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n//# sourceMappingURL=RequestResponseHeaders.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n//# sourceMappingURL=DataSanitizer.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=UrlHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n//# sourceMappingURL=Util.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\n//# sourceMappingURL=Enums.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=StorageHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_DATE, _DYN_DAYS_OF_MONTH, _DYN_DISABLED, _DYN_GET_UTCDATE, _DYN_INTERVAL, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_PUSH, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n function ThrottleMgr(core, namePrefix) {\r\n var _self = this;\r\n var _canUseLocalStorage;\r\n var _logger;\r\n var _config;\r\n var _localStorageObj;\r\n var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n var _namePrefix;\r\n var _queue;\r\n var _isReady = false;\r\n var _isSpecificDaysGiven = false;\r\n _initConfig();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_queue];\r\n };\r\n _self.getConfig = function () {\r\n return _config;\r\n };\r\n /**\r\n * Check if it is the correct day to send message.\r\n * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n * because we only allow triggering sendMessage() once a day.\r\n * @returns if the current date is the valid date to send message\r\n */\r\n _self.canThrottle = function (msgId) {\r\n var localObj = _getLocalStorageObjByKey(msgId);\r\n var cfg = _getCfgByKey(msgId);\r\n return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n };\r\n /**\r\n * Check if throttle is triggered on current day(UTC)\r\n * if canThrottle returns false, isTriggered will return false\r\n * @returns if throttle is triggered on current day(UTC)\r\n */\r\n _self.isTriggered = function (msgId) {\r\n return _isTrigger(msgId);\r\n };\r\n /**\r\n * Before isReady set to true, all message will be stored in queue.\r\n * Message will only be sent out after isReady set to true.\r\n * Initial and default value: false\r\n * @returns isReady state\r\n */\r\n _self.isReady = function () {\r\n return _isReady;\r\n };\r\n /**\r\n * Flush all message with given message key in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flush = function (msgId) {\r\n try {\r\n var queue = _getQueueByKey(msgId);\r\n if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var items = queue.slice(0);\r\n _queue[msgId] = [];\r\n arrForEach(items, function (item) {\r\n _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n });\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Flush all message in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flushAll = function () {\r\n try {\r\n if (_queue) {\r\n var result_1 = true;\r\n objForEachKey(_queue, function (key) {\r\n var isFlushed = _self.flush(parseInt(key));\r\n result_1 = result_1 && isFlushed;\r\n });\r\n return result_1;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Set isReady State\r\n * if isReady set to true, message queue will be flushed automatically.\r\n * @param isReady isReady State\r\n * @pa\r\n * @returns if message queue is flushed\r\n */\r\n _self.onReadyState = function (isReady, flushAll) {\r\n if (flushAll === void 0) { flushAll = true; }\r\n _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n if (_isReady && flushAll) {\r\n return _self.flushAll();\r\n }\r\n return null;\r\n };\r\n _self.sendMessage = function (msgID, message, severity) {\r\n return _flushMessage(msgID, message, severity, true);\r\n };\r\n function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n if (_isReady) {\r\n var isSampledIn = _canSampledIn(msgID);\r\n if (!isSampledIn) {\r\n return;\r\n }\r\n var cfg = _getCfgByKey(msgID);\r\n var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n var throttled = false;\r\n var number = 0;\r\n var isTriggered = _isTrigger(msgID);\r\n try {\r\n if (canThrottle && !isTriggered) {\r\n number = Math.min(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n throttled = true;\r\n _isTriggered[msgID] = true;\r\n localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n }\r\n else {\r\n _isTriggered[msgID] = canThrottle;\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n }\r\n var localStorageName = _getLocalStorageName(msgID);\r\n _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n for (var i = 0; i < number; i++) {\r\n _sendMessage(msgID, _logger, message, severity);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return {\r\n isThrottled: throttled,\r\n throttleNum: number\r\n };\r\n }\r\n else {\r\n if (!!saveUnsentMsg) {\r\n var queue = _getQueueByKey(msgID);\r\n queue[_DYN_PUSH /* @min:%2epush */]({\r\n msgID: msgID,\r\n message: message,\r\n severity: severity\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n function _initConfig() {\r\n _logger = safeGetLogger(core);\r\n _isTriggered = {};\r\n _localStorageObj = {};\r\n _queue = {};\r\n _config = {};\r\n _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n var coreConfig = details.cfg;\r\n _canUseLocalStorage = utlCanUseLocalStorage();\r\n var configMgr = coreConfig.throttleMgrCfg || {};\r\n objForEachKey(configMgr, function (key, cfg) {\r\n _setCfgByKey(parseInt(key), cfg);\r\n });\r\n }));\r\n }\r\n function _getCfgByKey(msgID) {\r\n return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n }\r\n function _setCfgByKey(msgID, config) {\r\n var _a, _b;\r\n try {\r\n var cfg = config || {};\r\n var curCfg = {};\r\n curCfg[_DYN_DISABLED /* @min:%2edisabled */] = !!cfg[_DYN_DISABLED /* @min:%2edisabled */];\r\n var configInterval = cfg[_DYN_INTERVAL /* @min:%2einterval */] || {};\r\n _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n curCfg[_DYN_INTERVAL /* @min:%2einterval */] = _getIntervalConfig(configInterval);\r\n var limit = {\r\n samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n // dafault: every time sent only 1 event\r\n maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n };\r\n curCfg.limit = limit;\r\n _config[msgID] = curCfg;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _getIntervalConfig(interval) {\r\n interval = interval || {};\r\n var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n // default: send data every 3 month each year\r\n if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n interval.monthInterval = 3;\r\n if (!_isSpecificDaysGiven) {\r\n // default: send data on 28th\r\n interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */] = [28];\r\n _isSpecificDaysGiven = true;\r\n }\r\n }\r\n interval = {\r\n // dafault: sent every three months\r\n monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n };\r\n return interval;\r\n }\r\n function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n if (config && !config[_DYN_DISABLED /* @min:%2edisabled */] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n var curDate = _getThrottleDate();\r\n var date = localStorageObj[_DYN_DATE /* @min:%2edate */];\r\n var interval = config[_DYN_INTERVAL /* @min:%2einterval */];\r\n var monthCheck = 1;\r\n if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n }\r\n var dayCheck = 1;\r\n if (_isSpecificDaysGiven) {\r\n dayCheck = arrIndexOf(interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */], curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n }\r\n else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n var daySpan = Math.floor((curDate.getTime() - date.getTime()) / 86400000);\r\n dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n }\r\n return monthCheck >= 0 && dayCheck >= 0;\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageName(msgKey, prefix) {\r\n var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n if (msgKey) {\r\n return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n }\r\n return null;\r\n }\r\n // returns if throttle is triggered on current Date\r\n function _isTriggeredOnCurDate(preTriggerDate) {\r\n try {\r\n if (preTriggerDate) {\r\n var curDate = new Date();\r\n return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n function _getLocalStorageObj(value, logger, storageName) {\r\n try {\r\n var storageObj = {\r\n date: _getThrottleDate(),\r\n count: 0\r\n };\r\n if (value) {\r\n var obj = JSON.parse(value);\r\n var curObj = {\r\n date: _getThrottleDate(obj[_DYN_DATE /* @min:%2edate */]) || storageObj[_DYN_DATE /* @min:%2edate */],\r\n count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n };\r\n return curObj;\r\n }\r\n else {\r\n _resetLocalStorage(logger, storageName, storageObj);\r\n return storageObj;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n // if datestr is not defined, current date will be returned\r\n function _getThrottleDate(dateStr) {\r\n // if new Date() can't be created through the provided dateStr, null will be returned.\r\n try {\r\n if (dateStr) {\r\n var date = new Date(dateStr);\r\n //make sure it is a valid Date Object\r\n if (!isNaN(date.getDate())) {\r\n return date;\r\n }\r\n }\r\n else {\r\n return new Date();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _resetLocalStorage(logger, storageName, obj) {\r\n try {\r\n return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _checkInterval(interval, start, current) {\r\n if (interval <= 0) {\r\n return 1;\r\n }\r\n // count from start year\r\n return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;\r\n }\r\n function _sendMessage(msgID, logger, message, severity) {\r\n _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n }\r\n // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n // so config.limit.samplingRate = 1 means 0.0001%\r\n function _canSampledIn(msgID) {\r\n try {\r\n var cfg = _getCfgByKey(msgID);\r\n return randomValue(1000000) <= cfg.limit.samplingRate;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageObjByKey(key) {\r\n try {\r\n var curObj = _localStorageObj[key];\r\n if (!curObj) {\r\n var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n _localStorageObj[key] = curObj;\r\n }\r\n return _localStorageObj[key];\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _isTrigger(key) {\r\n var isTrigger = _isTriggered[key];\r\n if (isNullOrUndefined(isTrigger)) {\r\n isTrigger = false;\r\n var localStorageObj = _getLocalStorageObjByKey(key);\r\n if (localStorageObj) {\r\n isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n }\r\n _isTriggered[key] = isTrigger;\r\n }\r\n return _isTriggered[key];\r\n }\r\n function _getQueueByKey(key) {\r\n _queue = _queue || {};\r\n if (isNullOrUndefined(_queue[key])) {\r\n _queue[key] = [];\r\n }\r\n return _queue[key];\r\n }\r\n }\r\n return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n//# sourceMappingURL=ThrottleMgr.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // apply the default endpoints\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply user override endpoint or the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n }\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n//# sourceMappingURL=ConnectionStringParser.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n//# sourceMappingURL=Envelope.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n//# sourceMappingURL=Event.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"<no_method>\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n//# sourceMappingURL=Exception.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n//# sourceMappingURL=DataPoint.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n//# sourceMappingURL=Metric.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n//# sourceMappingURL=HelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n//# sourceMappingURL=PageView.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n//# sourceMappingURL=RemoteDependencyData.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n//# sourceMappingURL=Trace.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n//# sourceMappingURL=PageViewPerformance.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n//# sourceMappingURL=Data.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n//# sourceMappingURL=ContextTagKeys.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights.<instrumentation key>.PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n//# sourceMappingURL=TelemetryItemCreator.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n//# sourceMappingURL=PartAExtensions.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n//# sourceMappingURL=DomHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PUSH } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var listenerList = [];\r\n // Set the initial state\r\n // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n var rState = 1 /* eOfflineValue.Online */;\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n rState = 2 /* eOfflineValue.Offline */;\r\n }\r\n // ustate is changed by the user calling setOnlineState\r\n var uState = 0 /* eOfflineValue.Unknown */;\r\n // current state would be updated each time rState or uState is changed\r\n // it is a resolved value of rState and uState\r\n var _currentState = calCurrentState();\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _isOnline() {\r\n return _currentState;\r\n }\r\n function calCurrentState() {\r\n if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n return false;\r\n }\r\n return true; // if both unknown, then we assume the network is good\r\n }\r\n function listnerNoticeCheck() {\r\n // we were offline and are now online or we were online and now offline\r\n var newState = calCurrentState();\r\n if (_currentState !== newState) {\r\n _currentState = newState; // use the resolved state to update\r\n // send all the callbacks with the current state\r\n arrForEach(listenerList, function (callback) {\r\n var offlineState = {\r\n isOnline: _currentState,\r\n rState: rState,\r\n uState: uState\r\n };\r\n try {\r\n callback(offlineState);\r\n }\r\n catch (e) {\r\n // Do nothing, just making sure we run all of the callbacks\r\n }\r\n });\r\n }\r\n }\r\n function setOnlineState(newState) {\r\n uState = newState;\r\n listnerNoticeCheck();\r\n }\r\n function _setOnline() {\r\n rState = 1 /* eOfflineValue.Online */;\r\n listnerNoticeCheck();\r\n }\r\n function _setOffline() {\r\n rState = 2 /* eOfflineValue.Offline */;\r\n listnerNoticeCheck();\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n function addListener(callback) {\r\n listenerList[_DYN_PUSH /* @min:%2epush */](callback);\r\n // Define rm as an instance of IUnloadHook\r\n return {\r\n rm: function () {\r\n var index = listenerList.indexOf(callback);\r\n if (index > -1) {\r\n return listenerList.splice(index, 1);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload,\r\n addListener: addListener,\r\n setOnlineState: setOnlineState\r\n };\r\n}\r\n//# sourceMappingURL=Offline.js.map","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent, findAllScripts } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n//# sourceMappingURL=applicationinsights-common.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 5\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var firstPageViewSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (!firstPageViewSent) {\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n }\r\n firstPageViewSent = true;\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n//# sourceMappingURL=PageViewManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n//# sourceMappingURL=PageViewPerformanceManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n//# sourceMappingURL=PageVisitTimeManager.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n//# sourceMappingURL=Timing.js.map","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfMerge, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, findAllScripts, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isArray, isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a.expCfg = cfgDfMerge({ inclScripts: false, expLog: undefined, maxLogs: 50 }),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n var _expCfg;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var doc = getDocument();\r\n if (doc && (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.inclScripts)) {\r\n var scriptsInfo = findAllScripts(doc);\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionScripts\"] = JSON.stringify(scriptsInfo);\r\n }\r\n if (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.expLog) {\r\n var logs = _expCfg.expLog();\r\n if (logs && logs.logs && isArray(logs.logs)) {\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionLog\"] = logs.logs.slice(0, _expCfg.maxLogs).join(\"\\n\");\r\n }\r\n }\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _expCfg = _extConfig.expCfg;\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.3.4'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n//# sourceMappingURL=AnalyticsPlugin.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_ON_CFG_CHANGE_RECEIV0 = \"onCfgChangeReceive\"; // Count: 2\r\nexport var _DYN_NON_OVERRIDE_CONFIGS = \"nonOverrideConfigs\"; // Count: 2\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO1 = \"scheduleFetchTimeout\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg cfg to modify\r\n * @param nonOverrideConfigs nonOverrideConfigs\r\n * @param curLevel cur config level, starting at 0\r\n * @param maxLevel max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n try {\r\n var exceedMaxLevel = curLevel > maxLevel;\r\n if (exceedMaxLevel) {\r\n cfg = null;\r\n }\r\n var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n objForEachKey(curCfg_1, function (key) {\r\n var nonOverrideVal = nonOverrideConfigs[key];\r\n if (!!nonOverrideVal) {\r\n if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n }\r\n else {\r\n delete curCfg_1[key];\r\n }\r\n }\r\n });\r\n }\r\n return curCfg_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // if errors happen, do nothing\r\n return cfg;\r\n}\r\n// CDN Mode, value = B (CDN value = B)\r\n// |--------------------------------------------------------------------------|-----------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A | none | none | disabled | enabled | enabled | disabled |\r\n// (user Value = A) | disabled | disabled | disabled | disabled | enabled | disabled |\r\n// | enabled | enabled | disabled | enabled | enabled | disabled |\r\n// | none(blockCdn) | none | none | none | none | none |\r\n// | disabled(blockCdn) | disabled | disabled | disabled | disabled | disabled |\r\n// | enabled(blockCdn) | enabled | enabled | enabled | enabled | enabled |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n// cdn Mode (cdn Value = B)\r\n// |---------------------------------------------------------------------------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode | none | A | A | A || B | B || A | B || A |\r\n// (user Value = A) | disabled | A | A | A | B || A | B || A |\r\n// | enabled | A | A | A || B | B || A | B || A |\r\n// | none(blockCdn) | A | A | A | A | A |\r\n// | disabled(blockCdn) | A | A | A | A | A |\r\n// | enabled(blockCdn) | A | A | A | A | A |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n var _a;\r\n // cdn conifg value\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n var cdnM = cdnFt.mode;\r\n var cdnOnV = cdnFt.onCfg;\r\n var cdnOffV = cdnFt.offCfg;\r\n var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n var userM = userFt.mode;\r\n var userOnV = userFt.onCfg;\r\n var userOffV = userFt.offCfg;\r\n var blockCdn = !!userFt.blockCdnCfg;\r\n var mFld = F + field + M;\r\n var onFld = F + field + ON;\r\n var offFld = F + field + OFF;\r\n var mode = userM;\r\n var onV = userOnV;\r\n var offV = userOffV;\r\n if (!blockCdn) {\r\n if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n onV = cdnOnV || userOnV;\r\n offV = cdnOffV || userOffV;\r\n }\r\n else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n mode = 2 /* FeatureOptInMode.disable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n mode = 3 /* FeatureOptInMode.enable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n mode = 1 /* FeatureOptInMode.none */;\r\n }\r\n }\r\n return _a = {},\r\n _a[mFld] = mode,\r\n _a[onFld] = onV,\r\n _a[offFld] = offV,\r\n _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n try {\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n return cdnCfg.config;\r\n }\r\n var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n var cdnConfig_1 = cdnCfg.config || {};\r\n objForEachKey(optInMap, function (key) {\r\n var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n if (!isNullOrUndefined(featureVal)) {\r\n objForEachKey(featureVal, function (config, val) {\r\n setValueByKey(cdnConfig_1, config, val);\r\n });\r\n _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n }\r\n });\r\n return cdnConfig_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n var mode = ftVal[F + field + M];\r\n var val = ftVal[F + field + ON];\r\n var dVal = ftVal[F + field + OFF];\r\n var target = null;\r\n if (mode === 3 /* FeatureOptInMode.enable */) {\r\n target = val;\r\n }\r\n if (mode === 2 /* FeatureOptInMode.disable */) {\r\n target = dVal;\r\n }\r\n if (target) {\r\n objForEachKey(target, function (key, cfg) {\r\n setValueByKey(config, key, cfg);\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=CfgSyncHelperFuncs.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n CfgSyncPlugin.__ieDyn=1;\n\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n//# sourceMappingURL=CfgSyncPlugin.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 15\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_ITEM = \"item\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_ENABLE_SEND_PROMISE = \"enableSendPromise\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN_UNLOAD_TRANSPORTS = \"unloadTransports\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_SERIALIZE = \"serialize\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_ORI_PAYLOAD = \"oriPayload\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.3.4'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n//# sourceMappingURL=EnvelopeCreator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_ITEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n return;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payloads) {\r\n if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var payloadStr_1 = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payloadStr_1.join(\"\\n\") :\r\n \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n // TODO: add remove buffer override as well\r\n var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var previousItems = _getPreviousEvents();\r\n var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n var payloadStr = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM /* @min:%2eitem */]) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n return _getBufferBase(prefixedKey);\r\n }\r\n function _getBufferBase(key) {\r\n try {\r\n var bufferJson = getItem(logger, key);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n // this removes buffer with prefix+key\r\n function _getPreviousEvents() {\r\n var items = [];\r\n try {\r\n arrForEach(PREVIOUS_KEYS, function (key) {\r\n var events = _getItemsFromPreviousKey(key);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n // to make sure that we also transfer items from old prefixed + key buffer\r\n if (_namePrefix) {\r\n var prefixedKey = _namePrefix + \"_\" + key;\r\n var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n }\r\n });\r\n return items;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n // transform string[] to IInternalStorageItem[]\r\n function _getItemsFromPreviousKey(key) {\r\n try {\r\n var items = _getBufferBase(key);\r\n var transFormedItems_1 = [];\r\n arrForEach(items, function (item) {\r\n var internalItem = {\r\n item: item,\r\n cnt: 0 // previous events will be default to 0 count\r\n };\r\n transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n });\r\n // remove the session storage if we can add events back\r\n utlRemoveSessionStorage(logger, key);\r\n return transFormedItems_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return [];\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n var _a;\r\n _a = SessionStorageSendBuffer;\r\n SessionStorageSendBuffer.VERSION = \"_1\";\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n//# sourceMappingURL=SendBuffer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SERIALIZE, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self[_DYN_SERIALIZE /* @min:%2eserialize */] = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n output[field] = num;\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n//# sourceMappingURL=Serializer.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n//# sourceMappingURL=HashCodeScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n//# sourceMappingURL=SamplingScoreGenerator.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n//# sourceMappingURL=Sample.js.map","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isNumber, isPromiseLike, isString, isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DATA, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SEND_PROMISE, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEM, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_ORI_PAYLOAD, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SERIALIZE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN_UNLOAD_TRANSPORTS, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n _a.transports = UNDEFINED_VALUE,\r\n _a.retryCodes = UNDEFINED_VALUE,\r\n _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _beaconOnUnloadSupported;\r\n var _beaconNormalSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n var _alwaysUseCustomSend;\r\n var _disableXhr;\r\n var _fetchKeepAlive;\r\n var _xhrSend;\r\n var _fallbackSend;\r\n var _disableBeaconSplit;\r\n var _sendPostMgr;\r\n var _retryCodes;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported || _alwaysUseCustomSend) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n // getExtCfg only finds undefined values from core\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if it is not inital change (_endpointUrl has value)\r\n // if current sender endpoint url is not changed directly\r\n // means ExtCfg is not changed directly\r\n // then we need to monitor endpoint url changes from core\r\n if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if core endpoint url is changed\r\n if (coreUrl && coreUrl !== curExtUrl) {\r\n // and endpoint promise changes is handled by this as well\r\n senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n }\r\n }\r\n if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n // if it is promise, means the endpoint url is from core.endpointurl\r\n senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }\r\n // or is not string\r\n if (core.activeStatus() === ActiveStatus.PENDING) {\r\n // waiting for core promises to be resolved\r\n // NOTE: if active status is set to pending, stop sending, clear timer here\r\n _self.pause();\r\n }\r\n else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n // core status changed from pending to other status\r\n _self.resume();\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n _disableXhr = !!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */];\r\n _retryCodes = senderConfig.retryCodes;\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE /* @min:%2eenableSendPromise */];\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var customInterface = senderConfig.httpXHROverride;\r\n var httpInterface = null;\r\n var syncInterface = null;\r\n // User requested transport(s) values > Beacon > Fetch > XHR\r\n // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n _xhrSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync);\r\n };\r\n _fallbackSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync, false);\r\n };\r\n httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n return _doSend(httpInterface, payload, isAsync);\r\n };\r\n if (_fetchKeepAlive) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n if (!_fetchKeepAlive) {\r\n // remove fetch from theTransports\r\n syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n }\r\n syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */] || !_syncUnloadSender) && syncInterface) {\r\n _syncUnloadSender = function (payload, isAsync) {\r\n return _doSend(syncInterface, payload, isAsync);\r\n };\r\n }\r\n if (!_syncUnloadSender) {\r\n _syncUnloadSender = _xhrSend;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n var _a;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var isValidate = _validate(telemetryItem, diagLogger);\r\n if (!isValidate) {\r\n return;\r\n }\r\n var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n if (!aiEnvelope) {\r\n return;\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](aiEnvelope);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n var payloadItem = (_a = {},\r\n _a[_DYN_ITEM /* @min:item */] = payload,\r\n _a.cnt = 0 // inital cnt will always be 0\r\n ,\r\n _a);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n _self.isCompletelyIdle = function () {\r\n return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n };\r\n _self.getOfflineListener = function () {\r\n return _offlineListener;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // since version 3.2.0, this function is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.getOfflineSupport = function () {\r\n var _a;\r\n return _a = {\r\n getUrl: function () {\r\n return _endpointUrl;\r\n },\r\n createPayload: _createPayload\r\n },\r\n _a[_DYN_SERIALIZE /* @min:serialize */] = _serialize,\r\n _a.batch = _batch,\r\n _a.shouldProcess = function (evt) {\r\n return !!_validate(evt);\r\n },\r\n _a;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onError(payload, message, event);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onPartialSuccess(payload, results);\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onSuccess(payload, countOfItemsInPayload);\r\n //_self._buffer && _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, payload);\r\n };\r\n function _xdrOnLoad(xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = parseResponse(responseText);\r\n if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n function _getSendPostMgrConfig() {\r\n var _a;\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: function (xdr, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\r\n return _onBeaconRetry(data, onComplete, canSend);\r\n }\r\n };\r\n var config = (_a = {},\r\n _a[_DYN_ENABLE_SEND_PROMISE /* @min:enableSendPromise */] = _enableSendPromise,\r\n _a.isOneDs = false,\r\n _a.disableCredentials = false,\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = _disableXhr,\r\n _a.disableBeacon = !_beaconNormalSupported,\r\n _a.disableBeaconSync = !_beaconOnUnloadSupported,\r\n _a.senderOnCompleteCallBack = onCompleteFuncs,\r\n _a);\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n /**\r\n * xhr state changes\r\n */\r\n function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n /**\r\n * partial success handler\r\n */\r\n function _onPartialSuccess(payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n }\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n function _getPayloadArr(payload) {\r\n try {\r\n if (payload) {\r\n var internalPayload = payload;\r\n var arr = internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return arr;\r\n }\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _validate(telemetryItem, diagLogger) {\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return false;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return false;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return false;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return false;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return false;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n return true;\r\n }\r\n function _getEnvelope(telemetryItem, diagLogger) {\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n return aiEnvelope;\r\n }\r\n function _serialize(item) {\r\n var rlt = EMPTY_STR;\r\n var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var valid = _validate(item, diagLogger);\r\n var envelope = null;\r\n if (valid) {\r\n envelope = _getEnvelope(item, diagLogger);\r\n }\r\n if (envelope) {\r\n rlt = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](envelope);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n rlt = \"[\" + arr.join(\",\") + \"]\";\r\n }\r\n return rlt;\r\n }\r\n function _createPayload(data) {\r\n var _a;\r\n var headers = _getHeaders();\r\n return _a = {\r\n urlString: _endpointUrl\r\n },\r\n _a[_DYN_DATA /* @min:data */] = data,\r\n _a.headers = headers,\r\n _a;\r\n }\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _getOnComplete(payload, status, headers, response) {\r\n // ***********************************************************************************************\r\n //TODO: handle other status codes\r\n if (status === 200 && payload) {\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n else {\r\n response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n }\r\n }\r\n function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n if (markAsSent === void 0) { markAsSent = true; }\r\n var onComplete = function (status, headers, response) {\r\n return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\r\n var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n if (sendPostFunc && payloadData) {\r\n // ***********************************************************************************************\r\n // mark payload as sent at the beginning of calling each send function\r\n if (markAsSent) {\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n return sendPostFunc(payloadData, onComplete, !isAsync);\r\n }\r\n return null;\r\n }\r\n function _getPayload(payload) {\r\n var _a;\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n var headers = _getHeaders();\r\n var payloadData = (_a = {},\r\n _a[_DYN_DATA /* @min:data */] = batch,\r\n _a.urlString = _endpointUrl,\r\n _a.headers = headers,\r\n _a.disableXhrSync = _disableXhr,\r\n _a.disableFetchKeepAlive = !_fetchKeepAlive,\r\n _a[_DYN_ORI_PAYLOAD /* @min:oriPayload */] = payload,\r\n _a);\r\n return payloadData;\r\n }\r\n return null;\r\n }\r\n function _getHeaders() {\r\n try {\r\n var headers = _headers || {};\r\n if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n }\r\n return headers;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n return;\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n return _doSend(beaconInst, payload, isAsync);\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n var internalPayload = payload;\r\n var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (!_disableBeaconSplit) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = data[lp];\r\n var arr = [thePayload];\r\n var item = _getPayload(arr);\r\n if (!canSend(item, onComplete)) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n else {\r\n _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSend && _fallbackSend(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n _fallbackSend && _fallbackSend(data, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n function _isStringArr(arr) {\r\n try {\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return (isString(arr[0]));\r\n }\r\n }\r\n catch (e) {\r\n //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n }\r\n return null;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n var transport = null;\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n transport = 2 /* TransportType.Fetch */;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n transport = 3 /* TransportType.Beacon */;\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n transport = 1 /* TransportType.Xhr */;\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n return _doSend(inst, payload, isAsync);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n item.cnt++; // when resend, increase cnt\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n // retryCodes = [] means should not retry\r\n if (!isNullOrUndefined(_retryCodes)) {\r\n return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n }\r\n return statusCode === 401 // Unauthorized\r\n // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n // || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n _disableXhr = false;\r\n _fetchKeepAlive = false;\r\n _disableBeaconSplit = false;\r\n _xhrSend = null;\r\n _fallbackSend = null;\r\n _sendPostMgr = null;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n// Removed Stub for Sender.prototype.isCompletelyIdle.\r\n// Removed Stub for Sender.prototype.getOfflineSupport.\r\n// Removed Stub for Sender.prototype.getOfflineListener.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n//# sourceMappingURL=Sender.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 11\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // <summary>True, if onreadyStateChangeCallback function attached to xhr, otherwise false</summary>\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n//# sourceMappingURL=ajaxRecord.js.map","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSplit, strSubstr } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n var _a, _b;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n var xhrData = {\r\n xh: [],\r\n i: (_a = {},\r\n _a[ajaxDataId] = {},\r\n _a)\r\n };\r\n xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_b = {},\r\n _b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _b));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n }\r\n return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n headers.push({\r\n n: name,\r\n v: value\r\n });\r\n }\r\n }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n var isPresent = false;\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n arrForEach(headers, function (header) {\r\n if (header.n === name) {\r\n isPresent = true;\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n var result = \"\";\r\n try {\r\n var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (callDetails) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _ajaxDataId;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input || input === \"\") { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n _self._ajaxDataId = _ajaxDataId;\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n _markPrefix = _ajaxDataId;\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n ajaxData = _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr, ajaxData);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, header, value) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _addSharedXhrHeaders(xhr, header, value);\r\n if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n if (ajaxData) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// <summary>Verifies that particular instance of XMLHttpRequest needs to be monitored</summary>\r\n /// <param name=\"excludeAjaxDataValidation\">Optional parameter. True if ajaxData must be excluded from verification</param>\r\n /// <returns type=\"bool\">True if instance needs to be monitored, otherwise false</returns>\r\n function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n return ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n var ajaxDataCntr = (xhrRequestData.i || {});\r\n if (ajaxDataCntr[_ajaxDataId]) {\r\n ajaxDataCntr[_ajaxDataId] = null;\r\n }\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n var requestUrl;\r\n if (input instanceof Request) {\r\n requestUrl = (input || {}).url || \"\";\r\n }\r\n else {\r\n requestUrl = input;\r\n }\r\n if (requestUrl === \"\") {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.href) {\r\n requestUrl = strSplit(location_1.href, \"#\")[0];\r\n }\r\n }\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n//# sourceMappingURL=ajax.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n//# sourceMappingURL=Application.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n//# sourceMappingURL=Device.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.3.4';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n//# sourceMappingURL=Internal.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n//# sourceMappingURL=Location.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n//# sourceMappingURL=Session.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n//# sourceMappingURL=TelemetryTrace.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: <authenticatedId>|<accountId>\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n//# sourceMappingURL=User.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n//# sourceMappingURL=TelemetryContext.js.map","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n var _disableUserInitMessage;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n if (!_disableUserInitMessage) {\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n _disableUserInitMessage = true;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _disableUserInitMessage = config.disableUserInitMessage === false ? false : true;\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n//# sourceMappingURL=PropertiesPlugin.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var CONFIG_ENDPOINT_URL = \"https://js.monitor.azure.com/scripts/b/ai.config.1.cfg.json\";\r\n//# sourceMappingURL=InternalConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATIONKEY0 = \"instrumentationkey\"; // Count: 2\r\nexport var _DYN_USER_OVERRIDE_ENDPOI1 = \"userOverrideEndpointUrl\"; // Count: 6\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF2 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN3 = \"updateSnippetDefinitions\"; // Count: 2\r\n//# sourceMappingURL=__DynamicConstants.js.map","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c, _d;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfMerge, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise, createSyncPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, isPromiseLike, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { CONFIG_ENDPOINT_URL, STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF2, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INGESTIONENDPOINT, _DYN_INSTRUMENTATIONKEY0, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN3, _DYN_USER_OVERRIDE_ENDPOI1, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_limit = {\r\n samplingRate: 100,\r\n maxSendNumber: 1\r\n};\r\nvar default_interval = {\r\n monthInterval: 3,\r\n daysOfMonth: [28]\r\n};\r\nvar default_throttle_config = {\r\n disabled: true,\r\n limit: cfgDfMerge(default_limit),\r\n interval: cfgDfMerge(default_interval)\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:userOverrideEndpointUrl */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a.featureOptIn = (_b = {},\r\n _b[IKEY_USAGE] = { mode: 3 /* FeatureOptInMode.enable */ },\r\n _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b),\r\n _a.throttleMgrCfg = cfgDfMerge((_c = {},\r\n _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = cfgDfMerge(default_throttle_config),\r\n _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = cfgDfMerge(default_throttle_config),\r\n _c[110 /* _eInternalMessageId.CdnDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c)),\r\n _a.extensionConfig = cfgDfMerge((_d = {},\r\n _d[\"AppInsightsCfgSyncPlugin\"] = cfgDfMerge({\r\n cfgUrl: CONFIG_ENDPOINT_URL,\r\n syncMode: 2 /* ICfgSyncMode.Receive */\r\n }),\r\n _d)),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n var _cfgSyncPlugin;\r\n var _throttleMgr;\r\n var _iKeySentMessage;\r\n var _cdnSentMessage;\r\n var _sdkVerSentMessage;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var configCs = _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */];\r\n function _parseCs() {\r\n return createSyncPromise(function (resolve, reject) {\r\n doAwaitResponse(configCs, function (res) {\r\n var curCs = res && res.value;\r\n var parsedCs = null;\r\n if (!res.rejected && curCs) {\r\n // replace cs with resolved values in case of circular promises\r\n _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] = curCs;\r\n parsedCs = parseConnectionString(curCs);\r\n }\r\n // if can't resolve cs promise, null will be returned\r\n resolve(parsedCs);\r\n });\r\n });\r\n }\r\n if (isPromiseLike(configCs)) {\r\n var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n ikey = cs && cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || ikey;\r\n resolve(ikey);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n var url = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */];\r\n if (isNullOrUndefined(url)) {\r\n url = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var url = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n var ingest = cs && cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n url = ingest ? ingest + DEFAULT_BREEZE_PATH : url;\r\n resolve(url);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n }\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = ikeyPromise;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = url;\r\n }\r\n if (isString(configCs) && configCs) {\r\n // confirm if promiselike function present\r\n // handle cs promise here\r\n // add cases to oneNote\r\n var cs = parseConnectionString(configCs);\r\n var ingest = cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : ingest + DEFAULT_BREEZE_PATH; // add /v2/track\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n // userOverrideEndpointUrl have the highest priority\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }));\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n if (!_throttleMgr) {\r\n _throttleMgr = new ThrottleMgr(_core);\r\n }\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var defaultEnable = false;\r\n if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n }\r\n if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n // set ready state to true will automatically trigger flush()\r\n _throttleMgr.onReadyState(true);\r\n }\r\n var result;\r\n if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n _iKeySentMessage = true;\r\n }\r\n if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n _cdnSentMessage = true;\r\n }\r\n if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n _sdkVerSentMessage = true;\r\n }\r\n }));\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN3 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function (details) {\r\n var coreConfig = details.cfg;\r\n var analyticsPlugin = appInsightsInstance.appInsights;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n if (!extConfig.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n _throttleMgr = null;\r\n _iKeySentMessage = false;\r\n _cdnSentMessage = false;\r\n _sdkVerSentMessage = false;\r\n _cfgSyncPlugin = new CfgSyncPlugin();\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n//# sourceMappingURL=AISku.js.map","/*! @license DOMPurify 2.5.8 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.5.8/LICENSE */\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\nvar _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\nif (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n}\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!construct) {\n construct = function construct(Func, args) {\n return _construct(Func, _toConsumableArray(args));\n };\n}\nvar arrayForEach = unapply(Array.prototype.forEach);\nvar arrayPop = unapply(Array.prototype.pop);\nvar arrayPush = unapply(Array.prototype.push);\nvar stringToLowerCase = unapply(String.prototype.toLowerCase);\nvar stringToString = unapply(String.prototype.toString);\nvar stringMatch = unapply(String.prototype.match);\nvar stringReplace = unapply(String.prototype.replace);\nvar stringIndexOf = unapply(String.prototype.indexOf);\nvar stringTrim = unapply(String.prototype.trim);\nvar regExpTest = unapply(RegExp.prototype.test);\nvar typeErrorCreate = unconstruct(TypeError);\nfunction unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n}\nfunction unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n}\n\n/* Add properties to a lookup table */\nfunction addToSet(set, array, transformCaseFunc) {\n var _transformCaseFunc;\n transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n\n/* Shallow clone an object */\nfunction clone(object) {\n var newObject = create(null);\n var property;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property]) === true) {\n newObject[property] = object[property];\n }\n }\n return newObject;\n}\n\n/* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n return fallbackValue;\n}\n\nvar html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n// SVG\nvar svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nvar svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nvar svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nvar mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nvar mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nvar text = freeze(['#text']);\n\nvar html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\nvar svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nvar mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nvar xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nvar MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nvar ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nvar TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nvar DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nvar ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nvar IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nvar IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nvar ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nvar DOCTYPE_NAME = seal(/^html$/i);\nvar CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nvar _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if (_typeof(trustedTypes) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html) {\n return html;\n },\n createScriptURL: function createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nfunction createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.5.8';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n var originalDocument = window.document;\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === void 0 ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n HTMLFormElement = window.HTMLFormElement,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n var ElementPrototype = Element.prototype;\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined && documentMode !== 9;\n var MUSTACHE_EXPR$1 = MUSTACHE_EXPR,\n ERB_EXPR$1 = ERB_EXPR,\n TMPLIT_EXPR$1 = TMPLIT_EXPR,\n DATA_ATTR$1 = DATA_ATTR,\n ARIA_ATTR$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$1 = ATTR_WHITESPACE,\n CUSTOM_ELEMENT$1 = CUSTOM_ELEMENT;\n var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));\n\n /*\n * Configure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n var ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n var SAFE_FOR_XML = true;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n var SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n var SANITIZE_NAMED_PROPS = false;\n var SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n var ALLOWED_NAMESPACES = null;\n var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n var isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || _typeof(cfg) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = 'ALLOWED_NAMESPACES' in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES),\n // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS),\n // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS,\n // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n var HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg$1);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n var ALL_MATHML_TAGS = addToSet({}, mathMl$1);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc;\n var leadingWhitespace;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n var body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n return elm instanceof HTMLFormElement && (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function' || typeof elm.hasChildNodes !== 'function');\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return _typeof(Node) === 'object' ? object instanceof Node : object && _typeof(object) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (regExpTest(/[\\u0080-\\uFFFF]/, currentNode.nodeName)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any ocurrence of processing instructions */\n if (currentNode.nodeType === 7) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === 8 && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) return false;\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) return false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n for (var i = childCount - 1; i >= 0; --i) {\n var childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$1, ' ');\n content = stringReplace(content, ERB_EXPR$1, ' ');\n content = stringReplace(content, TMPLIT_EXPR$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n var _basicCustomElementTest = function _basicCustomElementTest(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT$1);\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr;\n var value;\n var lcName;\n var l;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$1, ' ');\n value = stringReplace(value, ERB_EXPR$1, ' ');\n value = stringReplace(value, TMPLIT_EXPR$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && _typeof(trustedTypes) === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n var cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var body;\n var importedNode;\n var currentNode;\n var oldNode;\n var returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n var tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n oldNode = currentNode;\n }\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, ' ');\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.js.map\n","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.39.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\).*$/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n if (length === 0) return !IS_INCLUDES && -1;\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el !== el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value !== value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[TARGET].prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","'use strict';\nvar classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') !== null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') !== null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","'use strict';\nvar internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","'use strict';\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.test('\\n') && re.flags === 's');\n});\n","'use strict';\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegExp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) !== 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () {\n execCalled = true;\n return null;\n };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: call(nativeRegExpMethod, regexp, str, arg2) };\n }\n return { done: true, value: call(nativeMethod, str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw new $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n var replacement;\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","'use strict';\nvar isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw new $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return stringSlice(that, index, index + search.length) === search;\n }\n});\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] === undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND];\n\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n }\n\n return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = null;\n return createIterResultObject(undefined, true);\n }\n switch (state.kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","'use strict';\n// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n setToStringTag(CollectionPrototype, COLLECTION_NAME, true);\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\nvar slice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar push = uncurryThis([].push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nvar BUGGY = 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length;\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit = '0'.split(undefined, 0).length ? function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n } : nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (!BUGGY) {\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n }\n\n var C = speciesConstructor(rx, RegExp);\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return regExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = regExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, BUGGY || !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","/*\n\tBased on rgbcolor.js by Stoyan Stefanov <sstoo@gmail.com>\n\thttp://www.phpied.com/rgb-color-parser-in-javascript/\n*/\n\nmodule.exports = function(color_string) {\n this.ok = false;\n this.alpha = 1.0;\n\n // strip any leading #\n if (color_string.charAt(0) == '#') { // remove # if any\n color_string = color_string.substr(1,6);\n }\n\n color_string = color_string.replace(/ /g,'');\n color_string = color_string.toLowerCase();\n\n // before getting into regexps, try simple matches\n // and overwrite the input\n var simple_colors = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dodgerblue: '1e90ff',\n feldspar: 'd19275',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred : 'cd5c5c',\n indigo : '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgrey: 'd3d3d3',\n lightgreen: '90ee90',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslateblue: '8470ff',\n lightslategray: '778899',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '00ff00',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'ff00ff',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370d8',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'd87093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '663399',\n red: 'ff0000',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n violetred: 'd02090',\n wheat: 'f5deb3',\n white: 'ffffff',\n whitesmoke: 'f5f5f5',\n yellow: 'ffff00',\n yellowgreen: '9acd32'\n };\n color_string = simple_colors[color_string] || color_string;\n // emd of simple type-in colors\n\n // array of color definition objects\n var color_defs = [\n {\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((?:\\d?\\.)?\\d)\\)$/,\n example: ['rgba(123, 234, 45, 0.8)', 'rgba(255,234,245,1.0)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3]),\n parseFloat(bits[4])\n ];\n }\n },\n {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n example: ['rgb(123, 234, 45)', 'rgb(255,234,245)'],\n process: function (bits){\n return [\n parseInt(bits[1]),\n parseInt(bits[2]),\n parseInt(bits[3])\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n example: ['#00ff00', '336699'],\n process: function (bits){\n return [\n parseInt(bits[1], 16),\n parseInt(bits[2], 16),\n parseInt(bits[3], 16)\n ];\n }\n },\n {\n re: /^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n example: ['#fb0', 'f0f'],\n process: function (bits){\n return [\n parseInt(bits[1] + bits[1], 16),\n parseInt(bits[2] + bits[2], 16),\n parseInt(bits[3] + bits[3], 16)\n ];\n }\n }\n ];\n\n // search through the definitions to find a match\n for (var i = 0; i < color_defs.length; i++) {\n var re = color_defs[i].re;\n var processor = color_defs[i].process;\n var bits = re.exec(color_string);\n if (bits) {\n var channels = processor(bits);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n if (channels.length > 3) {\n this.alpha = channels[3];\n }\n this.ok = true;\n }\n\n }\n\n // validate/cleanup values\n this.r = (this.r < 0 || isNaN(this.r)) ? 0 : ((this.r > 255) ? 255 : this.r);\n this.g = (this.g < 0 || isNaN(this.g)) ? 0 : ((this.g > 255) ? 255 : this.g);\n this.b = (this.b < 0 || isNaN(this.b)) ? 0 : ((this.b > 255) ? 255 : this.b);\n this.alpha = (this.alpha < 0) ? 0 : ((this.alpha > 1.0 || isNaN(this.alpha)) ? 1.0 : this.alpha);\n\n // some getters\n this.toRGB = function () {\n return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';\n }\n this.toRGBA = function () {\n return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.alpha + ')';\n }\n this.toHex = function () {\n var r = this.r.toString(16);\n var g = this.g.toString(16);\n var b = this.b.toString(16);\n if (r.length == 1) r = '0' + r;\n if (g.length == 1) g = '0' + g;\n if (b.length == 1) b = '0' + b;\n return '#' + r + g + b;\n }\n\n // help\n this.getHelpXML = function () {\n\n var examples = new Array();\n // add regexps\n for (var i = 0; i < color_defs.length; i++) {\n var example = color_defs[i].example;\n for (var j = 0; j < example.length; j++) {\n examples[examples.length] = example[j];\n }\n }\n // add type-in colors\n for (var sc in simple_colors) {\n examples[examples.length] = sc;\n }\n\n var xml = document.createElement('ul');\n xml.setAttribute('id', 'rgbcolor-examples');\n for (var i = 0; i < examples.length; i++) {\n try {\n var list_item = document.createElement('li');\n var list_color = new RGBColor(examples[i]);\n var example_div = document.createElement('div');\n example_div.style.cssText =\n 'margin: 3px; '\n + 'border: 1px solid black; '\n + 'background:' + list_color.toHex() + '; '\n + 'color:' + list_color.toHex()\n ;\n example_div.appendChild(document.createTextNode('test'));\n var list_item_value = document.createTextNode(\n ' ' + examples[i] + ' -> ' + list_color.toRGB() + ' -> ' + list_color.toHex()\n );\n list_item.appendChild(example_div);\n list_item.appendChild(list_item_value);\n xml.appendChild(list_item);\n\n } catch(e){}\n }\n return xml;\n\n }\n\n}\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar FORCED = NEGATIVE_ZERO || !arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: FORCED }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\n\nvar nativeReverse = uncurryThis([].reverse);\nvar test = [1, 2];\n\n// `Array.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-array.prototype.reverse\n// fix for Safari 12.0 bug\n// https://bugs.webkit.org/show_bug.cgi?id=188794\n$({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, {\n reverse: function reverse() {\n // eslint-disable-next-line no-self-assign -- dirty hack\n if (isArray(this)) this.length = this.length;\n return nativeReverse(this);\n }\n});\n","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};function r(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function i(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}function e(t){var r=\"\";Array.isArray(t)||(t=[t]);for(var e=0;e<t.length;e++){var i=t[e];if(i.type===_.CLOSE_PATH)r+=\"z\";else if(i.type===_.HORIZ_LINE_TO)r+=(i.relative?\"h\":\"H\")+i.x;else if(i.type===_.VERT_LINE_TO)r+=(i.relative?\"v\":\"V\")+i.y;else if(i.type===_.MOVE_TO)r+=(i.relative?\"m\":\"M\")+i.x+\" \"+i.y;else if(i.type===_.LINE_TO)r+=(i.relative?\"l\":\"L\")+i.x+\" \"+i.y;else if(i.type===_.CURVE_TO)r+=(i.relative?\"c\":\"C\")+i.x1+\" \"+i.y1+\" \"+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_CURVE_TO)r+=(i.relative?\"s\":\"S\")+i.x2+\" \"+i.y2+\" \"+i.x+\" \"+i.y;else if(i.type===_.QUAD_TO)r+=(i.relative?\"q\":\"Q\")+i.x1+\" \"+i.y1+\" \"+i.x+\" \"+i.y;else if(i.type===_.SMOOTH_QUAD_TO)r+=(i.relative?\"t\":\"T\")+i.x+\" \"+i.y;else{if(i.type!==_.ARC)throw new Error('Unexpected command type \"'+i.type+'\" at index '+e+\".\");r+=(i.relative?\"a\":\"A\")+i.rX+\" \"+i.rY+\" \"+i.xRot+\" \"+ +i.lArcFlag+\" \"+ +i.sweepFlag+\" \"+i.x+\" \"+i.y}}return r}function i(t,r){var e=t[0],i=t[1];return[e*Math.cos(r)-i*Math.sin(r),e*Math.sin(r)+i*Math.cos(r)]}function a(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];for(var e=0;e<t.length;e++)if(\"number\"!=typeof t[e])throw new Error(\"assertNumbers arguments[\"+e+\"] is not a number. \"+typeof t[e]+\" == typeof \"+t[e]);return!0}var n=Math.PI;function o(t,r,e){t.lArcFlag=0===t.lArcFlag?0:1,t.sweepFlag=0===t.sweepFlag?0:1;var a=t.rX,o=t.rY,s=t.x,u=t.y;a=Math.abs(t.rX),o=Math.abs(t.rY);var h=i([(r-s)/2,(e-u)/2],-t.xRot/180*n),c=h[0],y=h[1],p=Math.pow(c,2)/Math.pow(a,2)+Math.pow(y,2)/Math.pow(o,2);1<p&&(a*=Math.sqrt(p),o*=Math.sqrt(p)),t.rX=a,t.rY=o;var m=Math.pow(a,2)*Math.pow(y,2)+Math.pow(o,2)*Math.pow(c,2),O=(t.lArcFlag!==t.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(a,2)*Math.pow(o,2)-m)/m)),l=a*y/o*O,T=-o*c/a*O,v=i([l,T],t.xRot/180*n);t.cX=v[0]+(r+s)/2,t.cY=v[1]+(e+u)/2,t.phi1=Math.atan2((y-T)/o,(c-l)/a),t.phi2=Math.atan2((-y-T)/o,(-c-l)/a),0===t.sweepFlag&&t.phi2>t.phi1&&(t.phi2-=2*n),1===t.sweepFlag&&t.phi2<t.phi1&&(t.phi2+=2*n),t.phi1*=180/n,t.phi2*=180/n}function s(t,r,e){a(t,r,e);var i=t*t+r*r-e*e;if(0>i)return[];if(0===i)return[[t*e/(t*t+r*r),r*e/(t*t+r*r)]];var n=Math.sqrt(i);return[[(t*e+r*n)/(t*t+r*r),(r*e-t*n)/(t*t+r*r)],[(t*e-r*n)/(t*t+r*r),(r*e+t*n)/(t*t+r*r)]]}var u,h=Math.PI/180;function c(t,r,e){return(1-e)*t+e*r}function y(t,r,e,i){return t+Math.cos(i/180*n)*r+Math.sin(i/180*n)*e}function p(t,r,e,i){var a=1e-6,n=r-t,o=e-r,s=3*n+3*(i-e)-6*o,u=6*(o-n),h=3*n;return Math.abs(s)<a?[-h/u]:function(t,r,e){void 0===e&&(e=1e-6);var i=t*t/4-r;if(i<-e)return[];if(i<=e)return[-t/2];var a=Math.sqrt(i);return[-t/2-a,-t/2+a]}(u/s,h/s,a)}function m(t,r,e,i,a){var n=1-a;return t*(n*n*n)+r*(3*n*n*a)+e*(3*n*a*a)+i*(a*a*a)}!function(t){function r(){return u((function(t,r,e){return t.relative&&(void 0!==t.x1&&(t.x1+=r),void 0!==t.y1&&(t.y1+=e),void 0!==t.x2&&(t.x2+=r),void 0!==t.y2&&(t.y2+=e),void 0!==t.x&&(t.x+=r),void 0!==t.y&&(t.y+=e),t.relative=!1),t}))}function e(){var t=NaN,r=NaN,e=NaN,i=NaN;return u((function(a,n,o){return a.type&_.SMOOTH_CURVE_TO&&(a.type=_.CURVE_TO,t=isNaN(t)?n:t,r=isNaN(r)?o:r,a.x1=a.relative?n-t:2*n-t,a.y1=a.relative?o-r:2*o-r),a.type&_.CURVE_TO?(t=a.relative?n+a.x2:a.x2,r=a.relative?o+a.y2:a.y2):(t=NaN,r=NaN),a.type&_.SMOOTH_QUAD_TO&&(a.type=_.QUAD_TO,e=isNaN(e)?n:e,i=isNaN(i)?o:i,a.x1=a.relative?n-e:2*n-e,a.y1=a.relative?o-i:2*o-i),a.type&_.QUAD_TO?(e=a.relative?n+a.x1:a.x1,i=a.relative?o+a.y1:a.y1):(e=NaN,i=NaN),a}))}function n(){var t=NaN,r=NaN;return u((function(e,i,a){if(e.type&_.SMOOTH_QUAD_TO&&(e.type=_.QUAD_TO,t=isNaN(t)?i:t,r=isNaN(r)?a:r,e.x1=e.relative?i-t:2*i-t,e.y1=e.relative?a-r:2*a-r),e.type&_.QUAD_TO){t=e.relative?i+e.x1:e.x1,r=e.relative?a+e.y1:e.y1;var n=e.x1,o=e.y1;e.type=_.CURVE_TO,e.x1=((e.relative?0:i)+2*n)/3,e.y1=((e.relative?0:a)+2*o)/3,e.x2=(e.x+2*n)/3,e.y2=(e.y+2*o)/3}else t=NaN,r=NaN;return e}))}function u(t){var r=0,e=0,i=NaN,a=NaN;return function(n){if(isNaN(i)&&!(n.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");var o=t(n,r,e,i,a);return n.type&_.CLOSE_PATH&&(r=i,e=a),void 0!==n.x&&(r=n.relative?r+n.x:n.x),void 0!==n.y&&(e=n.relative?e+n.y:n.y),n.type&_.MOVE_TO&&(i=r,a=e),o}}function O(t,r,e,i,n,o){return a(t,r,e,i,n,o),u((function(a,s,u,h){var c=a.x1,y=a.x2,p=a.relative&&!isNaN(h),m=void 0!==a.x?a.x:p?0:s,O=void 0!==a.y?a.y:p?0:u;function l(t){return t*t}a.type&_.HORIZ_LINE_TO&&0!==r&&(a.type=_.LINE_TO,a.y=a.relative?0:u),a.type&_.VERT_LINE_TO&&0!==e&&(a.type=_.LINE_TO,a.x=a.relative?0:s),void 0!==a.x&&(a.x=a.x*t+O*e+(p?0:n)),void 0!==a.y&&(a.y=m*r+a.y*i+(p?0:o)),void 0!==a.x1&&(a.x1=a.x1*t+a.y1*e+(p?0:n)),void 0!==a.y1&&(a.y1=c*r+a.y1*i+(p?0:o)),void 0!==a.x2&&(a.x2=a.x2*t+a.y2*e+(p?0:n)),void 0!==a.y2&&(a.y2=y*r+a.y2*i+(p?0:o));var T=t*i-r*e;if(void 0!==a.xRot&&(1!==t||0!==r||0!==e||1!==i))if(0===T)delete a.rX,delete a.rY,delete a.xRot,delete a.lArcFlag,delete a.sweepFlag,a.type=_.LINE_TO;else{var v=a.xRot*Math.PI/180,f=Math.sin(v),N=Math.cos(v),x=1/l(a.rX),d=1/l(a.rY),E=l(N)*x+l(f)*d,A=2*f*N*(x-d),C=l(f)*x+l(N)*d,M=E*i*i-A*r*i+C*r*r,R=A*(t*i+r*e)-2*(E*e*i+C*t*r),g=E*e*e-A*t*e+C*t*t,I=(Math.atan2(R,M-g)+Math.PI)%Math.PI/2,S=Math.sin(I),L=Math.cos(I);a.rX=Math.abs(T)/Math.sqrt(M*l(L)+R*S*L+g*l(S)),a.rY=Math.abs(T)/Math.sqrt(M*l(S)-R*S*L+g*l(L)),a.xRot=180*I/Math.PI}return void 0!==a.sweepFlag&&0>T&&(a.sweepFlag=+!a.sweepFlag),a}))}function l(){return function(t){var r={};for(var e in t)r[e]=t[e];return r}}t.ROUND=function(t){function r(r){return Math.round(r*t)/t}return void 0===t&&(t=1e13),a(t),function(t){return void 0!==t.x1&&(t.x1=r(t.x1)),void 0!==t.y1&&(t.y1=r(t.y1)),void 0!==t.x2&&(t.x2=r(t.x2)),void 0!==t.y2&&(t.y2=r(t.y2)),void 0!==t.x&&(t.x=r(t.x)),void 0!==t.y&&(t.y=r(t.y)),void 0!==t.rX&&(t.rX=r(t.rX)),void 0!==t.rY&&(t.rY=r(t.rY)),t}},t.TO_ABS=r,t.TO_REL=function(){return u((function(t,r,e){return t.relative||(void 0!==t.x1&&(t.x1-=r),void 0!==t.y1&&(t.y1-=e),void 0!==t.x2&&(t.x2-=r),void 0!==t.y2&&(t.y2-=e),void 0!==t.x&&(t.x-=r),void 0!==t.y&&(t.y-=e),t.relative=!0),t}))},t.NORMALIZE_HVZ=function(t,r,e){return void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===e&&(e=!0),u((function(i,a,n,o,s){if(isNaN(o)&&!(i.type&_.MOVE_TO))throw new Error(\"path must start with moveto\");return r&&i.type&_.HORIZ_LINE_TO&&(i.type=_.LINE_TO,i.y=i.relative?0:n),e&&i.type&_.VERT_LINE_TO&&(i.type=_.LINE_TO,i.x=i.relative?0:a),t&&i.type&_.CLOSE_PATH&&(i.type=_.LINE_TO,i.x=i.relative?o-a:o,i.y=i.relative?s-n:s),i.type&_.ARC&&(0===i.rX||0===i.rY)&&(i.type=_.LINE_TO,delete i.rX,delete i.rY,delete i.xRot,delete i.lArcFlag,delete i.sweepFlag),i}))},t.NORMALIZE_ST=e,t.QT_TO_C=n,t.INFO=u,t.SANITIZE=function(t){void 0===t&&(t=0),a(t);var r=NaN,e=NaN,i=NaN,n=NaN;return u((function(a,o,s,u,h){var c=Math.abs,y=!1,p=0,m=0;if(a.type&_.SMOOTH_CURVE_TO&&(p=isNaN(r)?0:o-r,m=isNaN(e)?0:s-e),a.type&(_.CURVE_TO|_.SMOOTH_CURVE_TO)?(r=a.relative?o+a.x2:a.x2,e=a.relative?s+a.y2:a.y2):(r=NaN,e=NaN),a.type&_.SMOOTH_QUAD_TO?(i=isNaN(i)?o:2*o-i,n=isNaN(n)?s:2*s-n):a.type&_.QUAD_TO?(i=a.relative?o+a.x1:a.x1,n=a.relative?s+a.y1:a.y2):(i=NaN,n=NaN),a.type&_.LINE_COMMANDS||a.type&_.ARC&&(0===a.rX||0===a.rY||!a.lArcFlag)||a.type&_.CURVE_TO||a.type&_.SMOOTH_CURVE_TO||a.type&_.QUAD_TO||a.type&_.SMOOTH_QUAD_TO){var O=void 0===a.x?0:a.relative?a.x:a.x-o,l=void 0===a.y?0:a.relative?a.y:a.y-s;p=isNaN(i)?void 0===a.x1?p:a.relative?a.x:a.x1-o:i-o,m=isNaN(n)?void 0===a.y1?m:a.relative?a.y:a.y1-s:n-s;var T=void 0===a.x2?0:a.relative?a.x:a.x2-o,v=void 0===a.y2?0:a.relative?a.y:a.y2-s;c(O)<=t&&c(l)<=t&&c(p)<=t&&c(m)<=t&&c(T)<=t&&c(v)<=t&&(y=!0)}return a.type&_.CLOSE_PATH&&c(o-u)<=t&&c(s-h)<=t&&(y=!0),y?[]:a}))},t.MATRIX=O,t.ROTATE=function(t,r,e){void 0===r&&(r=0),void 0===e&&(e=0),a(t,r,e);var i=Math.sin(t),n=Math.cos(t);return O(n,i,-i,n,r-r*n+e*i,e-r*i-e*n)},t.TRANSLATE=function(t,r){return void 0===r&&(r=0),a(t,r),O(1,0,0,1,t,r)},t.SCALE=function(t,r){return void 0===r&&(r=t),a(t,r),O(t,0,0,r,0,0)},t.SKEW_X=function(t){return a(t),O(1,0,Math.atan(t),1,0,0)},t.SKEW_Y=function(t){return a(t),O(1,Math.atan(t),0,1,0,0)},t.X_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(-1,0,0,1,t,0)},t.Y_AXIS_SYMMETRY=function(t){return void 0===t&&(t=0),a(t),O(1,0,0,-1,0,t)},t.A_TO_C=function(){return u((function(t,r,e){return _.ARC===t.type?function(t,r,e){var a,n,s,u;t.cX||o(t,r,e);for(var y=Math.min(t.phi1,t.phi2),p=Math.max(t.phi1,t.phi2)-y,m=Math.ceil(p/90),O=new Array(m),l=r,T=e,v=0;v<m;v++){var f=c(t.phi1,t.phi2,v/m),N=c(t.phi1,t.phi2,(v+1)/m),x=N-f,d=4/3*Math.tan(x*h/4),E=[Math.cos(f*h)-d*Math.sin(f*h),Math.sin(f*h)+d*Math.cos(f*h)],A=E[0],C=E[1],M=[Math.cos(N*h),Math.sin(N*h)],R=M[0],g=M[1],I=[R+d*Math.sin(N*h),g-d*Math.cos(N*h)],S=I[0],L=I[1];O[v]={relative:t.relative,type:_.CURVE_TO};var H=function(r,e){var a=i([r*t.rX,e*t.rY],t.xRot),n=a[0],o=a[1];return[t.cX+n,t.cY+o]};a=H(A,C),O[v].x1=a[0],O[v].y1=a[1],n=H(S,L),O[v].x2=n[0],O[v].y2=n[1],s=H(R,g),O[v].x=s[0],O[v].y=s[1],t.relative&&(O[v].x1-=l,O[v].y1-=T,O[v].x2-=l,O[v].y2-=T,O[v].x-=l,O[v].y-=T),l=(u=[O[v].x,O[v].y])[0],T=u[1]}return O}(t,t.relative?0:r,t.relative?0:e):t}))},t.ANNOTATE_ARCS=function(){return u((function(t,r,e){return t.relative&&(r=0,e=0),_.ARC===t.type&&o(t,r,e),t}))},t.CLONE=l,t.CALCULATE_BOUNDS=function(){var t=function(t){var r={};for(var e in t)r[e]=t[e];return r},i=r(),a=n(),h=e(),c=u((function(r,e,n){var u=h(a(i(t(r))));function O(t){t>c.maxX&&(c.maxX=t),t<c.minX&&(c.minX=t)}function l(t){t>c.maxY&&(c.maxY=t),t<c.minY&&(c.minY=t)}if(u.type&_.DRAWING_COMMANDS&&(O(e),l(n)),u.type&_.HORIZ_LINE_TO&&O(u.x),u.type&_.VERT_LINE_TO&&l(u.y),u.type&_.LINE_TO&&(O(u.x),l(u.y)),u.type&_.CURVE_TO){O(u.x),l(u.y);for(var T=0,v=p(e,u.x1,u.x2,u.x);T<v.length;T++){0<(w=v[T])&&1>w&&O(m(e,u.x1,u.x2,u.x,w))}for(var f=0,N=p(n,u.y1,u.y2,u.y);f<N.length;f++){0<(w=N[f])&&1>w&&l(m(n,u.y1,u.y2,u.y,w))}}if(u.type&_.ARC){O(u.x),l(u.y),o(u,e,n);for(var x=u.xRot/180*Math.PI,d=Math.cos(x)*u.rX,E=Math.sin(x)*u.rX,A=-Math.sin(x)*u.rY,C=Math.cos(x)*u.rY,M=u.phi1<u.phi2?[u.phi1,u.phi2]:-180>u.phi2?[u.phi2+360,u.phi1+360]:[u.phi2,u.phi1],R=M[0],g=M[1],I=function(t){var r=t[0],e=t[1],i=180*Math.atan2(e,r)/Math.PI;return i<R?i+360:i},S=0,L=s(A,-d,0).map(I);S<L.length;S++){(w=L[S])>R&&w<g&&O(y(u.cX,d,A,w))}for(var H=0,U=s(C,-E,0).map(I);H<U.length;H++){var w;(w=U[H])>R&&w<g&&l(y(u.cY,E,C,w))}}return r}));return c.minX=1/0,c.maxX=-1/0,c.minY=1/0,c.maxY=-1/0,c}}(u||(u={}));var O,l=function(){function t(){}return t.prototype.round=function(t){return this.transform(u.ROUND(t))},t.prototype.toAbs=function(){return this.transform(u.TO_ABS())},t.prototype.toRel=function(){return this.transform(u.TO_REL())},t.prototype.normalizeHVZ=function(t,r,e){return this.transform(u.NORMALIZE_HVZ(t,r,e))},t.prototype.normalizeST=function(){return this.transform(u.NORMALIZE_ST())},t.prototype.qtToC=function(){return this.transform(u.QT_TO_C())},t.prototype.aToC=function(){return this.transform(u.A_TO_C())},t.prototype.sanitize=function(t){return this.transform(u.SANITIZE(t))},t.prototype.translate=function(t,r){return this.transform(u.TRANSLATE(t,r))},t.prototype.scale=function(t,r){return this.transform(u.SCALE(t,r))},t.prototype.rotate=function(t,r,e){return this.transform(u.ROTATE(t,r,e))},t.prototype.matrix=function(t,r,e,i,a,n){return this.transform(u.MATRIX(t,r,e,i,a,n))},t.prototype.skewX=function(t){return this.transform(u.SKEW_X(t))},t.prototype.skewY=function(t){return this.transform(u.SKEW_Y(t))},t.prototype.xSymmetry=function(t){return this.transform(u.X_AXIS_SYMMETRY(t))},t.prototype.ySymmetry=function(t){return this.transform(u.Y_AXIS_SYMMETRY(t))},t.prototype.annotateArcs=function(){return this.transform(u.ANNOTATE_ARCS())},t}(),T=function(t){return\" \"===t||\"\\t\"===t||\"\\r\"===t||\"\\n\"===t},v=function(t){return\"0\".charCodeAt(0)<=t.charCodeAt(0)&&t.charCodeAt(0)<=\"9\".charCodeAt(0)},f=function(t){function e(){var r=t.call(this)||this;return r.curNumber=\"\",r.curCommandType=-1,r.curCommandRelative=!1,r.canParseCommandOrComma=!0,r.curNumberHasExp=!1,r.curNumberHasExpDigits=!1,r.curNumberHasDecimal=!1,r.curArgs=[],r}return r(e,t),e.prototype.finish=function(t){if(void 0===t&&(t=[]),this.parse(\" \",t),0!==this.curArgs.length||!this.canParseCommandOrComma)throw new SyntaxError(\"Unterminated command at the path end.\");return t},e.prototype.parse=function(t,r){var e=this;void 0===r&&(r=[]);for(var i=function(t){r.push(t),e.curArgs.length=0,e.canParseCommandOrComma=!0},a=0;a<t.length;a++){var n=t[a],o=!(this.curCommandType!==_.ARC||3!==this.curArgs.length&&4!==this.curArgs.length||1!==this.curNumber.length||\"0\"!==this.curNumber&&\"1\"!==this.curNumber),s=v(n)&&(\"0\"===this.curNumber&&\"0\"===n||o);if(!v(n)||s)if(\"e\"!==n&&\"E\"!==n)if(\"-\"!==n&&\"+\"!==n||!this.curNumberHasExp||this.curNumberHasExpDigits)if(\".\"!==n||this.curNumberHasExp||this.curNumberHasDecimal||o){if(this.curNumber&&-1!==this.curCommandType){var u=Number(this.curNumber);if(isNaN(u))throw new SyntaxError(\"Invalid number ending at \"+a);if(this.curCommandType===_.ARC)if(0===this.curArgs.length||1===this.curArgs.length){if(0>u)throw new SyntaxError('Expected positive number, got \"'+u+'\" at index \"'+a+'\"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&\"0\"!==this.curNumber&&\"1\"!==this.curNumber)throw new SyntaxError('Expected a flag, got \"'+this.curNumber+'\" at index \"'+a+'\"');this.curArgs.push(u),this.curArgs.length===N[this.curCommandType]&&(_.HORIZ_LINE_TO===this.curCommandType?i({type:_.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):_.VERT_LINE_TO===this.curCommandType?i({type:_.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===_.MOVE_TO||this.curCommandType===_.LINE_TO||this.curCommandType===_.SMOOTH_QUAD_TO?(i({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),_.MOVE_TO===this.curCommandType&&(this.curCommandType=_.LINE_TO)):this.curCommandType===_.CURVE_TO?i({type:_.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===_.SMOOTH_CURVE_TO?i({type:_.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.QUAD_TO?i({type:_.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===_.ARC&&i({type:_.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber=\"\",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T(n))if(\",\"===n&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if(\"+\"!==n&&\"-\"!==n&&\".\"!==n)if(s)this.curNumber=n,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError(\"Unterminated command at index \"+a+\".\");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\". Command cannot follow comma\");if(this.canParseCommandOrComma=!1,\"z\"!==n&&\"Z\"!==n)if(\"h\"===n||\"H\"===n)this.curCommandType=_.HORIZ_LINE_TO,this.curCommandRelative=\"h\"===n;else if(\"v\"===n||\"V\"===n)this.curCommandType=_.VERT_LINE_TO,this.curCommandRelative=\"v\"===n;else if(\"m\"===n||\"M\"===n)this.curCommandType=_.MOVE_TO,this.curCommandRelative=\"m\"===n;else if(\"l\"===n||\"L\"===n)this.curCommandType=_.LINE_TO,this.curCommandRelative=\"l\"===n;else if(\"c\"===n||\"C\"===n)this.curCommandType=_.CURVE_TO,this.curCommandRelative=\"c\"===n;else if(\"s\"===n||\"S\"===n)this.curCommandType=_.SMOOTH_CURVE_TO,this.curCommandRelative=\"s\"===n;else if(\"q\"===n||\"Q\"===n)this.curCommandType=_.QUAD_TO,this.curCommandRelative=\"q\"===n;else if(\"t\"===n||\"T\"===n)this.curCommandType=_.SMOOTH_QUAD_TO,this.curCommandRelative=\"t\"===n;else{if(\"a\"!==n&&\"A\"!==n)throw new SyntaxError('Unexpected character \"'+n+'\" at index '+a+\".\");this.curCommandType=_.ARC,this.curCommandRelative=\"a\"===n}else r.push({type:_.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=n,this.curNumberHasDecimal=\".\"===n}else this.curNumber+=n,this.curNumberHasDecimal=!0;else this.curNumber+=n;else this.curNumber+=n,this.curNumberHasExp=!0;else this.curNumber+=n,this.curNumberHasExpDigits=this.curNumberHasExp}return r},e.prototype.transform=function(t){return Object.create(this,{parse:{value:function(r,e){void 0===e&&(e=[]);for(var i=0,a=Object.getPrototypeOf(this).parse.call(this,r);i<a.length;i++){var n=a[i],o=t(n);Array.isArray(o)?e.push.apply(e,o):e.push(o)}return e}}})},e}(l),_=function(t){function i(r){var e=t.call(this)||this;return e.commands=\"string\"==typeof r?i.parse(r):r,e}return r(i,t),i.prototype.encode=function(){return i.encode(this.commands)},i.prototype.getBounds=function(){var t=u.CALCULATE_BOUNDS();return this.transform(t),t},i.prototype.transform=function(t){for(var r=[],e=0,i=this.commands;e<i.length;e++){var a=t(i[e]);Array.isArray(a)?r.push.apply(r,a):r.push(a)}return this.commands=r,this},i.encode=function(t){return e(t)},i.parse=function(t){var r=new f,e=[];return r.parse(t,e),r.finish(e),e},i.CLOSE_PATH=1,i.MOVE_TO=2,i.HORIZ_LINE_TO=4,i.VERT_LINE_TO=8,i.LINE_TO=16,i.CURVE_TO=32,i.SMOOTH_CURVE_TO=64,i.QUAD_TO=128,i.SMOOTH_QUAD_TO=256,i.ARC=512,i.LINE_COMMANDS=i.LINE_TO|i.HORIZ_LINE_TO|i.VERT_LINE_TO,i.DRAWING_COMMANDS=i.HORIZ_LINE_TO|i.VERT_LINE_TO|i.LINE_TO|i.CURVE_TO|i.SMOOTH_CURVE_TO|i.QUAD_TO|i.SMOOTH_QUAD_TO|i.ARC,i}(l),N=((O={})[_.MOVE_TO]=2,O[_.LINE_TO]=2,O[_.HORIZ_LINE_TO]=1,O[_.VERT_LINE_TO]=1,O[_.CLOSE_PATH]=0,O[_.QUAD_TO]=4,O[_.SMOOTH_QUAD_TO]=2,O[_.CURVE_TO]=6,O[_.SMOOTH_CURVE_TO]=4,O[_.ARC]=7,O);export{N as COMMAND_ARG_COUNTS,_ as SVGPathData,f as SVGPathDataParser,u as SVGPathDataTransformer,e as encodeSVGPath};\n//# sourceMappingURL=SVGPathData.module.js.map\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExpPrototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\n/* eslint-disable no-bitwise -- used for calculations */\n\n/* eslint-disable unicorn/prefer-query-selector -- aiming at\n backward-compatibility */\n\n/**\n* StackBlur - a fast almost Gaussian Blur For Canvas\n*\n* In case you find this class useful - especially in commercial projects -\n* I am not totally unhappy for a small donation to my PayPal account\n* mario@quasimondo.de\n*\n* Or support me on flattr:\n* {@link https://flattr.com/thing/72791/StackBlur-a-fast-almost-Gaussian-Blur-Effect-for-CanvasJavascript}.\n*\n* @module StackBlur\n* @author Mario Klingemann\n* Contact: mario@quasimondo.com\n* Website: {@link http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html}\n* Twitter: @quasimondo\n*\n* @copyright (c) 2010 Mario Klingemann\n*\n* Permission is hereby granted, free of charge, to any person\n* obtaining a copy of this software and associated documentation\n* files (the \"Software\"), to deal in the Software without\n* restriction, including without limitation the rights to use,\n* copy, modify, merge, publish, distribute, sublicense, and/or sell\n* copies of the Software, and to permit persons to whom the\n* Software is furnished to do so, subject to the following\n* conditions:\n*\n* The above copyright notice and this permission notice shall be\n* included in all copies or substantial portions of the Software.\n*\n* THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n* OTHER DEALINGS IN THE SOFTWARE.\n*/\nvar mulTable = [512, 512, 456, 512, 328, 456, 335, 512, 405, 328, 271, 456, 388, 335, 292, 512, 454, 405, 364, 328, 298, 271, 496, 456, 420, 388, 360, 335, 312, 292, 273, 512, 482, 454, 428, 405, 383, 364, 345, 328, 312, 298, 284, 271, 259, 496, 475, 456, 437, 420, 404, 388, 374, 360, 347, 335, 323, 312, 302, 292, 282, 273, 265, 512, 497, 482, 468, 454, 441, 428, 417, 405, 394, 383, 373, 364, 354, 345, 337, 328, 320, 312, 305, 298, 291, 284, 278, 271, 265, 259, 507, 496, 485, 475, 465, 456, 446, 437, 428, 420, 412, 404, 396, 388, 381, 374, 367, 360, 354, 347, 341, 335, 329, 323, 318, 312, 307, 302, 297, 292, 287, 282, 278, 273, 269, 265, 261, 512, 505, 497, 489, 482, 475, 468, 461, 454, 447, 441, 435, 428, 422, 417, 411, 405, 399, 394, 389, 383, 378, 373, 368, 364, 359, 354, 350, 345, 341, 337, 332, 328, 324, 320, 316, 312, 309, 305, 301, 298, 294, 291, 287, 284, 281, 278, 274, 271, 268, 265, 262, 259, 257, 507, 501, 496, 491, 485, 480, 475, 470, 465, 460, 456, 451, 446, 442, 437, 433, 428, 424, 420, 416, 412, 408, 404, 400, 396, 392, 388, 385, 381, 377, 374, 370, 367, 363, 360, 357, 354, 350, 347, 344, 341, 338, 335, 332, 329, 326, 323, 320, 318, 315, 312, 310, 307, 304, 302, 299, 297, 294, 292, 289, 287, 285, 282, 280, 278, 275, 273, 271, 269, 267, 265, 263, 261, 259];\nvar shgTable = [9, 11, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24];\n/**\n * @param {string|HTMLImageElement} img\n * @param {string|HTMLCanvasElement} canvas\n * @param {Float} radius\n * @param {boolean} blurAlphaChannel\n * @param {boolean} useOffset\n * @param {boolean} skipStyles\n * @returns {undefined}\n */\n\nfunction processImage(img, canvas, radius, blurAlphaChannel, useOffset, skipStyles) {\n if (typeof img === 'string') {\n img = document.getElementById(img);\n }\n\n if (!img || Object.prototype.toString.call(img).slice(8, -1) === 'HTMLImageElement' && !('naturalWidth' in img)) {\n return;\n }\n\n var dimensionType = useOffset ? 'offset' : 'natural';\n var w = img[dimensionType + 'Width'];\n var h = img[dimensionType + 'Height']; // add ImageBitmap support,can blur texture source\n\n if (Object.prototype.toString.call(img).slice(8, -1) === 'ImageBitmap') {\n w = img.width;\n h = img.height;\n }\n\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || !('getContext' in canvas)) {\n return;\n }\n\n if (!skipStyles) {\n canvas.style.width = w + 'px';\n canvas.style.height = h + 'px';\n }\n\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext('2d');\n context.clearRect(0, 0, w, h);\n context.drawImage(img, 0, 0, img.naturalWidth, img.naturalHeight, 0, 0, w, h);\n\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n if (blurAlphaChannel) {\n processCanvasRGBA(canvas, 0, 0, w, h, radius);\n } else {\n processCanvasRGB(canvas, 0, 0, w, h, radius);\n }\n}\n/**\n * @param {string|HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @throws {Error|TypeError}\n * @returns {ImageData} See {@link https://html.spec.whatwg.org/multipage/canvas.html#imagedata}\n */\n\n\nfunction getImageDataFromCanvas(canvas, topX, topY, width, height) {\n if (typeof canvas === 'string') {\n canvas = document.getElementById(canvas);\n }\n\n if (!canvas || _typeof(canvas) !== 'object' || !('getContext' in canvas)) {\n throw new TypeError('Expecting canvas with `getContext` method ' + 'in processCanvasRGB(A) calls!');\n }\n\n var context = canvas.getContext('2d');\n\n try {\n return context.getImageData(topX, topY, width, height);\n } catch (e) {\n throw new Error('unable to access image data: ' + e);\n }\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGBA(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGBA(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGBA(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null,\n stackOut = null,\n yw = 0,\n yi = 0;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n\n for (var y = 0; y < height; y++) {\n stack = stackStart;\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n pa = pixels[yi + 3];\n\n for (var _i = 0; _i < radiusPlus1; _i++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack.a = pa;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0,\n aInSum = 0,\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n aOutSum = radiusPlus1 * pa,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb,\n aSum = sumFactor * pa;\n\n for (var _i2 = 1; _i2 < radiusPlus1; _i2++) {\n var p = yi + ((widthMinus1 < _i2 ? widthMinus1 : _i2) << 2);\n var r = pixels[p],\n g = pixels[p + 1],\n b = pixels[p + 2],\n a = pixels[p + 3];\n var rbs = radiusPlus1 - _i2;\n rSum += (stack.r = r) * rbs;\n gSum += (stack.g = g) * rbs;\n bSum += (stack.b = b) * rbs;\n aSum += (stack.a = a) * rbs;\n rInSum += r;\n gInSum += g;\n bInSum += b;\n aInSum += a;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n var paInitial = aSum * mulSum >>> shgSum;\n pixels[yi + 3] = paInitial;\n\n if (paInitial !== 0) {\n var _a2 = 255 / paInitial;\n\n pixels[yi] = (rSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 1] = (gSum * mulSum >>> shgSum) * _a2;\n pixels[yi + 2] = (bSum * mulSum >>> shgSum) * _a2;\n } else {\n pixels[yi] = pixels[yi + 1] = pixels[yi + 2] = 0;\n }\n\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n aSum -= aOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n aOutSum -= stackIn.a;\n\n var _p = x + radius + 1;\n\n _p = yw + (_p < widthMinus1 ? _p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[_p];\n gInSum += stackIn.g = pixels[_p + 1];\n bInSum += stackIn.b = pixels[_p + 2];\n aInSum += stackIn.a = pixels[_p + 3];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n aSum += aInSum;\n stackIn = stackIn.next;\n var _stackOut = stackOut,\n _r = _stackOut.r,\n _g = _stackOut.g,\n _b = _stackOut.b,\n _a = _stackOut.a;\n rOutSum += _r;\n gOutSum += _g;\n bOutSum += _b;\n aOutSum += _a;\n rInSum -= _r;\n gInSum -= _g;\n bInSum -= _b;\n aInSum -= _a;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x = 0; _x < width; _x++) {\n yi = _x << 2;\n\n var _pr = pixels[yi],\n _pg = pixels[yi + 1],\n _pb = pixels[yi + 2],\n _pa = pixels[yi + 3],\n _rOutSum = radiusPlus1 * _pr,\n _gOutSum = radiusPlus1 * _pg,\n _bOutSum = radiusPlus1 * _pb,\n _aOutSum = radiusPlus1 * _pa,\n _rSum = sumFactor * _pr,\n _gSum = sumFactor * _pg,\n _bSum = sumFactor * _pb,\n _aSum = sumFactor * _pa;\n\n stack = stackStart;\n\n for (var _i3 = 0; _i3 < radiusPlus1; _i3++) {\n stack.r = _pr;\n stack.g = _pg;\n stack.b = _pb;\n stack.a = _pa;\n stack = stack.next;\n }\n\n var yp = width;\n var _gInSum = 0,\n _bInSum = 0,\n _aInSum = 0,\n _rInSum = 0;\n\n for (var _i4 = 1; _i4 <= radius; _i4++) {\n yi = yp + _x << 2;\n\n var _rbs = radiusPlus1 - _i4;\n\n _rSum += (stack.r = _pr = pixels[yi]) * _rbs;\n _gSum += (stack.g = _pg = pixels[yi + 1]) * _rbs;\n _bSum += (stack.b = _pb = pixels[yi + 2]) * _rbs;\n _aSum += (stack.a = _pa = pixels[yi + 3]) * _rbs;\n _rInSum += _pr;\n _gInSum += _pg;\n _bInSum += _pb;\n _aInSum += _pa;\n stack = stack.next;\n\n if (_i4 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y = 0; _y < height; _y++) {\n var _p2 = yi << 2;\n\n pixels[_p2 + 3] = _pa = _aSum * mulSum >>> shgSum;\n\n if (_pa > 0) {\n _pa = 255 / _pa;\n pixels[_p2] = (_rSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 1] = (_gSum * mulSum >>> shgSum) * _pa;\n pixels[_p2 + 2] = (_bSum * mulSum >>> shgSum) * _pa;\n } else {\n pixels[_p2] = pixels[_p2 + 1] = pixels[_p2 + 2] = 0;\n }\n\n _rSum -= _rOutSum;\n _gSum -= _gOutSum;\n _bSum -= _bOutSum;\n _aSum -= _aOutSum;\n _rOutSum -= stackIn.r;\n _gOutSum -= stackIn.g;\n _bOutSum -= stackIn.b;\n _aOutSum -= stackIn.a;\n _p2 = _x + ((_p2 = _y + radiusPlus1) < heightMinus1 ? _p2 : heightMinus1) * width << 2;\n _rSum += _rInSum += stackIn.r = pixels[_p2];\n _gSum += _gInSum += stackIn.g = pixels[_p2 + 1];\n _bSum += _bInSum += stackIn.b = pixels[_p2 + 2];\n _aSum += _aInSum += stackIn.a = pixels[_p2 + 3];\n stackIn = stackIn.next;\n _rOutSum += _pr = stackOut.r;\n _gOutSum += _pg = stackOut.g;\n _bOutSum += _pb = stackOut.b;\n _aOutSum += _pa = stackOut.a;\n _rInSum -= _pr;\n _gInSum -= _pg;\n _bInSum -= _pb;\n _aInSum -= _pa;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n * @param {HTMLCanvasElement} canvas\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {undefined}\n */\n\n\nfunction processCanvasRGB(canvas, topX, topY, width, height, radius) {\n if (isNaN(radius) || radius < 1) {\n return;\n }\n\n radius |= 0;\n var imageData = getImageDataFromCanvas(canvas, topX, topY, width, height);\n imageData = processImageDataRGB(imageData, topX, topY, width, height, radius);\n canvas.getContext('2d').putImageData(imageData, topX, topY);\n}\n/**\n * @param {ImageData} imageData\n * @param {Integer} topX\n * @param {Integer} topY\n * @param {Integer} width\n * @param {Integer} height\n * @param {Float} radius\n * @returns {ImageData}\n */\n\n\nfunction processImageDataRGB(imageData, topX, topY, width, height, radius) {\n var pixels = imageData.data;\n var div = 2 * radius + 1; // const w4 = width << 2;\n\n var widthMinus1 = width - 1;\n var heightMinus1 = height - 1;\n var radiusPlus1 = radius + 1;\n var sumFactor = radiusPlus1 * (radiusPlus1 + 1) / 2;\n var stackStart = new BlurStack();\n var stack = stackStart;\n var stackEnd;\n\n for (var i = 1; i < div; i++) {\n stack = stack.next = new BlurStack();\n\n if (i === radiusPlus1) {\n stackEnd = stack;\n }\n }\n\n stack.next = stackStart;\n var stackIn = null;\n var stackOut = null;\n var mulSum = mulTable[radius];\n var shgSum = shgTable[radius];\n var p, rbs;\n var yw = 0,\n yi = 0;\n\n for (var y = 0; y < height; y++) {\n var pr = pixels[yi],\n pg = pixels[yi + 1],\n pb = pixels[yi + 2],\n rOutSum = radiusPlus1 * pr,\n gOutSum = radiusPlus1 * pg,\n bOutSum = radiusPlus1 * pb,\n rSum = sumFactor * pr,\n gSum = sumFactor * pg,\n bSum = sumFactor * pb;\n stack = stackStart;\n\n for (var _i5 = 0; _i5 < radiusPlus1; _i5++) {\n stack.r = pr;\n stack.g = pg;\n stack.b = pb;\n stack = stack.next;\n }\n\n var rInSum = 0,\n gInSum = 0,\n bInSum = 0;\n\n for (var _i6 = 1; _i6 < radiusPlus1; _i6++) {\n p = yi + ((widthMinus1 < _i6 ? widthMinus1 : _i6) << 2);\n rSum += (stack.r = pr = pixels[p]) * (rbs = radiusPlus1 - _i6);\n gSum += (stack.g = pg = pixels[p + 1]) * rbs;\n bSum += (stack.b = pb = pixels[p + 2]) * rbs;\n rInSum += pr;\n gInSum += pg;\n bInSum += pb;\n stack = stack.next;\n }\n\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var x = 0; x < width; x++) {\n pixels[yi] = rSum * mulSum >>> shgSum;\n pixels[yi + 1] = gSum * mulSum >>> shgSum;\n pixels[yi + 2] = bSum * mulSum >>> shgSum;\n rSum -= rOutSum;\n gSum -= gOutSum;\n bSum -= bOutSum;\n rOutSum -= stackIn.r;\n gOutSum -= stackIn.g;\n bOutSum -= stackIn.b;\n p = yw + ((p = x + radius + 1) < widthMinus1 ? p : widthMinus1) << 2;\n rInSum += stackIn.r = pixels[p];\n gInSum += stackIn.g = pixels[p + 1];\n bInSum += stackIn.b = pixels[p + 2];\n rSum += rInSum;\n gSum += gInSum;\n bSum += bInSum;\n stackIn = stackIn.next;\n rOutSum += pr = stackOut.r;\n gOutSum += pg = stackOut.g;\n bOutSum += pb = stackOut.b;\n rInSum -= pr;\n gInSum -= pg;\n bInSum -= pb;\n stackOut = stackOut.next;\n yi += 4;\n }\n\n yw += width;\n }\n\n for (var _x2 = 0; _x2 < width; _x2++) {\n yi = _x2 << 2;\n\n var _pr2 = pixels[yi],\n _pg2 = pixels[yi + 1],\n _pb2 = pixels[yi + 2],\n _rOutSum2 = radiusPlus1 * _pr2,\n _gOutSum2 = radiusPlus1 * _pg2,\n _bOutSum2 = radiusPlus1 * _pb2,\n _rSum2 = sumFactor * _pr2,\n _gSum2 = sumFactor * _pg2,\n _bSum2 = sumFactor * _pb2;\n\n stack = stackStart;\n\n for (var _i7 = 0; _i7 < radiusPlus1; _i7++) {\n stack.r = _pr2;\n stack.g = _pg2;\n stack.b = _pb2;\n stack = stack.next;\n }\n\n var _rInSum2 = 0,\n _gInSum2 = 0,\n _bInSum2 = 0;\n\n for (var _i8 = 1, yp = width; _i8 <= radius; _i8++) {\n yi = yp + _x2 << 2;\n _rSum2 += (stack.r = _pr2 = pixels[yi]) * (rbs = radiusPlus1 - _i8);\n _gSum2 += (stack.g = _pg2 = pixels[yi + 1]) * rbs;\n _bSum2 += (stack.b = _pb2 = pixels[yi + 2]) * rbs;\n _rInSum2 += _pr2;\n _gInSum2 += _pg2;\n _bInSum2 += _pb2;\n stack = stack.next;\n\n if (_i8 < heightMinus1) {\n yp += width;\n }\n }\n\n yi = _x2;\n stackIn = stackStart;\n stackOut = stackEnd;\n\n for (var _y2 = 0; _y2 < height; _y2++) {\n p = yi << 2;\n pixels[p] = _rSum2 * mulSum >>> shgSum;\n pixels[p + 1] = _gSum2 * mulSum >>> shgSum;\n pixels[p + 2] = _bSum2 * mulSum >>> shgSum;\n _rSum2 -= _rOutSum2;\n _gSum2 -= _gOutSum2;\n _bSum2 -= _bOutSum2;\n _rOutSum2 -= stackIn.r;\n _gOutSum2 -= stackIn.g;\n _bOutSum2 -= stackIn.b;\n p = _x2 + ((p = _y2 + radiusPlus1) < heightMinus1 ? p : heightMinus1) * width << 2;\n _rSum2 += _rInSum2 += stackIn.r = pixels[p];\n _gSum2 += _gInSum2 += stackIn.g = pixels[p + 1];\n _bSum2 += _bInSum2 += stackIn.b = pixels[p + 2];\n stackIn = stackIn.next;\n _rOutSum2 += _pr2 = stackOut.r;\n _gOutSum2 += _pg2 = stackOut.g;\n _bOutSum2 += _pb2 = stackOut.b;\n _rInSum2 -= _pr2;\n _gInSum2 -= _pg2;\n _bInSum2 -= _pb2;\n stackOut = stackOut.next;\n yi += width;\n }\n }\n\n return imageData;\n}\n/**\n *\n */\n\n\nvar BlurStack =\n/**\n * Set properties.\n */\nfunction BlurStack() {\n _classCallCheck(this, BlurStack);\n\n this.r = 0;\n this.g = 0;\n this.b = 0;\n this.a = 0;\n this.next = null;\n};\n\nexport { BlurStack, processCanvasRGB as canvasRGB, processCanvasRGBA as canvasRGBA, processImage as image, processImageDataRGB as imageDataRGB, processImageDataRGBA as imageDataRGBA };\n","import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = {};\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = {};\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = {};\n this.styles = {};\n this.stylesSpecificity = {};\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"file":"assets/vendor-G6y7f1_N.js"}